summaryrefslogtreecommitdiff
path: root/libbcache/fs-io.c
diff options
context:
space:
mode:
Diffstat (limited to 'libbcache/fs-io.c')
-rw-r--r--libbcache/fs-io.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/libbcache/fs-io.c b/libbcache/fs-io.c
index 0aef0141..afc8c208 100644
--- a/libbcache/fs-io.c
+++ b/libbcache/fs-io.c
@@ -1613,10 +1613,16 @@ ssize_t bch_direct_IO(struct kiocb *req, struct iov_iter *iter)
struct file *file = req->ki_filp;
struct inode *inode = file->f_inode;
struct bch_fs *c = inode->i_sb->s_fs_info;
+ struct blk_plug plug;
+ ssize_t ret;
- return ((iov_iter_rw(iter) == WRITE)
+ blk_start_plug(&plug);
+ ret = ((iov_iter_rw(iter) == WRITE)
? bch_direct_IO_write
: bch_direct_IO_read)(c, req, file, inode, iter, req->ki_pos);
+ blk_finish_plug(&plug);
+
+ return ret;
}
static ssize_t