dm btree: use GFP_NOFS in dm_btree_del()
authorJoe Thornber <ejt@redhat.com>
Thu, 19 Nov 2015 13:36:45 +0000 (13:36 +0000)
committerMike Snitzer <snitzer@redhat.com>
Thu, 16 Feb 2017 18:09:10 +0000 (13:09 -0500)
dm_btree_del() is called from an ioctl so don't recurse into FS.

Signed-off-by: Joe Thornber <ejt@redhat.com>
Signed-off-by: Mike Snitzer <snitzer@redhat.com>
drivers/md/persistent-data/dm-btree.c

index 20a40329d84abd46c7491936e974967bd2bfd0d4..1744f3618a55f6fa3ed38a8491fe0c6a85bd48da 100644 (file)
@@ -272,7 +272,12 @@ int dm_btree_del(struct dm_btree_info *info, dm_block_t root)
        int r;
        struct del_stack *s;
 
-       s = kmalloc(sizeof(*s), GFP_NOIO);
+       /*
+        * dm_btree_del() is called via an ioctl, as such should be
+        * considered an FS op.  We can't recurse back into the FS, so we
+        * allocate GFP_NOFS.
+        */
+       s = kmalloc(sizeof(*s), GFP_NOFS);
        if (!s)
                return -ENOMEM;
        s->info = info;