aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMiao Xie <miaox@cn.fujitsu.com>2011-03-31 05:43:23 -0400
committerChris Mason <chris.mason@oracle.com>2011-04-05 01:19:43 -0400
commitadae52b94e18afa1f84fab67df2a8a872c2f5533 (patch)
treefb9259b9eac14ac950d127faf1788392081010b0
parent6e8df2ae89ab37730c0062782f844c66ecfc97a7 (diff)
btrfs: clear __GFP_FS flag in the space cache inode
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. Signed-off-by: Miao Xie <miaox@cn.fujitsu.com> Signed-off-by: Liu Bo <liubo2009@cn.fujitsu.com> Signed-off-by: Chris Mason <chris.mason@oracle.com>
-rw-r--r--fs/btrfs/free-space-cache.c2
-rw-r--r--fs/btrfs/inode.c2
2 files changed, 2 insertions, 2 deletions
diff --git a/fs/btrfs/free-space-cache.c b/fs/btrfs/free-space-cache.c
index 0037427d8a9d..13575de85543 100644
--- a/fs/btrfs/free-space-cache.c
+++ b/fs/btrfs/free-space-cache.c
@@ -81,6 +81,8 @@ struct inode *lookup_free_space_inode(struct btrfs_root *root,
81 return ERR_PTR(-ENOENT); 81 return ERR_PTR(-ENOENT);
82 } 82 }
83 83
84 inode->i_mapping->flags &= ~__GFP_FS;
85
84 spin_lock(&block_group->lock); 86 spin_lock(&block_group->lock);
85 if (!root->fs_info->closing) { 87 if (!root->fs_info->closing) {
86 block_group->inode = igrab(inode); 88 block_group->inode = igrab(inode);
diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c
index 1ca3e68586cf..57a03f6eb224 100644
--- a/fs/btrfs/inode.c
+++ b/fs/btrfs/inode.c
@@ -2535,8 +2535,6 @@ static void btrfs_read_locked_inode(struct inode *inode)
2535 BTRFS_I(inode)->flags = btrfs_inode_flags(leaf, inode_item); 2535 BTRFS_I(inode)->flags = btrfs_inode_flags(leaf, inode_item);
2536 2536
2537 alloc_group_block = btrfs_inode_block_group(leaf, inode_item); 2537 alloc_group_block = btrfs_inode_block_group(leaf, inode_item);
2538 if (location.objectid == BTRFS_FREE_SPACE_OBJECTID)
2539 inode->i_mapping->flags &= ~__GFP_FS;
2540 2538
2541 /* 2539 /*
2542 * try to precache a NULL acl entry for files that don't have 2540 * try to precache a NULL acl entry for files that don't have