summaryrefslogtreecommitdiffstats
path: root/drivers/md
diff options
context:
space:
mode:
authorJoe Thornber <ejt@redhat.com>2015-11-19 14:36:45 +0100
committerMike Snitzer <snitzer@redhat.com>2017-02-16 19:09:10 +0100
commit9f9ef0657d53d988dc07b096052b3dd07d6e3c46 (patch)
treee7487205704fdcca5fb2ddc4e3ff0af3a5b83f8d /drivers/md
parentdm space map common: memcpy the disk root to ensure it's arch aligned (diff)
downloadlinux-9f9ef0657d53d988dc07b096052b3dd07d6e3c46.tar.xz
linux-9f9ef0657d53d988dc07b096052b3dd07d6e3c46.zip
dm btree: use GFP_NOFS in dm_btree_del()
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>
Diffstat (limited to 'drivers/md')
-rw-r--r--drivers/md/persistent-data/dm-btree.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/drivers/md/persistent-data/dm-btree.c b/drivers/md/persistent-data/dm-btree.c
index 20a40329d84a..1744f3618a55 100644
--- a/drivers/md/persistent-data/dm-btree.c
+++ b/drivers/md/persistent-data/dm-btree.c
@@ -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;