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

.

Reply via email to