|
@@ -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;
|