Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit adae52b9 authored by Miao Xie's avatar Miao Xie Committed by Chris Mason
Browse files

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: default avatarMiao Xie <miaox@cn.fujitsu.com>
Signed-off-by: default avatarLiu Bo <liubo2009@cn.fujitsu.com>
Signed-off-by: default avatarChris Mason <chris.mason@oracle.com>
parent 6e8df2ae
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -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);
+0 −2
Original line number Diff line number Diff line
@@ -2535,8 +2535,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