linux-block.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
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
>

  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).