Date: Thu, 29 Mar 2012 11:34:34 -0700 From: mdf@FreeBSD.org To: Konstantin Belousov <kostikbel@gmail.com> Cc: fs@freebsd.org Subject: Re: RFC: SEEK_HOLE/SEEK_DATA common implementation Message-ID: <CAMBSHm_kXbXFsCLnwP3uj54URb=VRaoQFrCRP7pO4OYiwurbhw@mail.gmail.com> In-Reply-To: <20120329182847.GD2358@deviant.kiev.zoral.com.ua> References: <20120327183440.GS2358@deviant.kiev.zoral.com.ua> <20120329091415.GA1316@reks> <20120329093427.GA2358@deviant.kiev.zoral.com.ua> <CAMBSHm8Qoj-Qhr_uXXYMe_M17ngU89ToK=ZLfKCs1TZCkYSM2w@mail.gmail.com> <20120329182847.GD2358@deviant.kiev.zoral.com.ua>
next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, Mar 29, 2012 at 11:28 AM, Konstantin Belousov <kostikbel@gmail.com> wrote: > On Thu, Mar 29, 2012 at 06:56:31AM -0700, mdf@freebsd.org wrote: >> On Thu, Mar 29, 2012 at 2:34 AM, Konstantin Belousov >> <kostikbel@gmail.com> wrote: >> > Filesystem probably should always fall back to calling vop_stdioctl() >> > manually if it ever implements VOP_IOCTL, regardless of seek_hole/data= . >> >> We can't if there's a use of VOP_BMAP() in one of the ioctls. =A0For >> OneFS, a call to VOP_BMAP is fatal. =A0That operation doesn't work with >> our system. > But you had to already take some measure to disable the call to VOP_BMAP(= ) > for your filesystem, otherwise mmap() is fatal too (whatever the word > fatal means) ? Yes, OneFS does not support mmap(). >> We could implement SEEK_HOLE/SEEK_DATA semi-efficiently, but >> implementing a custom filesystem becomes very complex once one has not >> only to manage replacing all VOPs where the default doesn't work but >> also has to know there's a bunch of ioctls in VOP_IOCTL that must be >> handled as well. > > Does anything change if VOP_SEEKDATA() is added which default implementat= ion > using VOP_BMAP() ? If it's a VOP it makes it easier to e.g. write a consistency checker when creating a vnode, that the FS defines certain VOPs. This could be in conjunction with a mnt flag indicating support for various features. At the least, it's more expected, I'd think, for a filesystem to know it has to handle all the VOPs listed in the table. There's no global list of all ioctls a filesystem is expected to handle. Thanks, matthew
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAMBSHm_kXbXFsCLnwP3uj54URb=VRaoQFrCRP7pO4OYiwurbhw>