Skip site navigation (1)Skip section navigation (2)
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>