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

Jeffle Xu
2021-07-29T04:48:03Z

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>
---
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