Linux-NVME Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Daniel Wagner <dwagner@suse.de>
To: Shin'ichiro Kawasaki <shinichiro.kawasaki@wdc.com>
Cc: linux-block@vger.kernel.org, linux-nvme@lists.infradead.org,
	Chaitanya Kulkarni <chaitanyak@nvidia.com>,
	Hannes Reinecke <hare@suse.de>, Daniel Wagner <dwagner@suse.de>
Subject: [PATCH blktests v2 02/18] nvme/rc: silence fcloop cleanup failures
Date: Fri, 22 Mar 2024 14:49:59 +0100	[thread overview]
Message-ID: <20240322135015.14712-3-dwagner@suse.de> (raw)
In-Reply-To: <20240322135015.14712-1-dwagner@suse.de>

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>
---
 tests/nvme/rc | 15 ++++++++++++---
 1 file changed, 12 insertions(+), 3 deletions(-)

diff --git a/tests/nvme/rc b/tests/nvme/rc
index 78d84af72e73..865c8c351159 100644
--- a/tests/nvme/rc
+++ b/tests/nvme/rc
@@ -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() {
-- 
2.44.0



  parent reply	other threads:[~2024-03-22 15:02 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-03-22 13:49 [PATCH blktests v2 00/18] refactoring and various cleanups/fixes Daniel Wagner
2024-03-22 13:49 ` [PATCH blktests v2 01/18] nvme/rc: silence error on module unload for fc Daniel Wagner
2024-03-22 13:49 ` Daniel Wagner [this message]
2024-03-25 18:27   ` [PATCH blktests v2 02/18] nvme/rc: silence fcloop cleanup failures Daniel Wagner
2024-03-26  8:39     ` Shinichiro Kawasaki
2024-03-26  9:23       ` Daniel Wagner
2024-03-22 13:50 ` [PATCH blktests v2 03/18] nvme/rc: log error if stale configuration is found Daniel Wagner
2024-03-22 13:50 ` [PATCH blktests v2 04/18] common/xfs: propagate errors from _xfs_run_fio_verify_io Daniel Wagner
2024-03-22 13:50 ` [PATCH blktests v2 05/18] nvme/{012,013,035}: check return value of _xfs_run_fio_verify_io Daniel Wagner
2024-03-22 13:50 ` [PATCH blktests v2 06/18] nvme/rc: use long command line option for nvme Daniel Wagner
2024-03-22 13:50 ` [PATCH blktests v2 07/18] nvme/{014,015,018,019,020,023,024,026,045,046}: " Daniel Wagner
2024-03-22 13:50 ` [PATCH blktests v2 08/18] nvme/rc: connect subsys only support long options Daniel Wagner
2024-03-22 13:50 ` [PATCH blktests v2 09/18] nvme/rc: add nqn/uuid args to target setup/cleanup helper Daniel Wagner
2024-03-22 13:50 ` [PATCH blktests v2 10/18] nvme/rc: remove unused connect options Daniel Wagner
2024-03-22 13:50 ` [PATCH blktests v2 11/18] nvme/rc: do not cleanup external managed loop device Daniel Wagner
2024-03-22 13:50 ` [PATCH blktests v2 12/18] nvme/031: do not open code target setup/cleanup Daniel Wagner
2024-03-22 13:50 ` [PATCH blktests v2 13/18] nvme: drop default trtype argument for _nvmet_connect_subsys Daniel Wagner
2024-03-22 13:50 ` [PATCH blktests v2 14/18] nvme: drop default trtype argument for _nvmet_passthru_target_connect Daniel Wagner
2024-03-22 13:50 ` [PATCH blktests v2 15/18] nvme: drop default subsysnqn argument from _nvme_{connect|disconnect}_subsys Daniel Wagner
2024-03-26  8:47   ` Shinichiro Kawasaki
2024-03-22 13:50 ` [PATCH blktests v2 16/18] nvme/{041,042,043,044,045,048}: do not pass default host{nqn|id} to _nvme_connect_subsys Daniel Wagner
2024-03-22 13:50 ` [PATCH blktests v2 17/18] nvme: don't assume namespace id Daniel Wagner
2024-03-22 13:50 ` [PATCH blktests v2 18/18] nvme/028: drop unused nvmedev Daniel Wagner
2024-04-16  2:50 ` [PATCH blktests v2 00/18] refactoring and various cleanups/fixes Chaitanya Kulkarni
2024-04-16  4:56   ` Shinichiro Kawasaki

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20240322135015.14712-3-dwagner@suse.de \
    --to=dwagner@suse.de \
    --cc=chaitanyak@nvidia.com \
    --cc=hare@suse.de \
    --cc=linux-block@vger.kernel.org \
    --cc=linux-nvme@lists.infradead.org \
    --cc=shinichiro.kawasaki@wdc.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox