All of 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 v3 02/20] nvme/rc: silence fcloop cleanup failures
Date: Tue, 26 Mar 2024 14:13:44 +0100	[thread overview]
Message-ID: <20240326131402.5092-3-dwagner@suse.de> (raw)
In-Reply-To: <20240326131402.5092-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-26 13:14 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-03-26 13:13 [PATCH blktests v3 00/20] refactoring and various cleanups/fixes Daniel Wagner
2024-03-26 13:13 ` [PATCH blktests v3 01/20] nvme/rc: silence error on module unload for fc Daniel Wagner
2024-03-26 13:13 ` Daniel Wagner [this message]
2024-03-26 13:13 ` [PATCH blktests v3 03/20] nvme/rc: log error if stale configuration is found Daniel Wagner
2024-03-26 13:13 ` [PATCH blktests v3 04/20] common/xfs: propagate errors from _xfs_run_fio_verify_io Daniel Wagner
2024-03-26 13:13 ` [PATCH blktests v3 05/20] nvme/{012,013,035}: check return value of _xfs_run_fio_verify_io Daniel Wagner
2024-03-26 13:13 ` [PATCH blktests v3 06/20] nvme/rc: use long command line option for nvme Daniel Wagner
2024-03-26 13:13 ` [PATCH blktests v3 07/20] nvme/{014,015,018,019,020,023,024,026,045,046}: " Daniel Wagner
2024-03-26 13:13 ` [PATCH blktests v3 08/20] nvme/rc: connect subsys only support long options Daniel Wagner
2024-03-26 13:13 ` [PATCH blktests v3 09/20] nvme/rc: add nqn/uuid args to target setup/cleanup helper Daniel Wagner
2024-03-26 13:13 ` [PATCH blktests v3 10/20] nvme/rc: remove unused connect options Daniel Wagner
2024-03-26 13:13 ` [PATCH blktests v3 11/20] nvme/rc: do not cleanup external managed loop device Daniel Wagner
2024-03-26 13:13 ` [PATCH blktests v3 12/20] nvme/031: do not open code target setup/cleanup Daniel Wagner
2024-03-26 13:13 ` [PATCH blktests v3 13/20] nvme: drop default trtype argument for _nvmet_connect_subsys Daniel Wagner
2024-03-26 13:13 ` [PATCH blktests v3 14/20] nvme: drop default trtype argument for _nvmet_passthru_target_connect Daniel Wagner
2024-03-26 13:13 ` [PATCH blktests v3 15/20] nvme: drop default subsysnqn argument from _nvme_{connect|disconnect}_subsys Daniel Wagner
2024-03-26 13:13 ` [PATCH blktests v3 16/20] nvme: drop default subsysnqn argument from _nvme_passthru_target_{setup|cleanup} Daniel Wagner
2024-03-29  8:05   ` Shinichiro Kawasaki
2024-03-26 13:13 ` [PATCH blktests v3 17/20] nvme: drop default subsysnqn argument from _nvmet_passthru_target_connect Daniel Wagner
2024-03-26 13:14 ` [PATCH blktests v3 18/20] nvme/{041,042,043,044,045,048}: do not pass default host{nqn|id} to _nvme_connect_subsys Daniel Wagner
2024-03-26 13:14 ` [PATCH blktests v3 19/20] nvme: don't assume namespace id Daniel Wagner
2024-03-26 13:14 ` [PATCH blktests v3 20/20] nvme/028: drop unused nvmedev Daniel Wagner
2024-03-29  8:05 ` [PATCH blktests v3 00/20] refactoring and various cleanups/fixes 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=20240326131402.5092-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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.