Btrfs: properly set new buffers for new blocks up to date

Signed-off-by: Chris Mason <chris.mason@oracle.com>
This commit is contained in:
Chris Mason 2007-03-23 11:00:45 -04:00 committed by David Woodhouse
parent d571976292
commit df2ce34c88
3 changed files with 11 additions and 3 deletions

View file

@ -10,8 +10,13 @@ static int check_tree_block(struct btrfs_root *root, struct buffer_head *buf)
if (buf->b_blocknr != btrfs_header_blocknr(&node->header))
BUG();
if (root->node && btrfs_header_parentid(&node->header) !=
btrfs_header_parentid(btrfs_buffer_header(root->node)))
BUG();
btrfs_header_parentid(btrfs_buffer_header(root->node))) {
printk("block %Lu parentids don't match buf %Lu, root %Lu\n",
buf->b_blocknr,
btrfs_header_parentid(&node->header),
btrfs_header_parentid(btrfs_buffer_header(root->node)));
WARN_ON(1);
}
return 0;
}

View file

@ -467,7 +467,7 @@ struct buffer_head *btrfs_alloc_free_block(struct btrfs_trans_handle *trans,
return NULL;
}
buf = find_tree_block(root, ins.objectid);
dirty_tree_block(trans, root, buf);
set_buffer_uptodate(buf);
return buf;
}

View file

@ -473,7 +473,10 @@ static int btrfs_sync_fs(struct super_block *sb, int wait)
struct btrfs_trans_handle *trans;
struct btrfs_root *root;
int ret;
sb->s_dirt = 0;
return 0;
root = btrfs_sb(sb);
trans = btrfs_start_transaction(root, 1);
ret = btrfs_commit_transaction(trans, root);