hi,Markus
在 2021/2/2 3:05, Markus Elfring 写道:
…
+++ b/drivers/block/nbd.c
@@ -2011,12 +2011,14 @@ static int nbd_genl_disconnect(struct sk_buff *skb, struct genl_info *info)
index);
return -EINVAL;
}
+ mutex_lock(&nbd->config_lock);
if (!refcount_inc_not_zero(&nbd->refs)) {
- mutex_unlock(&nbd_index_mutex);
- printk(KERN_ERR "nbd: device at index %d is going down\n",
- index);
- return -EINVAL;
+ goto unlock;
}
+ if (!nbd->recv_workq) {
+ goto unlock;
+ }
How do you think about to use the following patch variant
(so that unwanted curly brackets would be avoided for proposed single statements
in two if branches)?
+ mutex_lock(&nbd->config_lock);
- if (!refcount_inc_not_zero(&nbd->refs)) {
+ if (!refcount_inc_not_zero(&nbd->refs) || !nbd->recv_workq) {
+ mutex_unlock(&nbd->config_lock);
mutex_unlock(&nbd_index_mutex);
printk(KERN_ERR "nbd: device at index %d is going down\n",tter
index);
return -EINVAL;
}
It looks better, thanks for your suggestion.
By the way:
Would you like to replace the following two statements by the statement
“goto put_nbd;” in another update step for this function implementation?
nbd_put(nbd);
return 0;
Sure, I will do it.
Regards,
Markus
Thanks,
Sun Ke
.