On Tue, Nov 10, 2015 at 02:05:39PM +0800, Ming Lei wrote: > On Mon, Nov 9, 2015 at 7:46 PM, Karel Zak <kzak@xxxxxxxxxx> wrote: > > On Mon, Nov 09, 2015 at 07:29:21PM +0800, Ming Lei wrote: > >> > It's fine to use --direct-io as toggle, but it would be nice to > >> > support it also when initialize the device. > >> > >> OK, looks a good idea, but we still need to support the standalone > >> command for direct-io for the case of 'mount -o loop'. > > > > Sure, I understand this use-case. I have talked bout loop_set_fd(), > > maybe all we need is: > > > > > > diff --git a/drivers/block/loop.c b/drivers/block/loop.c > > index 423f4ca..22642a0 100644 > > --- a/drivers/block/loop.c > > +++ b/drivers/block/loop.c > > @@ -925,7 +925,7 @@ static int loop_set_fd(struct loop_device *lo, fmode_t mode, > > > > set_device_ro(bdev, (lo_flags & LO_FLAGS_READ_ONLY) != 0); > > > > - lo->use_dio = false; > > + lo->use_dio = (lo_flags & LO_FLAGS_DIRECT_IO); > > lo->lo_blocksize = lo_blocksize; > > lo->lo_device = bdev; > > lo->lo_flags = lo_flags; > > I don't think this change is doable because lo_flags is always started > as zero from loop_set_fd(). Sorry, wrong function -- should be loop_set_status() where we can modify lo->lo_flags by info->lo_flags. It's already used for LO_FLAGS_AUTOCLEAR and LO_FLAGS_PARTSCAN. Karel -- Karel Zak <kzak@xxxxxxxxxx> http://karelzak.blogspot.com -- To unsubscribe from this list: send the line "unsubscribe util-linux" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html