Message ID | 20230504131414.3826283-2-pvorel@suse.cz (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | NFS: test on btrfs, ext4, xfs filesystems | expand |
Hi! > Signed-off-by: Petr Vorel <pvorel@suse.cz> > --- > testcases/network/nfs/nfs_stress/nfs_lib.sh | 52 ++++++++++++++------- > 1 file changed, 34 insertions(+), 18 deletions(-) > > diff --git a/testcases/network/nfs/nfs_stress/nfs_lib.sh b/testcases/network/nfs/nfs_stress/nfs_lib.sh > index af7d46a21..1b5604ab5 100644 > --- a/testcases/network/nfs/nfs_stress/nfs_lib.sh > +++ b/testcases/network/nfs/nfs_stress/nfs_lib.sh > @@ -1,6 +1,6 @@ > #!/bin/sh > # SPDX-License-Identifier: GPL-2.0-or-later > -# Copyright (c) Linux Test Project, 2016-2022 > +# Copyright (c) Linux Test Project, 2016-2023 > # Copyright (c) 2015-2018 Oracle and/or its affiliates. All Rights Reserved. > # Copyright (c) International Business Machines Corp., 2001 > > @@ -53,6 +53,24 @@ get_socket_type() > done > } > > +# directory mounted by NFS client > +get_local_dir() > +{ > + local v="$1" > + local n="$2" > + > + echo "$TST_TMPDIR/$v/$n" > +} > + > +# directory on NFS server > +get_remote_dir() > +{ > + local v="$1" > + local n="$2" > + > + echo "$TST_TMPDIR/$v/$n" > +} It's a bit puzzling why we have two identical functions with a different name...
Hi Cyril, ... > > +# directory mounted by NFS client > > +get_local_dir() > > +{ > > + local v="$1" > > + local n="$2" > > + > > + echo "$TST_TMPDIR/$v/$n" > > +} > > + > > +# directory on NFS server > > +get_remote_dir() > > +{ > > + local v="$1" > > + local n="$2" > > + > > + echo "$TST_TMPDIR/$v/$n" > > +} > It's a bit puzzling why we have two identical functions with a different > name... It's a preparation for TST_ALL_FILESYSTEMS=1 where the location changes. I can squash this into that commit where it changes. Kind regards, Petr
Hi! > > It's a bit puzzling why we have two identical functions with a different > > name... > > It's a preparation for TST_ALL_FILESYSTEMS=1 where the location changes. > I can squash this into that commit where it changes. That is the missing bit. No need to squash maybe just note that the directory will change in the last commit of the patchset.
Hi Cyril, > Hi! > > > It's a bit puzzling why we have two identical functions with a different > > > name... > > It's a preparation for TST_ALL_FILESYSTEMS=1 where the location changes. > > I can squash this into that commit where it changes. > That is the missing bit. No need to squash maybe just note that the > directory will change in the last commit of the patchset. +1 (I intended and obviously forgot). Kind regards, Petr
diff --git a/testcases/network/nfs/nfs_stress/nfs_lib.sh b/testcases/network/nfs/nfs_stress/nfs_lib.sh index af7d46a21..1b5604ab5 100644 --- a/testcases/network/nfs/nfs_stress/nfs_lib.sh +++ b/testcases/network/nfs/nfs_stress/nfs_lib.sh @@ -1,6 +1,6 @@ #!/bin/sh # SPDX-License-Identifier: GPL-2.0-or-later -# Copyright (c) Linux Test Project, 2016-2022 +# Copyright (c) Linux Test Project, 2016-2023 # Copyright (c) 2015-2018 Oracle and/or its affiliates. All Rights Reserved. # Copyright (c) International Business Machines Corp., 2001 @@ -53,6 +53,24 @@ get_socket_type() done } +# directory mounted by NFS client +get_local_dir() +{ + local v="$1" + local n="$2" + + echo "$TST_TMPDIR/$v/$n" +} + +# directory on NFS server +get_remote_dir() +{ + local v="$1" + local n="$2" + + echo "$TST_TMPDIR/$v/$n" +} + nfs_get_remote_path() { local v @@ -63,7 +81,7 @@ nfs_get_remote_path() done v=${1:-$v} - echo "$TST_TMPDIR/$v/$type" + echo "$(get_remote_dir $v $type)" } nfs_server_udp_enabled() @@ -78,8 +96,8 @@ nfs_server_udp_enabled() nfs_setup_server() { - - local fsid="$1" + local remote_dir="$1" + local fsid="$2" local export_cmd="exportfs -i -o fsid=$fsid,no_root_squash,rw *:$remote_dir" [ -z "$fsid" ] && tst_brk TBROK "empty fsid" @@ -97,10 +115,14 @@ nfs_setup_server() nfs_mount() { - local opts="$1" + local local_dir="$1" + local remote_dir="$2" + local opts="$3" local host_type=rhost local mount_dir + mkdir -p "$local_dir" + tst_net_use_netns && host_type= if [ $TST_IPV6 ]; then @@ -131,6 +153,8 @@ nfs_mount() tst_brk TBROK "mount command failed" fi + + cd "$local_dir" } nfs_setup() @@ -162,20 +186,12 @@ nfs_setup() tst_brk TCONF "UDP support disabled on NFS server" fi - local_dir="$TST_TMPDIR/$i/$n" - remote_dir="$TST_TMPDIR/$i/$type" - mkdir -p $local_dir - - nfs_setup_server $(($$ + n)) - - nfs_mount "-o proto=$type,vers=$i" + remote_dir="$(get_remote_dir $i $type)" + nfs_setup_server "$remote_dir" "$(($$ + n))" + nfs_mount "$(get_local_dir $i $n)" "$remote_dir" "-o proto=$type,vers=$i" n=$(( n + 1 )) done - - if [ "$n" -eq 1 ]; then - cd ${VERSION}/0 - fi } nfs_cleanup() @@ -190,7 +206,7 @@ nfs_cleanup() local n=0 for i in $VERSION; do - local_dir="$TST_TMPDIR/$i/$n" + local_dir="$(get_local_dir $i $n)" grep -q "$local_dir" /proc/mounts && umount $local_dir n=$(( n + 1 )) done @@ -198,7 +214,7 @@ nfs_cleanup() n=0 for i in $VERSION; do type=$(get_socket_type $n) - remote_dir="$TST_TMPDIR/$i/$type" + remote_dir="$(get_remote_dir $i $type)" tst_rhost_run -c "test -d $remote_dir && exportfs -u *:$remote_dir" tst_rhost_run -c "test -d $remote_dir && rm -rf $remote_dir" n=$(( n + 1 ))
Logic for creating local and remote directories was on more places. Create get_local_dir() and get_remote_dir() functions to keep it on single place. local dir is needed in nfs_mount(), but was defined in nfs_setup() and reused local variable with shell inheritance (ugly!), because there were all parameters from loop. Similarly, remote dir is needed in both nfs_mount() and nfs_setup_server(), but created with shell inheritance in nfs_setup(). Pass these params to nfs_mount() and nfs_setup_server() and define variables with new functions get_local_dir() and get_remote_dir(). Use get_remote_dir() in nfs_get_remote_path(). Move cd to local directory to the end of nfs_mount() (it used to cd after nfs_mount(), but only if -v parameter contained single version, but it does not harm to always cd). Signed-off-by: Petr Vorel <pvorel@suse.cz> --- testcases/network/nfs/nfs_stress/nfs_lib.sh | 52 ++++++++++++++------- 1 file changed, 34 insertions(+), 18 deletions(-)