]> www.infradead.org Git - users/sagi/blktests.git/commitdiff
nvme/rc: silence fcloop cleanup failures
authorDaniel Wagner <dwagner@suse.de>
Tue, 26 Mar 2024 13:13:44 +0000 (14:13 +0100)
committerShin'ichiro Kawasaki <shinichiro.kawasaki@wdc.com>
Fri, 29 Mar 2024 05:36:25 +0000 (14:36 +0900)
When the ctl file is missing we are logging

  tests/nvme/rc: line 265: /sys/class/fcloop/ctl/del_target_port: No such file or directory
  tests/nvme/rc: line 257: /sys/class/fcloop/ctl/del_local_port: No such file or directory
  tests/nvme/rc: line 249: /sys/class/fcloop/ctl/del_remote_port: No such file or directory

because the first redirect operator fails. Also it's not possible to
redirect the 'echo' error to /dev/null, because it's a builtin command
which escapes the stderr redirect operator (why?).

Anyway, the simplest way to catch this error is to first check if the
control file exists before attempting to write to it.

Signed-off-by: Daniel Wagner <dwagner@suse.de>
Signed-off-by: Shin'ichiro Kawasaki <shinichiro.kawasaki@wdc.com>
tests/nvme/rc

index 78d84af72e736d8c682e1631e72634f9a17f6a31..865c8c35115997e4c9f65b1bf26d387891a54b64 100644 (file)
@@ -234,7 +234,10 @@ _nvme_fcloop_del_rport() {
        local remote_wwpn="$4"
        local loopctl=/sys/class/fcloop/ctl
 
-       echo "wwnn=${remote_wwnn},wwpn=${remote_wwpn}" > ${loopctl}/del_remote_port 2> /dev/null
+       if [[ ! -f "${loopctl}/del_remote_port" ]]; then
+               return
+       fi
+       echo "wwnn=${remote_wwnn},wwpn=${remote_wwpn}" > "${loopctl}/del_remote_port"
 }
 
 _nvme_fcloop_del_lport() {
@@ -242,7 +245,10 @@ _nvme_fcloop_del_lport() {
        local wwpn="$2"
        local loopctl=/sys/class/fcloop/ctl
 
-       echo "wwnn=${wwnn},wwpn=${wwpn}" > ${loopctl}/del_local_port 2> /dev/null
+       if [[ ! -f "${loopctl}/del_local_port" ]]; then
+               return
+       fi
+       echo "wwnn=${wwnn},wwpn=${wwpn}" > "${loopctl}/del_local_port"
 }
 
 _nvme_fcloop_del_tport() {
@@ -250,7 +256,10 @@ _nvme_fcloop_del_tport() {
        local wwpn="$2"
        local loopctl=/sys/class/fcloop/ctl
 
-       echo "wwnn=${wwnn},wwpn=${wwpn}" > ${loopctl}/del_target_port 2> /dev/null
+       if [[ ! -f "${loopctl}/del_target_port" ]]; then
+               return
+       fi
+       echo "wwnn=${wwnn},wwpn=${wwpn}" > "${loopctl}/del_target_port"
 }
 
 _cleanup_fcloop() {