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

Eryu Guan
2021-08-01T10:42:18Z

[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 <jefflexu@linux.alibaba.com>

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