Browse Source

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

Signed-off-by: Chris Mason <chris.mason@oracle.com>
Chris Mason 18 years ago
parent
commit
df2ce34c88
3 changed files with 11 additions and 3 deletions
  1. 7 2
      fs/btrfs/disk-io.c
  2. 1 1
      fs/btrfs/extent-tree.c
  3. 3 0
      fs/btrfs/super.c

+ 7 - 2
fs/btrfs/disk-io.c

@@ -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))
 	if (buf->b_blocknr != btrfs_header_blocknr(&node->header))
 		BUG();
 		BUG();
 	if (root->node && btrfs_header_parentid(&node->header) !=
 	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;
 	return 0;
 }
 }
 
 

+ 1 - 1
fs/btrfs/extent-tree.c

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

+ 3 - 0
fs/btrfs/super.c

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