summaryrefslogtreecommitdiffstats
path: root/fs/btrfs/disk-io.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs/btrfs/disk-io.c')
-rw-r--r--fs/btrfs/disk-io.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/fs/btrfs/disk-io.c b/fs/btrfs/disk-io.c
index 9e41ea93ebc..76ee7a4ae00 100644
--- a/fs/btrfs/disk-io.c
+++ b/fs/btrfs/disk-io.c
@@ -381,6 +381,13 @@ int btrfs_wq_submit_bio(struct btrfs_fs_info *fs_info, struct inode *inode,
{
struct async_submit_bio *async;
+ /*
+ * inline writerback should stay inline, only hop to the async
+ * queue if we're pdflush
+ */
+ if (!current_is_pdflush())
+ return submit_bio_hook(inode, rw, bio, mirror_num);
+
async = kmalloc(sizeof(*async), GFP_NOFS);
if (!async)
return -ENOMEM;