[LTP] [PATCH] nfs_lib: Skip NFS versions disabled on server
Petr Vorel
pvorel@suse.cz
Tue Aug 11 11:03:39 CEST 2026
Hi Avinesh,
> Hi Petr,
> Thanks for your review.
> > Thanks for handling this!
> > LGTM? few notes below.
> > Reviewed-by: Petr Vorel <pvorel@suse.cz>
> > ...
> > > -get_socket_type()
> > > +get_socket_type_raw()
> > very nit: slightly confusing type, because there is a "raw" socket SOCK_RAW.
> > I guess any network programmer seeing this will think of that socket, e.g.:
> > socket(PF_INET, SOCK_RAW, ...);
> > socket(PF_NETLINK, SOCK_RAW, NETLINK_ROUTE);
> > But of course it can stay.
> How about get_socket_type_bare() ?
+1
...
> > + tst_res TINFO "NFSv$v disabled on server, skipping"
> > + tst_res TCONF "NFSv$v disabled on server, skipping"
> > > + fi
> > > +
> > > + n=$(( n + 1 ))
> > > + done
> > > +
> > > + [ -z "$new_version" ] && \
> > > + tst_brk TCONF "none of the requested NFS versions ($VERSION) are enabled on server"
> > nit: I would expect this would quit the test on system with
> > set -o errexit (equivalent of set -e), but magically it works.
> > FYI normally it's better if any test line exit with 0 => use || (or if ...; then
> > ... fi) instead && i.e.
> > [ ... ] || tst_brk TCONF
> > But because it works it can stay.
> +1. I will switch to below for consistency.
> [ "$new_version" ] || \
> tst_brk TCONF ...
Thank you!
> > > +
> > > + VERSION="${new_version# }"
> > > + SOCKET_TYPE="${new_socket_type# }"
> > Fortunately removing leading space works also on dash, although at least some
> > string operations aren't part of POSIX [1].
> > If this is ever problematic, we can fix it with:
> > [ "$new_version" ] && new_version="$new_version $v" || new_version="$v"
> > [ "$new_socket_type" ] && new_socket_type="$new_socket_type $type" || new_socket_type="$type"
> > But because removing leading space is not needed, because later code for t in
> > $SOCKET_TYPE; do will handle that, I'd remove this part entirely.
> Actually we need to remove the leading space, otherwise we break
> nfsstat01 where $VERSION is being used as whole scalar value.
> case $VERSION in
Thanks for info.
> I can switch to the solution you suggested here.
I checked LTP sources and we use in old scripts often ${...#...}. I was probably
just too careful about portability.
Kind regards,
Petr
> > FYI: (no leading/trailing space in parameters, no $t having just empty space:
> > SOCKET_TYPE=' udp tcp '; for t in $SOCKET_TYPE; do echo "'$t'"; done
> > 'udp'
> > 'tcp'
> > [1] https://mywiki.wooledge.org/Bashism#Parameter_Expansions
> > Kind regards,
> > Petr
> Regards,
> Avinesh
More information about the ltp
mailing list