Skip to contentSkip to conversation

btrfs: clear __GFP_FS flag in the space cache inode

PATCH New liubo 1 participant 1 message Mar 31, 2011 Btrfs file system

lore
Share & tools
lore

liubo

author
#0 lore raw

PATCH 1/1 btrfs: clear __GFP_FS flag in the space cache inode

From: Miao Xie <[email protected]>

the object id of the space cache inode's key is allocated from the relative root, just like the regular file. So we can't identify space cache inode by checking the object id of the inode's key, and we have to clear __GFP_FS flag at the time we look up the space cache inode.

---
 fs/btrfs/free-space-cache.c |    2 ++
 fs/btrfs/inode.c            |    2 --
 2 files changed, 2 insertions(+), 2 deletions(-)
fs/btrfs/free-space-cache.c +2 -0
index 0037427..13575de 100644
@@ -81,6 +81,8 @@ struct inode *lookup_free_space_inode(struct btrfs_root *root,
 		return ERR_PTR(-ENOENT);
 	}
 
+	inode->i_mapping->flags &= ~__GFP_FS;
+
 	spin_lock(&block_group->lock);
 	if (!root->fs_info->closing) {
 		block_group->inode = igrab(inode);
fs/btrfs/inode.c +0 -2
index 93c28a1..c103fdc 100644
@@ -2537,8 +2537,6 @@ static void btrfs_read_locked_inode(struct inode *inode)
 	BTRFS_I(inode)->flags = btrfs_inode_flags(leaf, inode_item);
 
 	alloc_group_block = btrfs_inode_block_group(leaf, inode_item);
-	if (location.objectid == BTRFS_FREE_SPACE_OBJECTID)
-		inode->i_mapping->flags &= ~__GFP_FS;
 
 	/*
 	 * try to precache a NULL acl entry for files that don't have
Signature · 1 line
1.7.4