mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-10-03 23:58:05 +00:00
block/rnbd-clt: Replace {NO_WAIT,WAIT} with RTRS_PERMIT_{WAIT,NOWAIT}
They are defined with the same value and similar meaning, let's remove one of them, then we can remove {WAIT,NOWAIT}. Also change the type of 'wait' from 'int' to 'enum wait_type' to make it clear. Cc: Leon Romanovsky <leonro@nvidia.com> Cc: linux-rdma@vger.kernel.org Signed-off-by: Guoqing Jiang <guoqing.jiang@ionos.com> Reviewed-by: Md Haris Iqbal <haris.iqbal@ionos.com> Signed-off-by: Gioh Kim <gi-oh.kim@ionos.com> Signed-off-by: Jack Wang <jinpu.wang@ionos.com> Reviewed-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com> Acked-by: Jason Gunthorpe <jgg@nvidia.com> Reviewed-by: Leon Romanovsky <leonro@nvidia.com> Link: https://lore.kernel.org/r/20210419073722.15351-9-gi-oh.kim@ionos.com Signed-off-by: Jens Axboe <axboe@kernel.dk>
This commit is contained in:
parent
d16b5ac874
commit
9f455eeafd
3 changed files with 22 additions and 30 deletions
|
@ -312,13 +312,11 @@ static void rnbd_rerun_all_if_idle(struct rnbd_clt_session *sess)
|
||||||
|
|
||||||
static struct rtrs_permit *rnbd_get_permit(struct rnbd_clt_session *sess,
|
static struct rtrs_permit *rnbd_get_permit(struct rnbd_clt_session *sess,
|
||||||
enum rtrs_clt_con_type con_type,
|
enum rtrs_clt_con_type con_type,
|
||||||
int wait)
|
enum wait_type wait)
|
||||||
{
|
{
|
||||||
struct rtrs_permit *permit;
|
struct rtrs_permit *permit;
|
||||||
|
|
||||||
permit = rtrs_clt_get_permit(sess->rtrs, con_type,
|
permit = rtrs_clt_get_permit(sess->rtrs, con_type, wait);
|
||||||
wait ? RTRS_PERMIT_WAIT :
|
|
||||||
RTRS_PERMIT_NOWAIT);
|
|
||||||
if (likely(permit))
|
if (likely(permit))
|
||||||
/* We have a subtle rare case here, when all permits can be
|
/* We have a subtle rare case here, when all permits can be
|
||||||
* consumed before busy counter increased. This is safe,
|
* consumed before busy counter increased. This is safe,
|
||||||
|
@ -344,7 +342,7 @@ static void rnbd_put_permit(struct rnbd_clt_session *sess,
|
||||||
|
|
||||||
static struct rnbd_iu *rnbd_get_iu(struct rnbd_clt_session *sess,
|
static struct rnbd_iu *rnbd_get_iu(struct rnbd_clt_session *sess,
|
||||||
enum rtrs_clt_con_type con_type,
|
enum rtrs_clt_con_type con_type,
|
||||||
int wait)
|
enum wait_type wait)
|
||||||
{
|
{
|
||||||
struct rnbd_iu *iu;
|
struct rnbd_iu *iu;
|
||||||
struct rtrs_permit *permit;
|
struct rtrs_permit *permit;
|
||||||
|
@ -354,9 +352,7 @@ static struct rnbd_iu *rnbd_get_iu(struct rnbd_clt_session *sess,
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
permit = rnbd_get_permit(sess, con_type,
|
permit = rnbd_get_permit(sess, con_type, wait);
|
||||||
wait ? RTRS_PERMIT_WAIT :
|
|
||||||
RTRS_PERMIT_NOWAIT);
|
|
||||||
if (unlikely(!permit)) {
|
if (unlikely(!permit)) {
|
||||||
kfree(iu);
|
kfree(iu);
|
||||||
return NULL;
|
return NULL;
|
||||||
|
@ -435,16 +431,11 @@ static void msg_conf(void *priv, int errno)
|
||||||
schedule_work(&iu->work);
|
schedule_work(&iu->work);
|
||||||
}
|
}
|
||||||
|
|
||||||
enum wait_type {
|
|
||||||
NO_WAIT = 0,
|
|
||||||
WAIT = 1
|
|
||||||
};
|
|
||||||
|
|
||||||
static int send_usr_msg(struct rtrs_clt *rtrs, int dir,
|
static int send_usr_msg(struct rtrs_clt *rtrs, int dir,
|
||||||
struct rnbd_iu *iu, struct kvec *vec,
|
struct rnbd_iu *iu, struct kvec *vec,
|
||||||
size_t len, struct scatterlist *sg, unsigned int sg_len,
|
size_t len, struct scatterlist *sg, unsigned int sg_len,
|
||||||
void (*conf)(struct work_struct *work),
|
void (*conf)(struct work_struct *work),
|
||||||
int *errno, enum wait_type wait)
|
int *errno, int wait)
|
||||||
{
|
{
|
||||||
int err;
|
int err;
|
||||||
struct rtrs_clt_req_ops req_ops;
|
struct rtrs_clt_req_ops req_ops;
|
||||||
|
@ -476,7 +467,8 @@ static void msg_close_conf(struct work_struct *work)
|
||||||
rnbd_clt_put_dev(dev);
|
rnbd_clt_put_dev(dev);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int send_msg_close(struct rnbd_clt_dev *dev, u32 device_id, bool wait)
|
static int send_msg_close(struct rnbd_clt_dev *dev, u32 device_id,
|
||||||
|
enum wait_type wait)
|
||||||
{
|
{
|
||||||
struct rnbd_clt_session *sess = dev->sess;
|
struct rnbd_clt_session *sess = dev->sess;
|
||||||
struct rnbd_msg_close msg;
|
struct rnbd_msg_close msg;
|
||||||
|
@ -530,7 +522,7 @@ static void msg_open_conf(struct work_struct *work)
|
||||||
* If server thinks its fine, but we fail to process
|
* If server thinks its fine, but we fail to process
|
||||||
* then be nice and send a close to server.
|
* then be nice and send a close to server.
|
||||||
*/
|
*/
|
||||||
(void)send_msg_close(dev, device_id, NO_WAIT);
|
send_msg_close(dev, device_id, RTRS_PERMIT_NOWAIT);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
kfree(rsp);
|
kfree(rsp);
|
||||||
|
@ -554,7 +546,7 @@ static void msg_sess_info_conf(struct work_struct *work)
|
||||||
rnbd_clt_put_sess(sess);
|
rnbd_clt_put_sess(sess);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int send_msg_open(struct rnbd_clt_dev *dev, bool wait)
|
static int send_msg_open(struct rnbd_clt_dev *dev, enum wait_type wait)
|
||||||
{
|
{
|
||||||
struct rnbd_clt_session *sess = dev->sess;
|
struct rnbd_clt_session *sess = dev->sess;
|
||||||
struct rnbd_msg_open_rsp *rsp;
|
struct rnbd_msg_open_rsp *rsp;
|
||||||
|
@ -601,7 +593,7 @@ static int send_msg_open(struct rnbd_clt_dev *dev, bool wait)
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int send_msg_sess_info(struct rnbd_clt_session *sess, bool wait)
|
static int send_msg_sess_info(struct rnbd_clt_session *sess, enum wait_type wait)
|
||||||
{
|
{
|
||||||
struct rnbd_msg_sess_info_rsp *rsp;
|
struct rnbd_msg_sess_info_rsp *rsp;
|
||||||
struct rnbd_msg_sess_info msg;
|
struct rnbd_msg_sess_info msg;
|
||||||
|
@ -687,7 +679,7 @@ static void remap_devs(struct rnbd_clt_session *sess)
|
||||||
* be asynchronous.
|
* be asynchronous.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
err = send_msg_sess_info(sess, NO_WAIT);
|
err = send_msg_sess_info(sess, RTRS_PERMIT_NOWAIT);
|
||||||
if (err) {
|
if (err) {
|
||||||
pr_err("send_msg_sess_info(\"%s\"): %d\n", sess->sessname, err);
|
pr_err("send_msg_sess_info(\"%s\"): %d\n", sess->sessname, err);
|
||||||
return;
|
return;
|
||||||
|
@ -711,7 +703,7 @@ static void remap_devs(struct rnbd_clt_session *sess)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
rnbd_clt_info(dev, "session reconnected, remapping device\n");
|
rnbd_clt_info(dev, "session reconnected, remapping device\n");
|
||||||
err = send_msg_open(dev, NO_WAIT);
|
err = send_msg_open(dev, RTRS_PERMIT_NOWAIT);
|
||||||
if (err) {
|
if (err) {
|
||||||
rnbd_clt_err(dev, "send_msg_open(): %d\n", err);
|
rnbd_clt_err(dev, "send_msg_open(): %d\n", err);
|
||||||
break;
|
break;
|
||||||
|
@ -1242,7 +1234,7 @@ find_and_get_or_create_sess(const char *sessname,
|
||||||
if (err)
|
if (err)
|
||||||
goto close_rtrs;
|
goto close_rtrs;
|
||||||
|
|
||||||
err = send_msg_sess_info(sess, WAIT);
|
err = send_msg_sess_info(sess, RTRS_PERMIT_WAIT);
|
||||||
if (err)
|
if (err)
|
||||||
goto close_rtrs;
|
goto close_rtrs;
|
||||||
|
|
||||||
|
@ -1525,7 +1517,7 @@ struct rnbd_clt_dev *rnbd_clt_map_device(const char *sessname,
|
||||||
ret = -EEXIST;
|
ret = -EEXIST;
|
||||||
goto put_dev;
|
goto put_dev;
|
||||||
}
|
}
|
||||||
ret = send_msg_open(dev, WAIT);
|
ret = send_msg_open(dev, RTRS_PERMIT_WAIT);
|
||||||
if (ret) {
|
if (ret) {
|
||||||
rnbd_clt_err(dev,
|
rnbd_clt_err(dev,
|
||||||
"map_device: failed, can't open remote device, err: %d\n",
|
"map_device: failed, can't open remote device, err: %d\n",
|
||||||
|
@ -1559,7 +1551,7 @@ struct rnbd_clt_dev *rnbd_clt_map_device(const char *sessname,
|
||||||
return dev;
|
return dev;
|
||||||
|
|
||||||
send_close:
|
send_close:
|
||||||
send_msg_close(dev, dev->device_id, WAIT);
|
send_msg_close(dev, dev->device_id, RTRS_PERMIT_WAIT);
|
||||||
del_dev:
|
del_dev:
|
||||||
delete_dev(dev);
|
delete_dev(dev);
|
||||||
put_dev:
|
put_dev:
|
||||||
|
@ -1619,7 +1611,7 @@ int rnbd_clt_unmap_device(struct rnbd_clt_dev *dev, bool force,
|
||||||
destroy_sysfs(dev, sysfs_self);
|
destroy_sysfs(dev, sysfs_self);
|
||||||
destroy_gen_disk(dev);
|
destroy_gen_disk(dev);
|
||||||
if (was_mapped && sess->rtrs)
|
if (was_mapped && sess->rtrs)
|
||||||
send_msg_close(dev, dev->device_id, WAIT);
|
send_msg_close(dev, dev->device_id, RTRS_PERMIT_WAIT);
|
||||||
|
|
||||||
rnbd_clt_info(dev, "Device is unmapped\n");
|
rnbd_clt_info(dev, "Device is unmapped\n");
|
||||||
|
|
||||||
|
@ -1653,7 +1645,7 @@ int rnbd_clt_remap_device(struct rnbd_clt_dev *dev)
|
||||||
mutex_unlock(&dev->lock);
|
mutex_unlock(&dev->lock);
|
||||||
if (!err) {
|
if (!err) {
|
||||||
rnbd_clt_info(dev, "Remapping device.\n");
|
rnbd_clt_info(dev, "Remapping device.\n");
|
||||||
err = send_msg_open(dev, WAIT);
|
err = send_msg_open(dev, RTRS_PERMIT_WAIT);
|
||||||
if (err)
|
if (err)
|
||||||
rnbd_clt_err(dev, "remap_device: %d\n", err);
|
rnbd_clt_err(dev, "remap_device: %d\n", err);
|
||||||
}
|
}
|
||||||
|
|
|
@ -103,11 +103,11 @@ static inline void __rtrs_put_permit(struct rtrs_clt *clt,
|
||||||
* up earlier.
|
* up earlier.
|
||||||
*
|
*
|
||||||
* Context:
|
* Context:
|
||||||
* Can sleep if @wait == RTRS_TAG_WAIT
|
* Can sleep if @wait == RTRS_PERMIT_WAIT
|
||||||
*/
|
*/
|
||||||
struct rtrs_permit *rtrs_clt_get_permit(struct rtrs_clt *clt,
|
struct rtrs_permit *rtrs_clt_get_permit(struct rtrs_clt *clt,
|
||||||
enum rtrs_clt_con_type con_type,
|
enum rtrs_clt_con_type con_type,
|
||||||
int can_wait)
|
enum wait_type can_wait)
|
||||||
{
|
{
|
||||||
struct rtrs_permit *permit;
|
struct rtrs_permit *permit;
|
||||||
DEFINE_WAIT(wait);
|
DEFINE_WAIT(wait);
|
||||||
|
|
|
@ -63,9 +63,9 @@ struct rtrs_clt *rtrs_clt_open(struct rtrs_clt_ops *ops,
|
||||||
|
|
||||||
void rtrs_clt_close(struct rtrs_clt *sess);
|
void rtrs_clt_close(struct rtrs_clt *sess);
|
||||||
|
|
||||||
enum {
|
enum wait_type {
|
||||||
RTRS_PERMIT_NOWAIT = 0,
|
RTRS_PERMIT_NOWAIT = 0,
|
||||||
RTRS_PERMIT_WAIT = 1,
|
RTRS_PERMIT_WAIT = 1
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -81,7 +81,7 @@ enum rtrs_clt_con_type {
|
||||||
|
|
||||||
struct rtrs_permit *rtrs_clt_get_permit(struct rtrs_clt *sess,
|
struct rtrs_permit *rtrs_clt_get_permit(struct rtrs_clt *sess,
|
||||||
enum rtrs_clt_con_type con_type,
|
enum rtrs_clt_con_type con_type,
|
||||||
int wait);
|
enum wait_type wait);
|
||||||
|
|
||||||
void rtrs_clt_put_permit(struct rtrs_clt *sess, struct rtrs_permit *permit);
|
void rtrs_clt_put_permit(struct rtrs_clt *sess, struct rtrs_permit *permit);
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue