Btrfs: fix wrong mapping flags for free space inode
authorFilipe Manana <fdmanana@suse.com>
Wed, 6 May 2015 10:17:01 +0000 (11:17 +0100)
committerChris Mason <clm@fb.com>
Thu, 7 May 2015 00:06:13 +0000 (17:06 -0700)
We were passing a flags value that differed from the intention in commit
2b108268006e ("Btrfs: don't use highmem for free space cache pages").

This caused problems in a ARM machine, leaving btrfs unusable there.

Reported-by: Merlijn Wajer <merlijn@wizzup.org>
Tested-by: Merlijn Wajer <merlijn@wizzup.org>
Signed-off-by: Filipe Manana <fdmanana@suse.com>
Signed-off-by: Chris Mason <clm@fb.com>
fs/btrfs/free-space-cache.c

index 41c510b7cc110891bbc3818638137e3e516d5800..5e020d76fd07b00da1bacec4c5662dc0f1078ba7 100644 (file)
@@ -86,7 +86,7 @@ static struct inode *__lookup_free_space_inode(struct btrfs_root *root,
 
        mapping_set_gfp_mask(inode->i_mapping,
                        mapping_gfp_mask(inode->i_mapping) &
-                       ~(GFP_NOFS & ~__GFP_HIGHMEM));
+                       ~(__GFP_FS | __GFP_HIGHMEM));
 
        return inode;
 }