From c30ef17d6db028c122bf5e19feb4301226c49617 Mon Sep 17 00:00:00 2001 From: Dave Kleikamp Date: Fri, 17 Jul 2015 09:32:59 -0700 Subject: [PATCH] block: loop: Enable directIO on nfs The 512-byte io_min restriction is only enforced if the backing filesystem actually resides on a block device. Signed-off-by: Dave Kleikamp Signed-off-by: Santosh Shilimkar --- drivers/block/loop.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/drivers/block/loop.c b/drivers/block/loop.c index 0fb2c0a59a59..7b326f2a95bf 100644 --- a/drivers/block/loop.c +++ b/drivers/block/loop.c @@ -518,12 +518,14 @@ static void __loop_update_dio(struct loop_device *lo, bool dio) * the offset is aligned with 512. */ if (dio) { - if (inode->i_sb->s_bdev && - bdev_io_min(inode->i_sb->s_bdev) == 512 && - !(lo->lo_offset & 511)) + if (inode->i_sb->s_bdev) { + if (bdev_io_min(inode->i_sb->s_bdev) == 512 && + !(lo->lo_offset & 511)) + use_dio = true; + else + use_dio = false; + } else use_dio = true; - else - use_dio = false; } else { use_dio = false; } -- 2.50.1