Date: Fri, 22 Aug 2025 06:41:23 -0700 From: Rick Macklem <rick.macklem@gmail.com> To: Cedric Blancher <cedric.blancher@gmail.com> Cc: freebsd-hackers@freebsd.org Subject: Re: NFSv4.2 READ_PLUS support? Message-ID: <CAM5tNy7x=AttZiu=ZLFtiQS3U2JD=gZOgjeGE-VoB1Obp9eZxQ@mail.gmail.com> In-Reply-To: <CALXu0UfzyaZti2dSbZHPf_YXU88_2oCP98cXJPM6mQ9Fsr6ZuQ@mail.gmail.com> References: <CALXu0UfzyaZti2dSbZHPf_YXU88_2oCP98cXJPM6mQ9Fsr6ZuQ@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On Fri, Aug 22, 2025 at 6:31 AM Cedric Blancher
<cedric.blancher@gmail.com> wrote:
>
> Good afternoon!
>
> Is it planned to support NFSv4.2 READ_PLUS, to optimise reading of sparse files?
Not at this time. There is no VOP_READPLUS() vnode operation defined
at this time.
Without this, the NFS server must either...
- Read all the data and then "parse out" the blobs of zeros.
or
- Use SEEK_DATA/SEEK_HOLE. This sounds reasonable, but it currently needs
to be done with the vnode unlocked and dropping/re-acquiring the vnode lock
during a Read operation makes things awkward.
(The unlocked requirement is really just for other things that are done via
VOP_IOCTL().)
Bottom line, I've missed the FreeBSD-15 deadline for adding any new
VOP_xxx() calls and this needs one. (Either a VOP_SEEK() that can do
SEEK_DATA/SEEK_HOLE with the vnode locked or preferably a
VOP_READPLUS(), which can acquire data+holes in whatever is the
most efficient way the underlying fs can do it.)
So, maybe for FreeBSD-16, but not yet, rick
>
> Ced
> --
> Cedric Blancher <cedric.blancher@gmail.com>
> [https://plus.google.com/u/0/+CedricBlancher/]
> Institute Pasteur
>
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAM5tNy7x=AttZiu=ZLFtiQS3U2JD=gZOgjeGE-VoB1Obp9eZxQ>
