All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2] bcache: explicitly destroy mutex while exiting
@ 2017-10-10  9:00 Liang Chen
  2017-10-10 12:25 ` Coly Li
  0 siblings, 1 reply; 7+ messages in thread
From: Liang Chen @ 2017-10-10  9:00 UTC (permalink / raw)
  To: linux-bcache; +Cc: mlyle, i, kent.overstreet, linux-kernel, Liang Chen

mutex_destroy does nothing most of time, but it's better to call
it to make the code future proof and it also has some meaning
for like mutex debug.

As Coly pointed out in a previous review, bcache_exit() may not be
able to handle all the references properly if userspace registers
cache and backing devices right before bch_debug_init runs and
bch_debug_init failes later. So not exposing userspace interface
until everything is ready to avoid that issue.

Signed-off-by: Liang Chen <liangchen.linux@gmail.com>
---
 drivers/md/bcache/super.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/drivers/md/bcache/super.c b/drivers/md/bcache/super.c
index fc0a31b..25bf003 100644
--- a/drivers/md/bcache/super.c
+++ b/drivers/md/bcache/super.c
@@ -2085,6 +2085,7 @@ static void bcache_exit(void)
 	if (bcache_major)
 		unregister_blkdev(bcache_major, "bcache");
 	unregister_reboot_notifier(&reboot);
+	mutex_destroy(&bch_register_lock);
 }
 
 static int __init bcache_init(void)
@@ -2103,14 +2104,15 @@ static int __init bcache_init(void)
 	bcache_major = register_blkdev(0, "bcache");
 	if (bcache_major < 0) {
 		unregister_reboot_notifier(&reboot);
+		mutex_destroy(&bch_register_lock);
 		return bcache_major;
 	}
 
 	if (!(bcache_wq = alloc_workqueue("bcache", WQ_MEM_RECLAIM, 0)) ||
 	    !(bcache_kobj = kobject_create_and_add("bcache", fs_kobj)) ||
-	    sysfs_create_files(bcache_kobj, files) ||
 	    bch_request_init() ||
-	    bch_debug_init(bcache_kobj))
+	    bch_debug_init(bcache_kobj) ||
+	    sysfs_create_files(bcache_kobj, files))
 		goto err;
 
 	return 0;
-- 
1.8.3.1

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [PATCH v2] bcache: explicitly destroy mutex while exiting
  2017-10-10  9:00 [PATCH v2] bcache: explicitly destroy mutex while exiting Liang Chen
@ 2017-10-10 12:25 ` Coly Li
  2017-10-10 15:44   ` Michael Lyle
  0 siblings, 1 reply; 7+ messages in thread
From: Coly Li @ 2017-10-10 12:25 UTC (permalink / raw)
  To: Liang Chen, linux-bcache; +Cc: mlyle, kent.overstreet, linux-kernel

On 2017/10/10 下午5:00, Liang Chen wrote:
> mutex_destroy does nothing most of time, but it's better to call
> it to make the code future proof and it also has some meaning
> for like mutex debug.
> 
> As Coly pointed out in a previous review, bcache_exit() may not be
> able to handle all the references properly if userspace registers
> cache and backing devices right before bch_debug_init runs and
> bch_debug_init failes later. So not exposing userspace interface
> until everything is ready to avoid that issue.
> 
> Signed-off-by: Liang Chen <liangchen.linux@gmail.com>

Hi Liang,

No more comment from me, it looks good. Thanks.

Reviewed-by: Coly Li <colyli@suse.de>

> ---
>  drivers/md/bcache/super.c | 6 ++++--
>  1 file changed, 4 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/md/bcache/super.c b/drivers/md/bcache/super.c
> index fc0a31b..25bf003 100644
> --- a/drivers/md/bcache/super.c
> +++ b/drivers/md/bcache/super.c
> @@ -2085,6 +2085,7 @@ static void bcache_exit(void)
>  	if (bcache_major)
>  		unregister_blkdev(bcache_major, "bcache");
>  	unregister_reboot_notifier(&reboot);
> +	mutex_destroy(&bch_register_lock);
>  }
>  
>  static int __init bcache_init(void)
> @@ -2103,14 +2104,15 @@ static int __init bcache_init(void)
>  	bcache_major = register_blkdev(0, "bcache");
>  	if (bcache_major < 0) {
>  		unregister_reboot_notifier(&reboot);
> +		mutex_destroy(&bch_register_lock);
>  		return bcache_major;
>  	}
>  
>  	if (!(bcache_wq = alloc_workqueue("bcache", WQ_MEM_RECLAIM, 0)) ||
>  	    !(bcache_kobj = kobject_create_and_add("bcache", fs_kobj)) ||
> -	    sysfs_create_files(bcache_kobj, files) ||
>  	    bch_request_init() ||
> -	    bch_debug_init(bcache_kobj))
> +	    bch_debug_init(bcache_kobj) ||
> +	    sysfs_create_files(bcache_kobj, files))
>  		goto err;
>  
>  	return 0;
> 


-- 
Coly Li

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH v2] bcache: explicitly destroy mutex while exiting
  2017-10-10 12:25 ` Coly Li
@ 2017-10-10 15:44   ` Michael Lyle
  2017-10-27 19:05     ` Eric Wheeler
  2017-10-30 12:33     ` Liang C
  0 siblings, 2 replies; 7+ messages in thread
From: Michael Lyle @ 2017-10-10 15:44 UTC (permalink / raw)
  To: Coly Li, Liang Chen, linux-bcache; +Cc: kent.overstreet, linux-kernel

On 10/10/2017 05:25 AM, Coly Li wrote:
> On 2017/10/10 下午5:00, Liang Chen wrote:
>> mutex_destroy does nothing most of time, but it's better to call
>> it to make the code future proof and it also has some meaning
>> for like mutex debug.
>>
>> As Coly pointed out in a previous review, bcache_exit() may not be
>> able to handle all the references properly if userspace registers
>> cache and backing devices right before bch_debug_init runs and
>> bch_debug_init failes later. So not exposing userspace interface
>> until everything is ready to avoid that issue.
>>
>> Signed-off-by: Liang Chen <liangchen.linux@gmail.com>
> 
> Hi Liang,
> 
> No more comment from me, it looks good. Thanks.
> 
> Reviewed-by: Coly Li <colyli@suse.de>

Looks good to me too.

Reviewed-by: Michael Lyle <mlyle@lyle.org>

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH v2] bcache: explicitly destroy mutex while exiting
  2017-10-10 15:44   ` Michael Lyle
@ 2017-10-27 19:05     ` Eric Wheeler
  2017-10-27 19:15       ` Michael Lyle
  2017-10-30 12:33     ` Liang C
  1 sibling, 1 reply; 7+ messages in thread
From: Eric Wheeler @ 2017-10-27 19:05 UTC (permalink / raw)
  To: Michael Lyle
  Cc: Coly Li, Liang Chen, linux-bcache, kent.overstreet, linux-kernel

[-- Attachment #1: Type: TEXT/PLAIN, Size: 1274 bytes --]

On Tue, 10 Oct 2017, Michael Lyle wrote:

> On 10/10/2017 05:25 AM, Coly Li wrote:
> > On 2017/10/10 下午5:00, Liang Chen wrote:
> >> mutex_destroy does nothing most of time, but it's better to call
> >> it to make the code future proof and it also has some meaning
> >> for like mutex debug.
> >>
> >> As Coly pointed out in a previous review, bcache_exit() may not be
> >> able to handle all the references properly if userspace registers
> >> cache and backing devices right before bch_debug_init runs and
> >> bch_debug_init failes later. So not exposing userspace interface
> >> until everything is ready to avoid that issue.
> >>
> >> Signed-off-by: Liang Chen <liangchen.linux@gmail.com>
> > 
> > Hi Liang,
> > 
> > No more comment from me, it looks good. Thanks.
> > 
> > Reviewed-by: Coly Li <colyli@suse.de>
> 
> Looks good to me too.
> 
> Reviewed-by: Michael Lyle <mlyle@lyle.org>

Should this Cc: stable to avoid the register race (possible 
crash?) described by Liang in other stable kernels?

Reviewed-by: Eric Wheeler <bcache@linux.ewheeler.net>

> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-bcache" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH v2] bcache: explicitly destroy mutex while exiting
  2017-10-27 19:05     ` Eric Wheeler
@ 2017-10-27 19:15       ` Michael Lyle
  0 siblings, 0 replies; 7+ messages in thread
From: Michael Lyle @ 2017-10-27 19:15 UTC (permalink / raw)
  To: Eric Wheeler
  Cc: Coly Li, Liang Chen, linux-bcache, Kent Overstreet, linux-kernel

On Fri, Oct 27, 2017 at 12:05 PM, Eric Wheeler
<bcache@lists.ewheeler.net> wrote:
> Should this Cc: stable to avoid the register race (possible
> crash?) described by Liang in other stable kernels?
>
> Reviewed-by: Eric Wheeler <bcache@linux.ewheeler.net>

This seems like an unlikely failure; basically you must have built
bcache for debug (which not many of us are doing on previous stable
series), and then be critically out of resources at the time that
bcache is registering.  Seems like more trouble than it's worth to
send it to -stable.

Mike

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH v2] bcache: explicitly destroy mutex while exiting
  2017-10-10 15:44   ` Michael Lyle
  2017-10-27 19:05     ` Eric Wheeler
@ 2017-10-30 12:33     ` Liang C
  2017-10-30 18:02       ` Michael Lyle
  1 sibling, 1 reply; 7+ messages in thread
From: Liang C @ 2017-10-30 12:33 UTC (permalink / raw)
  To: Michael Lyle; +Cc: Coly Li, linux-bcache, linux-kernel

Hi Michael,
Would you please to include this patch in your tree for the next
release? It seems passed the review. Thank you.

Thanks,
Liang

On Tue, Oct 10, 2017 at 11:44 PM, Michael Lyle <mlyle@lyle.org> wrote:
> On 10/10/2017 05:25 AM, Coly Li wrote:
>> On 2017/10/10 下午5:00, Liang Chen wrote:
>>> mutex_destroy does nothing most of time, but it's better to call
>>> it to make the code future proof and it also has some meaning
>>> for like mutex debug.
>>>
>>> As Coly pointed out in a previous review, bcache_exit() may not be
>>> able to handle all the references properly if userspace registers
>>> cache and backing devices right before bch_debug_init runs and
>>> bch_debug_init failes later. So not exposing userspace interface
>>> until everything is ready to avoid that issue.
>>>
>>> Signed-off-by: Liang Chen <liangchen.linux@gmail.com>
>>
>> Hi Liang,
>>
>> No more comment from me, it looks good. Thanks.
>>
>> Reviewed-by: Coly Li <colyli@suse.de>
>
> Looks good to me too.
>
> Reviewed-by: Michael Lyle <mlyle@lyle.org>
>

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH v2] bcache: explicitly destroy mutex while exiting
  2017-10-30 12:33     ` Liang C
@ 2017-10-30 18:02       ` Michael Lyle
  0 siblings, 0 replies; 7+ messages in thread
From: Michael Lyle @ 2017-10-30 18:02 UTC (permalink / raw)
  To: Liang C; +Cc: Coly Li, linux-bcache, linux-kernel

Hi Liang--

On 10/30/2017 05:33 AM, Liang C wrote:
> Hi Michael,
> Would you please to include this patch in your tree for the next
> release? It seems passed the review. Thank you.
> 
> Thanks,
> Liang

Thanks for the reminder.

It's in my bcache-for-next tree at https://github.com/mlyle/linux/ along
with a few other small changes.  I am testing today and plan on sending
them up to Jens soon if I have good luck overall (and after reading
overall diff).

Though: it is getting late for non-critical changes in 4.15 so I need to
have perfect test sequences with no unexplained anomalies to send these
to Jens for 4.15.

Mike

> 
> On Tue, Oct 10, 2017 at 11:44 PM, Michael Lyle <mlyle@lyle.org> wrote:
>> On 10/10/2017 05:25 AM, Coly Li wrote:
>>> On 2017/10/10 下午5:00, Liang Chen wrote:
>>>> mutex_destroy does nothing most of time, but it's better to call
>>>> it to make the code future proof and it also has some meaning
>>>> for like mutex debug.
>>>>
>>>> As Coly pointed out in a previous review, bcache_exit() may not be
>>>> able to handle all the references properly if userspace registers
>>>> cache and backing devices right before bch_debug_init runs and
>>>> bch_debug_init failes later. So not exposing userspace interface
>>>> until everything is ready to avoid that issue.
>>>>
>>>> Signed-off-by: Liang Chen <liangchen.linux@gmail.com>
>>>
>>> Hi Liang,
>>>
>>> No more comment from me, it looks good. Thanks.
>>>
>>> Reviewed-by: Coly Li <colyli@suse.de>
>>
>> Looks good to me too.
>>
>> Reviewed-by: Michael Lyle <mlyle@lyle.org>
>>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-bcache" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2017-10-30 18:02 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-10-10  9:00 [PATCH v2] bcache: explicitly destroy mutex while exiting Liang Chen
2017-10-10 12:25 ` Coly Li
2017-10-10 15:44   ` Michael Lyle
2017-10-27 19:05     ` Eric Wheeler
2017-10-27 19:15       ` Michael Lyle
2017-10-30 12:33     ` Liang C
2017-10-30 18:02       ` Michael Lyle

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.