Re: [PATCH] fs: Return EOPNOTSUPP if block layer does not support REQ_NOWAIT

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On  8:35 17/12, Dave Chinner wrote:
> > 
> > I was not too happy getting it all the way down to block layer either.
> > The multi-devices makes it worse. However, here we are and we need to
> > tell the user that RWF_NOWAIT is not supported in this environment.
> 
> RWF_NOWAIT matters for filesystems much more than the underlying
> block device. If the application is accessing the blockd evice
> directly, then yes, RWF_NOWAIT support in the block device matters.
> But when the IO is being done through the filesystem it's far more
> important to avoid blocking on filesystem locks that whatever the
> block device does....
> 
> Hence I think that if the bio is coming from a filesystem,
> REQ_NOWAIT should always be accepted or bounced with EAGAIN and
> never failed with EOPNOTSUPP. It just makes no sense at all for
> filesytsem based IO....

It was initially suggested where the block layer would retry getting
a bio in get_request(). While request based devices were fine, the bio
based ones such as MD needed extra work. However, when I actually got
down to writing code for multi-device, it got more hurdles than
solutions primarily in the area of bio merging.

RWF_NOWAIT should have been restricted to filesystems and I think we
should do away (or at least ignore) REQ_NOWAIT for now.

-- 
Goldwyn



[Index of Archives]     [Linux Ext4 Filesystem]     [Union Filesystem]     [Filesystem Testing]     [Ceph Users]     [Ecryptfs]     [AutoFS]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux Cachefs]     [Reiser Filesystem]     [Linux RAID]     [Samba]     [Device Mapper]     [CEPH Development]

  Powered by Linux