2021-08-01 10:42:59

by Eryu Guan

[permalink] [raw]
Subject: Re: [PATCH] common/rc: only force nfs4.2 non-default SEEK_HOLE behaviour

[cc nfs list]

On Thu, Jul 29, 2021 at 12:47:58PM +0800, Jeffle Xu wrote:
> Only NFSv4.2 supports non-defautl SEEK_HOLE behaviour. Thus default
> SEEK_HOLE behaviour shall be allowed for NFSv4.0/4.1, or it will fail
> generic/285, generic/448, generic/490 on NFSv4.0/4.1, complaining they
> should support non-default SEEK_HOLE behaviour.
>
> The *.full log is like:
> File system supports the default behavior.
> Default behavior is not allowed. Aborting.
>
> Signed-off-by: Jeffle Xu <[email protected]>

Looks correct to me, but I'd like nfs folks to take a look as well, to
conform if only nfsv4.2 supports SEEK_DATA/SEEK_HOLE non-default
behavior.

Thanks,
Eryu

P.S.
Please cc the corresponding filesystem list next time if patch affects
the specific fs.

> ---
> common/rc | 8 ++++----
> 1 file changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/common/rc b/common/rc
> index 25a838a3..9be6f89d 100644
> --- a/common/rc
> +++ b/common/rc
> @@ -2495,10 +2495,10 @@ _fstyp_has_non_default_seek_data_hole()
> return 0
> ;;
> nfs*)
> - # NFSv2 and NFSv3 only support default behavior of SEEK_HOLE,
> - # while NFSv4 supports non-default behavior
> - local nfsvers=`_df_device $TEST_DEV | $AWK_PROG '{ print $2 }'`
> - [ "$nfsvers" = "nfs4" ]
> + # NFSv2, NFSv3, and NFSv4.0/4.1 only support default behavior of SEEK_HOLE,
> + # while NFSv4.2 supports non-default behavior
> + local nfsvers=`_mount() | grep $TEST_DEV | sed -n 's/^.*vers=\([0-9.]*\).*$/\1/p'`
> + [ "$nfsvers" = "4.2" ]
> return $?
> ;;
> overlay)
> --
> 2.27.0


2021-08-02 15:04:51

by Anna Schumaker

[permalink] [raw]
Subject: Re: [PATCH] common/rc: only force nfs4.2 non-default SEEK_HOLE behaviour

Hi Eryu,

On Sun, Aug 1, 2021 at 6:43 AM Eryu Guan <[email protected]> wrote:
>
> [cc nfs list]
>
> On Thu, Jul 29, 2021 at 12:47:58PM +0800, Jeffle Xu wrote:
> > Only NFSv4.2 supports non-defautl SEEK_HOLE behaviour. Thus default
> > SEEK_HOLE behaviour shall be allowed for NFSv4.0/4.1, or it will fail
> > generic/285, generic/448, generic/490 on NFSv4.0/4.1, complaining they
> > should support non-default SEEK_HOLE behaviour.
> >
> > The *.full log is like:
> > File system supports the default behavior.
> > Default behavior is not allowed. Aborting.
> >
> > Signed-off-by: Jeffle Xu <[email protected]>
>
> Looks correct to me, but I'd like nfs folks to take a look as well, to
> conform if only nfsv4.2 supports SEEK_DATA/SEEK_HOLE non-default
> behavior.

This is correct, non-default SEEK_DATA/SEEK_HOLE is only supported by NFS v4.2.

Thanks for checking!
Anna
>
> Thanks,
> Eryu
>
> P.S.
> Please cc the corresponding filesystem list next time if patch affects
> the specific fs.
>
> > ---
> > common/rc | 8 ++++----
> > 1 file changed, 4 insertions(+), 4 deletions(-)
> >
> > diff --git a/common/rc b/common/rc
> > index 25a838a3..9be6f89d 100644
> > --- a/common/rc
> > +++ b/common/rc
> > @@ -2495,10 +2495,10 @@ _fstyp_has_non_default_seek_data_hole()
> > return 0
> > ;;
> > nfs*)
> > - # NFSv2 and NFSv3 only support default behavior of SEEK_HOLE,
> > - # while NFSv4 supports non-default behavior
> > - local nfsvers=`_df_device $TEST_DEV | $AWK_PROG '{ print $2 }'`
> > - [ "$nfsvers" = "nfs4" ]
> > + # NFSv2, NFSv3, and NFSv4.0/4.1 only support default behavior of SEEK_HOLE,
> > + # while NFSv4.2 supports non-default behavior
> > + local nfsvers=`_mount() | grep $TEST_DEV | sed -n 's/^.*vers=\([0-9.]*\).*$/\1/p'`
> > + [ "$nfsvers" = "4.2" ]
> > return $?
> > ;;
> > overlay)
> > --
> > 2.27.0