For regular file, write operaion used blk_plug function.But for block
file,write operation did not use blk_plug.
Signed-off-by: Jianpeng Ma <redacted>
---
fs/block_dev.c | 7 ++++++-
1 files changed, 6 insertions(+), 1 deletions(-)
diff --git a/fs/block_dev.c b/fs/block_dev.c
index c2bbe1f..22cd436 100644
--- a/fs/block_dev.c
+++ b/fs/block_dev.c
@@ -215,9 +215,14 @@ blkdev_direct_IO(int rw, struct kiocb *iocb, const struct iovec *iov,
{
struct file *file = iocb->ki_filp;
struct inode *inode = file->f_mapping->host;
+ struct blk_plug plug;
+ ssize_t ret;
- return __blockdev_direct_IO(rw, iocb, inode, I_BDEV(inode), iov, offset,
+ blk_start_plug(&plug);
+ ret = __blockdev_direct_IO(rw, iocb, inode, I_BDEV(inode), iov, offset,
nr_segs, blkdev_get_blocks, NULL, NULL, 0);
+ blk_finish_plug(&plug);
+ return ret;
}
int __sync_blockdev(struct block_device *bdev, int wait)--
1.7.5.4