From: Jinpu Wang <jinpu.wang@ionos.com>
To: Guoqing Jiang <guoqing.jiang@linux.dev>
Cc: haris.iqbal@ionos.com, axboe@kernel.dk, linux-block@vger.kernel.org
Subject: Re: [RFC PATCH 1/6] rnbd-clt: open code send_msg_open in rnbd_clt_map_device
Date: Tue, 21 Jun 2022 17:11:15 +0200 [thread overview]
Message-ID: <CAMGffEn9_FPgX_RLds7RwPL_TSft0NHFXTsR_AjyeQF=mXQwkA@mail.gmail.com> (raw)
In-Reply-To: <20220620034923.35633-2-guoqing.jiang@linux.dev>
On Mon, Jun 20, 2022 at 5:49 AM Guoqing Jiang <guoqing.jiang@linux.dev> wrote:
>
> Let's open code it in rnbd_clt_map_device, then we can use information
> from rsp to setup gendisk and request_queue in next commits. After that,
> we can remove some members (wc, fua and max_hw_sectors etc) from struct
> rnbd_clt_dev.
>
> Signed-off-by: Guoqing Jiang <guoqing.jiang@linux.dev>
> ---
> drivers/block/rnbd/rnbd-clt.c | 44 +++++++++++++++++++++++++++++++++--
> 1 file changed, 42 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/block/rnbd/rnbd-clt.c b/drivers/block/rnbd/rnbd-clt.c
> index 409c76b81aed..0396532da742 100644
> --- a/drivers/block/rnbd/rnbd-clt.c
> +++ b/drivers/block/rnbd/rnbd-clt.c
> @@ -1562,7 +1562,14 @@ struct rnbd_clt_dev *rnbd_clt_map_device(const char *sessname,
> {
> struct rnbd_clt_session *sess;
> struct rnbd_clt_dev *dev;
> - int ret;
> + int ret, errno;
> + struct rnbd_msg_open_rsp *rsp;
> + struct rnbd_msg_open msg;
> + struct rnbd_iu *iu;
> + struct kvec vec = {
> + .iov_base = &msg,
> + .iov_len = sizeof(msg)
> + };
>
> if (exists_devpath(pathname, sessname))
> return ERR_PTR(-EEXIST);
> @@ -1582,13 +1589,46 @@ struct rnbd_clt_dev *rnbd_clt_map_device(const char *sessname,
> ret = -EEXIST;
> goto put_dev;
> }
> - ret = send_msg_open(dev, RTRS_PERMIT_WAIT);
> +
> + rsp = kzalloc(sizeof(*rsp), GFP_KERNEL);
> + if (!rsp) {
> + ret = -ENOMEM;
> + goto del_dev;
> + }
> +
> + iu = rnbd_get_iu(sess, RTRS_ADMIN_CON, RTRS_PERMIT_WAIT);
> + if (!iu) {
> + ret = -ENOMEM;
> + kfree(rsp);
> + goto del_dev;
> + }
> + iu->buf = rsp;
> + iu->dev = dev;
> + sg_init_one(iu->sgt.sgl, rsp, sizeof(*rsp));
> +
> + msg.hdr.type = cpu_to_le16(RNBD_MSG_OPEN);
> + msg.access_mode = dev->access_mode;
> + strscpy(msg.dev_name, dev->pathname, sizeof(msg.dev_name));
> +
> + WARN_ON(!rnbd_clt_get_dev(dev));
> + ret = send_usr_msg(sess->rtrs, READ, iu,
> + &vec, sizeof(*rsp), iu->sgt.sgl, 1,
> + msg_open_conf, &errno, RTRS_PERMIT_WAIT);
> + if (ret) {
> + rnbd_clt_put_dev(dev);
> + rnbd_put_iu(sess, iu);
> + kfree(rsp);
> + } else {
> + ret = errno;
> + }
> + rnbd_put_iu(sess, iu);
> if (ret) {
> rnbd_clt_err(dev,
> "map_device: failed, can't open remote device, err: %d\n",
> ret);
> goto del_dev;
> }
> +
looks ok, except this new line seems not needed.
Thx!
> mutex_lock(&dev->lock);
> pr_debug("Opened remote device: session=%s, path='%s'\n",
> sess->sessname, pathname);
> --
> 2.34.1
>
next prev parent reply other threads:[~2022-06-21 15:13 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-06-20 3:49 [RFC PATCH 0/6] reduce the size of rnbd_clt_dev Guoqing Jiang
2022-06-20 3:49 ` [RFC PATCH 1/6] rnbd-clt: open code send_msg_open in rnbd_clt_map_device Guoqing Jiang
2022-06-21 15:11 ` Jinpu Wang [this message]
2022-06-22 11:14 ` Guoqing Jiang
2022-06-20 3:49 ` [RFC PATCH 2/6] rnbd-clt: don't free rsp in msg_open_conf for map scenario Guoqing Jiang
2022-06-22 10:57 ` Jinpu Wang
2022-06-20 3:49 ` [RFC PATCH 3/6] rnbd-clt: kill read_only from struct rnbd_clt_dev Guoqing Jiang
2022-06-22 10:57 ` Jinpu Wang
2022-06-20 3:49 ` [RFC PATCH 4/6] rnbd-clt: reduce the size of " Guoqing Jiang
2022-06-22 10:58 ` Jinpu Wang
2022-06-20 3:49 ` [RFC PATCH 5/6] rnbd-clt: adjust the layout " Guoqing Jiang
2022-06-22 10:58 ` Jinpu Wang
2022-06-20 3:49 ` [RFC PATCH 6/6] rnbd-clt: refactor rnbd_clt_change_capacity Guoqing Jiang
2022-06-22 10:57 ` Jinpu Wang
2022-06-22 11:12 ` Guoqing Jiang
2022-06-21 12:16 ` [RFC PATCH 0/6] reduce the size of rnbd_clt_dev Jinpu Wang
2022-06-22 11:15 ` Guoqing Jiang
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='CAMGffEn9_FPgX_RLds7RwPL_TSft0NHFXTsR_AjyeQF=mXQwkA@mail.gmail.com' \
--to=jinpu.wang@ionos.com \
--cc=axboe@kernel.dk \
--cc=guoqing.jiang@linux.dev \
--cc=haris.iqbal@ionos.com \
--cc=linux-block@vger.kernel.org \
/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;
as well as URLs for NNTP newsgroup(s).