lkml.org 
[lkml]   [2021]   [Feb]   [1]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
SubjectRe: [PATCH v2] nbd: Fix NULL pointer in flush_workqueue
From
Date
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

> .

\
 
 \ /
  Last update: 2021-02-02 02:39    [W:0.138 / U:0.024 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site