All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH V2 0/8] misc patches for rnbd
@ 2023-05-24  7:00 Guoqing Jiang
  2023-05-24  7:00 ` [PATCH V2 1/8] block/rnbd: kill rnbd_flags_supported Guoqing Jiang
                   ` (9 more replies)
  0 siblings, 10 replies; 12+ messages in thread
From: Guoqing Jiang @ 2023-05-24  7:00 UTC (permalink / raw)
  To: haris.iqbal, jinpu.wang, axboe; +Cc: linux-block

V2 changes:
1. two patches are dropped
2. collect tags from Jack
3. replace "int mode" with "enum rnbd_access_mode" in the 3rd one

Hi,

This series mostly do cleanup and other trival things, pls review.

Thanks,
Guoqing

Guoqing Jiang (8):
  block/rnbd: kill rnbd_flags_supported
  block/rnbd-srv: remove unused header
  block/rnbd: introduce rnbd_access_modes
  block/rnbd-srv: no need to check sess_dev
  block/rnbd-srv: rename one member in rnbd_srv_dev
  block/rnbd-srv: init ret with 0 instead of -EPERM
  block/rnbd-srv: init err earlier in rnbd_srv_init_module
  block/rnbd-srv: make process_msg_sess_info returns void

 drivers/block/rnbd/Makefile         |  6 ++--
 drivers/block/rnbd/rnbd-clt-sysfs.c |  4 +--
 drivers/block/rnbd/rnbd-common.c    | 23 ---------------
 drivers/block/rnbd/rnbd-proto.h     | 31 ++++++--------------
 drivers/block/rnbd/rnbd-srv-sysfs.c |  3 +-
 drivers/block/rnbd/rnbd-srv.c       | 44 +++++++++++++----------------
 drivers/block/rnbd/rnbd-srv.h       |  2 +-
 7 files changed, 34 insertions(+), 79 deletions(-)
 delete mode 100644 drivers/block/rnbd/rnbd-common.c

-- 
2.35.3


^ permalink raw reply	[flat|nested] 12+ messages in thread

* [PATCH V2 1/8] block/rnbd: kill rnbd_flags_supported
  2023-05-24  7:00 [PATCH V2 0/8] misc patches for rnbd Guoqing Jiang
@ 2023-05-24  7:00 ` Guoqing Jiang
  2023-05-24  7:00 ` [PATCH V2 2/8] block/rnbd-srv: remove unused header Guoqing Jiang
                   ` (8 subsequent siblings)
  9 siblings, 0 replies; 12+ messages in thread
From: Guoqing Jiang @ 2023-05-24  7:00 UTC (permalink / raw)
  To: haris.iqbal, jinpu.wang, axboe; +Cc: linux-block

This routine is not called since added. Then the two flags
(RNBD_OP_LAST and RNBD_F_ALL) can be removed too after kill
rnbd_flags_supported.

Acked-by: Jack Wang <jinpu.wang@ionos.com>
Signed-off-by: Guoqing Jiang <guoqing.jiang@linux.dev>
---
 drivers/block/rnbd/rnbd-proto.h | 22 ----------------------
 1 file changed, 22 deletions(-)

diff --git a/drivers/block/rnbd/rnbd-proto.h b/drivers/block/rnbd/rnbd-proto.h
index da1d0542d7e2..84fd69844b7d 100644
--- a/drivers/block/rnbd/rnbd-proto.h
+++ b/drivers/block/rnbd/rnbd-proto.h
@@ -185,7 +185,6 @@ struct rnbd_msg_io {
 enum rnbd_io_flags {
 
 	/* Operations */
-
 	RNBD_OP_READ		= 0,
 	RNBD_OP_WRITE		= 1,
 	RNBD_OP_FLUSH		= 2,
@@ -193,15 +192,9 @@ enum rnbd_io_flags {
 	RNBD_OP_SECURE_ERASE	= 4,
 	RNBD_OP_WRITE_SAME	= 5,
 
-	RNBD_OP_LAST,
-
 	/* Flags */
-
 	RNBD_F_SYNC  = 1<<(RNBD_OP_BITS + 0),
 	RNBD_F_FUA   = 1<<(RNBD_OP_BITS + 1),
-
-	RNBD_F_ALL   = (RNBD_F_SYNC | RNBD_F_FUA)
-
 };
 
 static inline u32 rnbd_op(u32 flags)
@@ -214,21 +207,6 @@ static inline u32 rnbd_flags(u32 flags)
 	return flags & ~RNBD_OP_MASK;
 }
 
-static inline bool rnbd_flags_supported(u32 flags)
-{
-	u32 op;
-
-	op = rnbd_op(flags);
-	flags = rnbd_flags(flags);
-
-	if (op >= RNBD_OP_LAST)
-		return false;
-	if (flags & ~RNBD_F_ALL)
-		return false;
-
-	return true;
-}
-
 static inline blk_opf_t rnbd_to_bio_flags(u32 rnbd_opf)
 {
 	blk_opf_t bio_opf;
-- 
2.35.3


^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [PATCH V2 2/8] block/rnbd-srv: remove unused header
  2023-05-24  7:00 [PATCH V2 0/8] misc patches for rnbd Guoqing Jiang
  2023-05-24  7:00 ` [PATCH V2 1/8] block/rnbd: kill rnbd_flags_supported Guoqing Jiang
@ 2023-05-24  7:00 ` Guoqing Jiang
  2023-05-24  7:00 ` [PATCH V2 3/8] block/rnbd: introduce rnbd_access_modes Guoqing Jiang
                   ` (7 subsequent siblings)
  9 siblings, 0 replies; 12+ messages in thread
From: Guoqing Jiang @ 2023-05-24  7:00 UTC (permalink / raw)
  To: haris.iqbal, jinpu.wang, axboe; +Cc: linux-block

No need to include it since none of macros in limits.h are
used by rnbd-srv.

Acked-by: Jack Wang <jinpu.wang@ionos.com>
Signed-off-by: Guoqing Jiang <guoqing.jiang@linux.dev>
---
 drivers/block/rnbd/rnbd-srv-sysfs.c | 1 -
 1 file changed, 1 deletion(-)

diff --git a/drivers/block/rnbd/rnbd-srv-sysfs.c b/drivers/block/rnbd/rnbd-srv-sysfs.c
index d5d9267e1fa5..9fe7d9e0ab63 100644
--- a/drivers/block/rnbd/rnbd-srv-sysfs.c
+++ b/drivers/block/rnbd/rnbd-srv-sysfs.c
@@ -9,7 +9,6 @@
 #undef pr_fmt
 #define pr_fmt(fmt) KBUILD_MODNAME " L" __stringify(__LINE__) ": " fmt
 
-#include <uapi/linux/limits.h>
 #include <linux/kobject.h>
 #include <linux/sysfs.h>
 #include <linux/stat.h>
-- 
2.35.3


^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [PATCH V2 3/8] block/rnbd: introduce rnbd_access_modes
  2023-05-24  7:00 [PATCH V2 0/8] misc patches for rnbd Guoqing Jiang
  2023-05-24  7:00 ` [PATCH V2 1/8] block/rnbd: kill rnbd_flags_supported Guoqing Jiang
  2023-05-24  7:00 ` [PATCH V2 2/8] block/rnbd-srv: remove unused header Guoqing Jiang
@ 2023-05-24  7:00 ` Guoqing Jiang
  2023-05-24 10:46   ` Jinpu Wang
  2023-05-24  7:00 ` [PATCH V2 4/8] block/rnbd-srv: no need to check sess_dev Guoqing Jiang
                   ` (6 subsequent siblings)
  9 siblings, 1 reply; 12+ messages in thread
From: Guoqing Jiang @ 2023-05-24  7:00 UTC (permalink / raw)
  To: haris.iqbal, jinpu.wang, axboe; +Cc: linux-block

Add one new array (marked with __maybe_unused to prevent gcc warning about
"defined but not used" with W=1), then we can remove rnbd_access_mode_str
and rnbd-common.c accordingly.

Signed-off-by: Guoqing Jiang <guoqing.jiang@linux.dev>
---
 drivers/block/rnbd/Makefile         |  6 ++----
 drivers/block/rnbd/rnbd-clt-sysfs.c |  4 ++--
 drivers/block/rnbd/rnbd-common.c    | 23 -----------------------
 drivers/block/rnbd/rnbd-proto.h     |  9 +++++++++
 drivers/block/rnbd/rnbd-srv-sysfs.c |  2 +-
 drivers/block/rnbd/rnbd-srv.c       |  4 ++--
 6 files changed, 16 insertions(+), 32 deletions(-)
 delete mode 100644 drivers/block/rnbd/rnbd-common.c

diff --git a/drivers/block/rnbd/Makefile b/drivers/block/rnbd/Makefile
index 40b31630822c..208e5f865497 100644
--- a/drivers/block/rnbd/Makefile
+++ b/drivers/block/rnbd/Makefile
@@ -3,13 +3,11 @@
 ccflags-y := -I$(srctree)/drivers/infiniband/ulp/rtrs
 
 rnbd-client-y := rnbd-clt.o \
-		  rnbd-clt-sysfs.o \
-		  rnbd-common.o
+		  rnbd-clt-sysfs.o
 
 CFLAGS_rnbd-srv-trace.o = -I$(src)
 
-rnbd-server-y := rnbd-common.o \
-		  rnbd-srv.o \
+rnbd-server-y := rnbd-srv.o \
 		  rnbd-srv-sysfs.o \
 		  rnbd-srv-trace.o
 
diff --git a/drivers/block/rnbd/rnbd-clt-sysfs.c b/drivers/block/rnbd/rnbd-clt-sysfs.c
index 8c6087949794..a0b49a0c0bdd 100644
--- a/drivers/block/rnbd/rnbd-clt-sysfs.c
+++ b/drivers/block/rnbd/rnbd-clt-sysfs.c
@@ -278,7 +278,7 @@ static ssize_t access_mode_show(struct kobject *kobj,
 
 	dev = container_of(kobj, struct rnbd_clt_dev, kobj);
 
-	return sysfs_emit(page, "%s\n", rnbd_access_mode_str(dev->access_mode));
+	return sysfs_emit(page, "%s\n", rnbd_access_modes[dev->access_mode].str);
 }
 
 static struct kobj_attribute rnbd_clt_access_mode =
@@ -596,7 +596,7 @@ static ssize_t rnbd_clt_map_device_store(struct kobject *kobj,
 
 	pr_info("Mapping device %s on session %s, (access_mode: %s, nr_poll_queues: %d)\n",
 		pathname, sessname,
-		rnbd_access_mode_str(access_mode),
+		rnbd_access_modes[access_mode].str,
 		nr_poll_queues);
 
 	dev = rnbd_clt_map_device(sessname, paths, path_cnt, port_nr, pathname,
diff --git a/drivers/block/rnbd/rnbd-common.c b/drivers/block/rnbd/rnbd-common.c
deleted file mode 100644
index 596c3f732403..000000000000
--- a/drivers/block/rnbd/rnbd-common.c
+++ /dev/null
@@ -1,23 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0-or-later
-/*
- * RDMA Network Block Driver
- *
- * Copyright (c) 2014 - 2018 ProfitBricks GmbH. All rights reserved.
- * Copyright (c) 2018 - 2019 1&1 IONOS Cloud GmbH. All rights reserved.
- * Copyright (c) 2019 - 2020 1&1 IONOS SE. All rights reserved.
- */
-#include "rnbd-proto.h"
-
-const char *rnbd_access_mode_str(enum rnbd_access_mode mode)
-{
-	switch (mode) {
-	case RNBD_ACCESS_RO:
-		return "ro";
-	case RNBD_ACCESS_RW:
-		return "rw";
-	case RNBD_ACCESS_MIGRATION:
-		return "migration";
-	default:
-		return "unknown";
-	}
-}
diff --git a/drivers/block/rnbd/rnbd-proto.h b/drivers/block/rnbd/rnbd-proto.h
index 84fd69844b7d..e32f8f2c868a 100644
--- a/drivers/block/rnbd/rnbd-proto.h
+++ b/drivers/block/rnbd/rnbd-proto.h
@@ -61,6 +61,15 @@ enum rnbd_access_mode {
 	RNBD_ACCESS_MIGRATION,
 };
 
+static const __maybe_unused struct {
+	enum rnbd_access_mode mode;
+	const char *str;
+} rnbd_access_modes[] = {
+	[RNBD_ACCESS_RO] = {RNBD_ACCESS_RO, "ro"},
+	[RNBD_ACCESS_RW] = {RNBD_ACCESS_RW, "rw"},
+	[RNBD_ACCESS_MIGRATION] = {RNBD_ACCESS_MIGRATION, "migration"},
+};
+
 /**
  * struct rnbd_msg_sess_info - initial session info from client to server
  * @hdr:		message header
diff --git a/drivers/block/rnbd/rnbd-srv-sysfs.c b/drivers/block/rnbd/rnbd-srv-sysfs.c
index 9fe7d9e0ab63..4962826e9639 100644
--- a/drivers/block/rnbd/rnbd-srv-sysfs.c
+++ b/drivers/block/rnbd/rnbd-srv-sysfs.c
@@ -103,7 +103,7 @@ static ssize_t access_mode_show(struct kobject *kobj,
 	sess_dev = container_of(kobj, struct rnbd_srv_sess_dev, kobj);
 
 	return sysfs_emit(page, "%s\n",
-			  rnbd_access_mode_str(sess_dev->access_mode));
+			  rnbd_access_modes[sess_dev->access_mode].str);
 }
 
 static struct kobj_attribute rnbd_srv_dev_session_access_mode_attr =
diff --git a/drivers/block/rnbd/rnbd-srv.c b/drivers/block/rnbd/rnbd-srv.c
index 2cfed2e58d64..e9ef6bd4b50c 100644
--- a/drivers/block/rnbd/rnbd-srv.c
+++ b/drivers/block/rnbd/rnbd-srv.c
@@ -483,7 +483,7 @@ static int rnbd_srv_check_update_open_perm(struct rnbd_srv_dev *srv_dev,
 			pr_err("Mapping device '%s' for session %s with RW permissions failed. Device already opened as 'RW' by %d client(s), access mode %s.\n",
 			       srv_dev->id, srv_sess->sessname,
 			       srv_dev->open_write_cnt,
-			       rnbd_access_mode_str(access_mode));
+			       rnbd_access_modes[access_mode].str);
 		}
 		break;
 	case RNBD_ACCESS_MIGRATION:
@@ -494,7 +494,7 @@ static int rnbd_srv_check_update_open_perm(struct rnbd_srv_dev *srv_dev,
 			pr_err("Mapping device '%s' for session %s with migration permissions failed. Device already opened as 'RW' by %d client(s), access mode %s.\n",
 			       srv_dev->id, srv_sess->sessname,
 			       srv_dev->open_write_cnt,
-			       rnbd_access_mode_str(access_mode));
+			       rnbd_access_modes[access_mode].str);
 		}
 		break;
 	default:
-- 
2.35.3


^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [PATCH V2 4/8] block/rnbd-srv: no need to check sess_dev
  2023-05-24  7:00 [PATCH V2 0/8] misc patches for rnbd Guoqing Jiang
                   ` (2 preceding siblings ...)
  2023-05-24  7:00 ` [PATCH V2 3/8] block/rnbd: introduce rnbd_access_modes Guoqing Jiang
@ 2023-05-24  7:00 ` Guoqing Jiang
  2023-05-24  7:00 ` [PATCH V2 5/8] block/rnbd-srv: rename one member in rnbd_srv_dev Guoqing Jiang
                   ` (5 subsequent siblings)
  9 siblings, 0 replies; 12+ messages in thread
From: Guoqing Jiang @ 2023-05-24  7:00 UTC (permalink / raw)
  To: haris.iqbal, jinpu.wang, axboe; +Cc: linux-block

Check ret is enough since if sess_dev is NULL which also
implies ret should be 0.

Acked-by: Jack Wang <jinpu.wang@ionos.com>
Signed-off-by: Guoqing Jiang <guoqing.jiang@linux.dev>
---
 drivers/block/rnbd/rnbd-srv.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/block/rnbd/rnbd-srv.c b/drivers/block/rnbd/rnbd-srv.c
index e9ef6bd4b50c..c4122e65b36a 100644
--- a/drivers/block/rnbd/rnbd-srv.c
+++ b/drivers/block/rnbd/rnbd-srv.c
@@ -96,7 +96,7 @@ rnbd_get_sess_dev(int dev_id, struct rnbd_srv_session *srv_sess)
 		ret = kref_get_unless_zero(&sess_dev->kref);
 	rcu_read_unlock();
 
-	if (!sess_dev || !ret)
+	if (!ret)
 		return ERR_PTR(-ENXIO);
 
 	return sess_dev;
-- 
2.35.3


^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [PATCH V2 5/8] block/rnbd-srv: rename one member in rnbd_srv_dev
  2023-05-24  7:00 [PATCH V2 0/8] misc patches for rnbd Guoqing Jiang
                   ` (3 preceding siblings ...)
  2023-05-24  7:00 ` [PATCH V2 4/8] block/rnbd-srv: no need to check sess_dev Guoqing Jiang
@ 2023-05-24  7:00 ` Guoqing Jiang
  2023-05-24  7:00 ` [PATCH V2 6/8] block/rnbd-srv: init ret with 0 instead of -EPERM Guoqing Jiang
                   ` (4 subsequent siblings)
  9 siblings, 0 replies; 12+ messages in thread
From: Guoqing Jiang @ 2023-05-24  7:00 UTC (permalink / raw)
  To: haris.iqbal, jinpu.wang, axboe; +Cc: linux-block

It actually represents the name of rnbd_srv_dev.

Acked-by: Jack Wang <jinpu.wang@ionos.com>
Signed-off-by: Guoqing Jiang <guoqing.jiang@linux.dev>
---
 drivers/block/rnbd/rnbd-srv.c | 14 +++++++-------
 drivers/block/rnbd/rnbd-srv.h |  2 +-
 2 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/drivers/block/rnbd/rnbd-srv.c b/drivers/block/rnbd/rnbd-srv.c
index c4122e65b36a..ac2dc692bdc0 100644
--- a/drivers/block/rnbd/rnbd-srv.c
+++ b/drivers/block/rnbd/rnbd-srv.c
@@ -180,7 +180,7 @@ static void destroy_device(struct kref *kref)
 
 	WARN_ONCE(!list_empty(&dev->sess_dev_list),
 		  "Device %s is being destroyed but still in use!\n",
-		  dev->id);
+		  dev->name);
 
 	spin_lock(&dev_lock);
 	list_del(&dev->list);
@@ -431,7 +431,7 @@ static struct rnbd_srv_dev *rnbd_srv_init_srv_dev(struct block_device *bdev)
 	if (!dev)
 		return ERR_PTR(-ENOMEM);
 
-	snprintf(dev->id, sizeof(dev->id), "%pg", bdev);
+	snprintf(dev->name, sizeof(dev->name), "%pg", bdev);
 	kref_init(&dev->kref);
 	INIT_LIST_HEAD(&dev->sess_dev_list);
 	mutex_init(&dev->lock);
@@ -446,7 +446,7 @@ rnbd_srv_find_or_add_srv_dev(struct rnbd_srv_dev *new_dev)
 
 	spin_lock(&dev_lock);
 	list_for_each_entry(dev, &dev_list, list) {
-		if (!strncmp(dev->id, new_dev->id, sizeof(dev->id))) {
+		if (!strncmp(dev->name, new_dev->name, sizeof(dev->name))) {
 			if (!kref_get_unless_zero(&dev->kref))
 				/*
 				 * We lost the race, device is almost dead.
@@ -481,7 +481,7 @@ static int rnbd_srv_check_update_open_perm(struct rnbd_srv_dev *srv_dev,
 			ret = 0;
 		} else {
 			pr_err("Mapping device '%s' for session %s with RW permissions failed. Device already opened as 'RW' by %d client(s), access mode %s.\n",
-			       srv_dev->id, srv_sess->sessname,
+			       srv_dev->name, srv_sess->sessname,
 			       srv_dev->open_write_cnt,
 			       rnbd_access_modes[access_mode].str);
 		}
@@ -492,14 +492,14 @@ static int rnbd_srv_check_update_open_perm(struct rnbd_srv_dev *srv_dev,
 			ret = 0;
 		} else {
 			pr_err("Mapping device '%s' for session %s with migration permissions failed. Device already opened as 'RW' by %d client(s), access mode %s.\n",
-			       srv_dev->id, srv_sess->sessname,
+			       srv_dev->name, srv_sess->sessname,
 			       srv_dev->open_write_cnt,
 			       rnbd_access_modes[access_mode].str);
 		}
 		break;
 	default:
 		pr_err("Received mapping request for device '%s' on session %s with invalid access mode: %d\n",
-		       srv_dev->id, srv_sess->sessname, access_mode);
+		       srv_dev->name, srv_sess->sessname, access_mode);
 		ret = -EINVAL;
 	}
 
@@ -774,7 +774,7 @@ static int process_msg_open(struct rnbd_srv_session *srv_sess,
 	list_add(&srv_sess_dev->dev_list, &srv_dev->sess_dev_list);
 	mutex_unlock(&srv_dev->lock);
 
-	rnbd_srv_info(srv_sess_dev, "Opened device '%s'\n", srv_dev->id);
+	rnbd_srv_info(srv_sess_dev, "Opened device '%s'\n", srv_dev->name);
 
 	kfree(full_path);
 
diff --git a/drivers/block/rnbd/rnbd-srv.h b/drivers/block/rnbd/rnbd-srv.h
index f5962fd31d62..6b5e5ade18ae 100644
--- a/drivers/block/rnbd/rnbd-srv.h
+++ b/drivers/block/rnbd/rnbd-srv.h
@@ -35,7 +35,7 @@ struct rnbd_srv_dev {
 	struct kobject                  dev_kobj;
 	struct kobject                  *dev_sessions_kobj;
 	struct kref                     kref;
-	char				id[NAME_MAX];
+	char				name[NAME_MAX];
 	/* List of rnbd_srv_sess_dev structs */
 	struct list_head		sess_dev_list;
 	struct mutex			lock;
-- 
2.35.3


^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [PATCH V2 6/8] block/rnbd-srv: init ret with 0 instead of -EPERM
  2023-05-24  7:00 [PATCH V2 0/8] misc patches for rnbd Guoqing Jiang
                   ` (4 preceding siblings ...)
  2023-05-24  7:00 ` [PATCH V2 5/8] block/rnbd-srv: rename one member in rnbd_srv_dev Guoqing Jiang
@ 2023-05-24  7:00 ` Guoqing Jiang
  2023-05-24  7:00 ` [PATCH V2 7/8] block/rnbd-srv: init err earlier in rnbd_srv_init_module Guoqing Jiang
                   ` (3 subsequent siblings)
  9 siblings, 0 replies; 12+ messages in thread
From: Guoqing Jiang @ 2023-05-24  7:00 UTC (permalink / raw)
  To: haris.iqbal, jinpu.wang, axboe; +Cc: linux-block

Let's always set errno after pr_err which is consistent with
default case.

Acked-by: Jack Wang <jinpu.wang@ionos.com>
Signed-off-by: Guoqing Jiang <guoqing.jiang@linux.dev>
---
 drivers/block/rnbd/rnbd-srv.c | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

diff --git a/drivers/block/rnbd/rnbd-srv.c b/drivers/block/rnbd/rnbd-srv.c
index ac2dc692bdc0..a9a506f4f33f 100644
--- a/drivers/block/rnbd/rnbd-srv.c
+++ b/drivers/block/rnbd/rnbd-srv.c
@@ -467,34 +467,33 @@ static int rnbd_srv_check_update_open_perm(struct rnbd_srv_dev *srv_dev,
 					    struct rnbd_srv_session *srv_sess,
 					    enum rnbd_access_mode access_mode)
 {
-	int ret = -EPERM;
+	int ret = 0;
 
 	mutex_lock(&srv_dev->lock);
 
 	switch (access_mode) {
 	case RNBD_ACCESS_RO:
-		ret = 0;
 		break;
 	case RNBD_ACCESS_RW:
 		if (srv_dev->open_write_cnt == 0)  {
 			srv_dev->open_write_cnt++;
-			ret = 0;
 		} else {
 			pr_err("Mapping device '%s' for session %s with RW permissions failed. Device already opened as 'RW' by %d client(s), access mode %s.\n",
 			       srv_dev->name, srv_sess->sessname,
 			       srv_dev->open_write_cnt,
 			       rnbd_access_modes[access_mode].str);
+			ret = -EPERM;
 		}
 		break;
 	case RNBD_ACCESS_MIGRATION:
 		if (srv_dev->open_write_cnt < 2) {
 			srv_dev->open_write_cnt++;
-			ret = 0;
 		} else {
 			pr_err("Mapping device '%s' for session %s with migration permissions failed. Device already opened as 'RW' by %d client(s), access mode %s.\n",
 			       srv_dev->name, srv_sess->sessname,
 			       srv_dev->open_write_cnt,
 			       rnbd_access_modes[access_mode].str);
+			ret = -EPERM;
 		}
 		break;
 	default:
-- 
2.35.3


^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [PATCH V2 7/8] block/rnbd-srv: init err earlier in rnbd_srv_init_module
  2023-05-24  7:00 [PATCH V2 0/8] misc patches for rnbd Guoqing Jiang
                   ` (5 preceding siblings ...)
  2023-05-24  7:00 ` [PATCH V2 6/8] block/rnbd-srv: init ret with 0 instead of -EPERM Guoqing Jiang
@ 2023-05-24  7:00 ` Guoqing Jiang
  2023-05-24  7:00 ` [PATCH V2 8/8] block/rnbd-srv: make process_msg_sess_info returns void Guoqing Jiang
                   ` (2 subsequent siblings)
  9 siblings, 0 replies; 12+ messages in thread
From: Guoqing Jiang @ 2023-05-24  7:00 UTC (permalink / raw)
  To: haris.iqbal, jinpu.wang, axboe; +Cc: linux-block

With this, we can remove several lines of code.

Acked-by: Jack Wang <jinpu.wang@ionos.com>
Signed-off-by: Guoqing Jiang <guoqing.jiang@linux.dev>
---
 drivers/block/rnbd/rnbd-srv.c | 8 +++-----
 1 file changed, 3 insertions(+), 5 deletions(-)

diff --git a/drivers/block/rnbd/rnbd-srv.c b/drivers/block/rnbd/rnbd-srv.c
index a9a506f4f33f..cfb741815458 100644
--- a/drivers/block/rnbd/rnbd-srv.c
+++ b/drivers/block/rnbd/rnbd-srv.c
@@ -807,7 +807,7 @@ static struct rtrs_srv_ctx *rtrs_ctx;
 static struct rtrs_srv_ops rtrs_ops;
 static int __init rnbd_srv_init_module(void)
 {
-	int err;
+	int err = 0;
 
 	BUILD_BUG_ON(sizeof(struct rnbd_msg_hdr) != 4);
 	BUILD_BUG_ON(sizeof(struct rnbd_msg_sess_info) != 36);
@@ -821,19 +821,17 @@ static int __init rnbd_srv_init_module(void)
 	};
 	rtrs_ctx = rtrs_srv_open(&rtrs_ops, port_nr);
 	if (IS_ERR(rtrs_ctx)) {
-		err = PTR_ERR(rtrs_ctx);
 		pr_err("rtrs_srv_open(), err: %d\n", err);
-		return err;
+		return PTR_ERR(rtrs_ctx);
 	}
 
 	err = rnbd_srv_create_sysfs_files();
 	if (err) {
 		pr_err("rnbd_srv_create_sysfs_files(), err: %d\n", err);
 		rtrs_srv_close(rtrs_ctx);
-		return err;
 	}
 
-	return 0;
+	return err;
 }
 
 static void __exit rnbd_srv_cleanup_module(void)
-- 
2.35.3


^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [PATCH V2 8/8] block/rnbd-srv: make process_msg_sess_info returns void
  2023-05-24  7:00 [PATCH V2 0/8] misc patches for rnbd Guoqing Jiang
                   ` (6 preceding siblings ...)
  2023-05-24  7:00 ` [PATCH V2 7/8] block/rnbd-srv: init err earlier in rnbd_srv_init_module Guoqing Jiang
@ 2023-05-24  7:00 ` Guoqing Jiang
  2023-06-12  1:37 ` [PATCH V2 0/8] misc patches for rnbd Guoqing Jiang
  2023-06-12  1:49 ` Jens Axboe
  9 siblings, 0 replies; 12+ messages in thread
From: Guoqing Jiang @ 2023-05-24  7:00 UTC (permalink / raw)
  To: haris.iqbal, jinpu.wang, axboe; +Cc: linux-block

Change the return type to void given it always returns 0.

Acked-by: Jack Wang <jinpu.wang@ionos.com>
Signed-off-by: Guoqing Jiang <guoqing.jiang@linux.dev>
---
 drivers/block/rnbd/rnbd-srv.c | 9 +++------
 1 file changed, 3 insertions(+), 6 deletions(-)

diff --git a/drivers/block/rnbd/rnbd-srv.c b/drivers/block/rnbd/rnbd-srv.c
index cfb741815458..6aae067c7a60 100644
--- a/drivers/block/rnbd/rnbd-srv.c
+++ b/drivers/block/rnbd/rnbd-srv.c
@@ -356,7 +356,7 @@ static int process_msg_open(struct rnbd_srv_session *srv_sess,
 			    const void *msg, size_t len,
 			    void *data, size_t datalen);
 
-static int process_msg_sess_info(struct rnbd_srv_session *srv_sess,
+static void process_msg_sess_info(struct rnbd_srv_session *srv_sess,
 				 const void *msg, size_t len,
 				 void *data, size_t datalen);
 
@@ -384,8 +384,7 @@ static int rnbd_srv_rdma_ev(void *priv, struct rtrs_srv_op *id,
 		ret = process_msg_open(srv_sess, usr, usrlen, data, datalen);
 		break;
 	case RNBD_MSG_SESS_INFO:
-		ret = process_msg_sess_info(srv_sess, usr, usrlen, data,
-					    datalen);
+		process_msg_sess_info(srv_sess, usr, usrlen, data, datalen);
 		break;
 	default:
 		pr_warn("Received unexpected message type %d from session %s\n",
@@ -630,7 +629,7 @@ static char *rnbd_srv_get_full_path(struct rnbd_srv_session *srv_sess,
 	return full_path;
 }
 
-static int process_msg_sess_info(struct rnbd_srv_session *srv_sess,
+static void process_msg_sess_info(struct rnbd_srv_session *srv_sess,
 				 const void *msg, size_t len,
 				 void *data, size_t datalen)
 {
@@ -643,8 +642,6 @@ static int process_msg_sess_info(struct rnbd_srv_session *srv_sess,
 
 	rsp->hdr.type = cpu_to_le16(RNBD_MSG_SESS_INFO_RSP);
 	rsp->ver = srv_sess->ver;
-
-	return 0;
 }
 
 /**
-- 
2.35.3


^ permalink raw reply related	[flat|nested] 12+ messages in thread

* Re: [PATCH V2 3/8] block/rnbd: introduce rnbd_access_modes
  2023-05-24  7:00 ` [PATCH V2 3/8] block/rnbd: introduce rnbd_access_modes Guoqing Jiang
@ 2023-05-24 10:46   ` Jinpu Wang
  0 siblings, 0 replies; 12+ messages in thread
From: Jinpu Wang @ 2023-05-24 10:46 UTC (permalink / raw)
  To: Guoqing Jiang; +Cc: haris.iqbal, axboe, linux-block

On Wed, May 24, 2023 at 9:00 AM Guoqing Jiang <guoqing.jiang@linux.dev> wrote:
>
> Add one new array (marked with __maybe_unused to prevent gcc warning about
> "defined but not used" with W=1), then we can remove rnbd_access_mode_str
> and rnbd-common.c accordingly.
>
> Signed-off-by: Guoqing Jiang <guoqing.jiang@linux.dev>
Acked-by: Jack Wang <jinpu.wang@ionos.com>
> ---
>  drivers/block/rnbd/Makefile         |  6 ++----
>  drivers/block/rnbd/rnbd-clt-sysfs.c |  4 ++--
>  drivers/block/rnbd/rnbd-common.c    | 23 -----------------------
>  drivers/block/rnbd/rnbd-proto.h     |  9 +++++++++
>  drivers/block/rnbd/rnbd-srv-sysfs.c |  2 +-
>  drivers/block/rnbd/rnbd-srv.c       |  4 ++--
>  6 files changed, 16 insertions(+), 32 deletions(-)
>  delete mode 100644 drivers/block/rnbd/rnbd-common.c
>
> diff --git a/drivers/block/rnbd/Makefile b/drivers/block/rnbd/Makefile
> index 40b31630822c..208e5f865497 100644
> --- a/drivers/block/rnbd/Makefile
> +++ b/drivers/block/rnbd/Makefile
> @@ -3,13 +3,11 @@
>  ccflags-y := -I$(srctree)/drivers/infiniband/ulp/rtrs
>
>  rnbd-client-y := rnbd-clt.o \
> -                 rnbd-clt-sysfs.o \
> -                 rnbd-common.o
> +                 rnbd-clt-sysfs.o
>
>  CFLAGS_rnbd-srv-trace.o = -I$(src)
>
> -rnbd-server-y := rnbd-common.o \
> -                 rnbd-srv.o \
> +rnbd-server-y := rnbd-srv.o \
>                   rnbd-srv-sysfs.o \
>                   rnbd-srv-trace.o
>
> diff --git a/drivers/block/rnbd/rnbd-clt-sysfs.c b/drivers/block/rnbd/rnbd-clt-sysfs.c
> index 8c6087949794..a0b49a0c0bdd 100644
> --- a/drivers/block/rnbd/rnbd-clt-sysfs.c
> +++ b/drivers/block/rnbd/rnbd-clt-sysfs.c
> @@ -278,7 +278,7 @@ static ssize_t access_mode_show(struct kobject *kobj,
>
>         dev = container_of(kobj, struct rnbd_clt_dev, kobj);
>
> -       return sysfs_emit(page, "%s\n", rnbd_access_mode_str(dev->access_mode));
> +       return sysfs_emit(page, "%s\n", rnbd_access_modes[dev->access_mode].str);
>  }
>
>  static struct kobj_attribute rnbd_clt_access_mode =
> @@ -596,7 +596,7 @@ static ssize_t rnbd_clt_map_device_store(struct kobject *kobj,
>
>         pr_info("Mapping device %s on session %s, (access_mode: %s, nr_poll_queues: %d)\n",
>                 pathname, sessname,
> -               rnbd_access_mode_str(access_mode),
> +               rnbd_access_modes[access_mode].str,
>                 nr_poll_queues);
>
>         dev = rnbd_clt_map_device(sessname, paths, path_cnt, port_nr, pathname,
> diff --git a/drivers/block/rnbd/rnbd-common.c b/drivers/block/rnbd/rnbd-common.c
> deleted file mode 100644
> index 596c3f732403..000000000000
> --- a/drivers/block/rnbd/rnbd-common.c
> +++ /dev/null
> @@ -1,23 +0,0 @@
> -// SPDX-License-Identifier: GPL-2.0-or-later
> -/*
> - * RDMA Network Block Driver
> - *
> - * Copyright (c) 2014 - 2018 ProfitBricks GmbH. All rights reserved.
> - * Copyright (c) 2018 - 2019 1&1 IONOS Cloud GmbH. All rights reserved.
> - * Copyright (c) 2019 - 2020 1&1 IONOS SE. All rights reserved.
> - */
> -#include "rnbd-proto.h"
> -
> -const char *rnbd_access_mode_str(enum rnbd_access_mode mode)
> -{
> -       switch (mode) {
> -       case RNBD_ACCESS_RO:
> -               return "ro";
> -       case RNBD_ACCESS_RW:
> -               return "rw";
> -       case RNBD_ACCESS_MIGRATION:
> -               return "migration";
> -       default:
> -               return "unknown";
> -       }
> -}
> diff --git a/drivers/block/rnbd/rnbd-proto.h b/drivers/block/rnbd/rnbd-proto.h
> index 84fd69844b7d..e32f8f2c868a 100644
> --- a/drivers/block/rnbd/rnbd-proto.h
> +++ b/drivers/block/rnbd/rnbd-proto.h
> @@ -61,6 +61,15 @@ enum rnbd_access_mode {
>         RNBD_ACCESS_MIGRATION,
>  };
>
> +static const __maybe_unused struct {
> +       enum rnbd_access_mode mode;
> +       const char *str;
> +} rnbd_access_modes[] = {
> +       [RNBD_ACCESS_RO] = {RNBD_ACCESS_RO, "ro"},
> +       [RNBD_ACCESS_RW] = {RNBD_ACCESS_RW, "rw"},
> +       [RNBD_ACCESS_MIGRATION] = {RNBD_ACCESS_MIGRATION, "migration"},
> +};
> +
>  /**
>   * struct rnbd_msg_sess_info - initial session info from client to server
>   * @hdr:               message header
> diff --git a/drivers/block/rnbd/rnbd-srv-sysfs.c b/drivers/block/rnbd/rnbd-srv-sysfs.c
> index 9fe7d9e0ab63..4962826e9639 100644
> --- a/drivers/block/rnbd/rnbd-srv-sysfs.c
> +++ b/drivers/block/rnbd/rnbd-srv-sysfs.c
> @@ -103,7 +103,7 @@ static ssize_t access_mode_show(struct kobject *kobj,
>         sess_dev = container_of(kobj, struct rnbd_srv_sess_dev, kobj);
>
>         return sysfs_emit(page, "%s\n",
> -                         rnbd_access_mode_str(sess_dev->access_mode));
> +                         rnbd_access_modes[sess_dev->access_mode].str);
>  }
>
>  static struct kobj_attribute rnbd_srv_dev_session_access_mode_attr =
> diff --git a/drivers/block/rnbd/rnbd-srv.c b/drivers/block/rnbd/rnbd-srv.c
> index 2cfed2e58d64..e9ef6bd4b50c 100644
> --- a/drivers/block/rnbd/rnbd-srv.c
> +++ b/drivers/block/rnbd/rnbd-srv.c
> @@ -483,7 +483,7 @@ static int rnbd_srv_check_update_open_perm(struct rnbd_srv_dev *srv_dev,
>                         pr_err("Mapping device '%s' for session %s with RW permissions failed. Device already opened as 'RW' by %d client(s), access mode %s.\n",
>                                srv_dev->id, srv_sess->sessname,
>                                srv_dev->open_write_cnt,
> -                              rnbd_access_mode_str(access_mode));
> +                              rnbd_access_modes[access_mode].str);
>                 }
>                 break;
>         case RNBD_ACCESS_MIGRATION:
> @@ -494,7 +494,7 @@ static int rnbd_srv_check_update_open_perm(struct rnbd_srv_dev *srv_dev,
>                         pr_err("Mapping device '%s' for session %s with migration permissions failed. Device already opened as 'RW' by %d client(s), access mode %s.\n",
>                                srv_dev->id, srv_sess->sessname,
>                                srv_dev->open_write_cnt,
> -                              rnbd_access_mode_str(access_mode));
> +                              rnbd_access_modes[access_mode].str);
>                 }
>                 break;
>         default:
> --
> 2.35.3
>

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH V2 0/8] misc patches for rnbd
  2023-05-24  7:00 [PATCH V2 0/8] misc patches for rnbd Guoqing Jiang
                   ` (7 preceding siblings ...)
  2023-05-24  7:00 ` [PATCH V2 8/8] block/rnbd-srv: make process_msg_sess_info returns void Guoqing Jiang
@ 2023-06-12  1:37 ` Guoqing Jiang
  2023-06-12  1:49 ` Jens Axboe
  9 siblings, 0 replies; 12+ messages in thread
From: Guoqing Jiang @ 2023-06-12  1:37 UTC (permalink / raw)
  To: axboe; +Cc: jinpu.wang, haris.iqbal, linux-block

Hi Jens,

Jack had acked all the patches, could you merge this series?

Thanks,
Guoqing

On 5/24/23 15:00, Guoqing Jiang wrote:
> V2 changes:
> 1. two patches are dropped
> 2. collect tags from Jack
> 3. replace "int mode" with "enum rnbd_access_mode" in the 3rd one
>
> Hi,
>
> This series mostly do cleanup and other trival things, pls review.
>
> Thanks,
> Guoqing
>
> Guoqing Jiang (8):
>    block/rnbd: kill rnbd_flags_supported
>    block/rnbd-srv: remove unused header
>    block/rnbd: introduce rnbd_access_modes
>    block/rnbd-srv: no need to check sess_dev
>    block/rnbd-srv: rename one member in rnbd_srv_dev
>    block/rnbd-srv: init ret with 0 instead of -EPERM
>    block/rnbd-srv: init err earlier in rnbd_srv_init_module
>    block/rnbd-srv: make process_msg_sess_info returns void
>
>   drivers/block/rnbd/Makefile         |  6 ++--
>   drivers/block/rnbd/rnbd-clt-sysfs.c |  4 +--
>   drivers/block/rnbd/rnbd-common.c    | 23 ---------------
>   drivers/block/rnbd/rnbd-proto.h     | 31 ++++++--------------
>   drivers/block/rnbd/rnbd-srv-sysfs.c |  3 +-
>   drivers/block/rnbd/rnbd-srv.c       | 44 +++++++++++++----------------
>   drivers/block/rnbd/rnbd-srv.h       |  2 +-
>   7 files changed, 34 insertions(+), 79 deletions(-)
>   delete mode 100644 drivers/block/rnbd/rnbd-common.c
>


^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH V2 0/8] misc patches for rnbd
  2023-05-24  7:00 [PATCH V2 0/8] misc patches for rnbd Guoqing Jiang
                   ` (8 preceding siblings ...)
  2023-06-12  1:37 ` [PATCH V2 0/8] misc patches for rnbd Guoqing Jiang
@ 2023-06-12  1:49 ` Jens Axboe
  9 siblings, 0 replies; 12+ messages in thread
From: Jens Axboe @ 2023-06-12  1:49 UTC (permalink / raw)
  To: haris.iqbal, jinpu.wang, Guoqing Jiang; +Cc: linux-block


On Wed, 24 May 2023 15:00:18 +0800, Guoqing Jiang wrote:
> V2 changes:
> 1. two patches are dropped
> 2. collect tags from Jack
> 3. replace "int mode" with "enum rnbd_access_mode" in the 3rd one
> 
> Hi,
> 
> [...]

Applied, thanks!

[1/8] block/rnbd: kill rnbd_flags_supported
      commit: b0488411e919368014907850f74191d03e25f031
[2/8] block/rnbd-srv: remove unused header
      commit: 5783153ac67e20f65a402ef42237cd1a6d7fa320
[3/8] block/rnbd: introduce rnbd_access_modes
      commit: d6e94913cb1cb4b4d1d737f72b5cef10b13395ff
[4/8] block/rnbd-srv: no need to check sess_dev
      commit: ba2eed1cf8f08f1e5b1ba009ac22554f14d05342
[5/8] block/rnbd-srv: rename one member in rnbd_srv_dev
      commit: 3ecdbf91513511fae49eb0cfa9f39f690eb4fe11
[6/8] block/rnbd-srv: init ret with 0 instead of -EPERM
      commit: 6a12d5379508d530a73140fc7d5502551558ced5
[7/8] block/rnbd-srv: init err earlier in rnbd_srv_init_module
      commit: d3fc0b46642524bc8e38aed3c7f5e99742436495
[8/8] block/rnbd-srv: make process_msg_sess_info returns void
      commit: fece685cc7bbb5e1af89f891223c31c3bcc969f7

Best regards,
-- 
Jens Axboe




^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2023-06-12  1:49 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-05-24  7:00 [PATCH V2 0/8] misc patches for rnbd Guoqing Jiang
2023-05-24  7:00 ` [PATCH V2 1/8] block/rnbd: kill rnbd_flags_supported Guoqing Jiang
2023-05-24  7:00 ` [PATCH V2 2/8] block/rnbd-srv: remove unused header Guoqing Jiang
2023-05-24  7:00 ` [PATCH V2 3/8] block/rnbd: introduce rnbd_access_modes Guoqing Jiang
2023-05-24 10:46   ` Jinpu Wang
2023-05-24  7:00 ` [PATCH V2 4/8] block/rnbd-srv: no need to check sess_dev Guoqing Jiang
2023-05-24  7:00 ` [PATCH V2 5/8] block/rnbd-srv: rename one member in rnbd_srv_dev Guoqing Jiang
2023-05-24  7:00 ` [PATCH V2 6/8] block/rnbd-srv: init ret with 0 instead of -EPERM Guoqing Jiang
2023-05-24  7:00 ` [PATCH V2 7/8] block/rnbd-srv: init err earlier in rnbd_srv_init_module Guoqing Jiang
2023-05-24  7:00 ` [PATCH V2 8/8] block/rnbd-srv: make process_msg_sess_info returns void Guoqing Jiang
2023-06-12  1:37 ` [PATCH V2 0/8] misc patches for rnbd Guoqing Jiang
2023-06-12  1:49 ` Jens Axboe

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.