Patchwork Hardy SRU - bsg: fix sysfs link remove warning

login
register
mail settings
Submitter Tim Gardner
Date March 5, 2012, 9:53 p.m.
Message ID <4F5535C4.50707@canonical.com>
Download mbox | patch
Permalink /patch/144781/
State New
Headers show

Comments

Tim Gardner - March 5, 2012, 9:53 p.m.

Stefan Bader - March 6, 2012, 10:34 a.m.
On 05.03.2012 22:53, Tim Gardner wrote:
> 
> 
> 
As reasonable for hardy... scary some things persist that long...
Herton Ronaldo Krzesinski - March 6, 2012, 1 p.m.
On Mon, Mar 05, 2012 at 02:53:08PM -0700, Tim Gardner wrote:
> 
> -- 
> Tim Gardner tim.gardner@canonical.com

> From 5242342fbb22946413367c72d1b6f0267fe3b6f1 Mon Sep 17 00:00:00 2001
> From: Tim Gardner <tim.gardner@canonical.com>
> Date: Mon, 5 Mar 2012 14:49:54 -0700
> Subject: [PATCH Hardy SRU] bsg: fix sysfs link remove warning
> 
> We create "bsg" link if q->kobj.sd is not NULL, so remove it only
>     when the same condition is true.
> 
>     Fixes:
> 
>     WARNING: at fs/sysfs/inode.c:323 sysfs_hash_and_remove+0x2b/0x77()
>     sysfs: can not remove 'bsg', no directory
>     Call Trace:
>       [<c0429683>] warn_slowpath_common+0x6a/0x7f
>       [<c0537a68>] ? sysfs_hash_and_remove+0x2b/0x77
>       [<c042970b>] warn_slowpath_fmt+0x2b/0x2f
>       [<c0537a68>] sysfs_hash_and_remove+0x2b/0x77
>       [<c053969a>] sysfs_remove_link+0x20/0x23
>       [<c05d88f1>] bsg_unregister_queue+0x40/0x6d
>       [<c0692263>] __scsi_remove_device+0x31/0x9d
>       [<c069149f>] scsi_forget_host+0x41/0x52
>       [<c0689fa9>] scsi_remove_host+0x71/0xe0
>       [<f7de5945>] quiesce_and_remove_host+0x51/0x83 [usb_storage]
>       [<f7de5a1e>] usb_stor_disconnect+0x18/0x22 [usb_storage]
>       [<c06c29de>] usb_unbind_interface+0x4e/0x109
>       [<c067a80f>] __device_release_driver+0x6b/0xa6
>       [<c067a861>] device_release_driver+0x17/0x22
>       [<c067a46a>] bus_remove_device+0xd6/0xe6
>       [<c06785e2>] device_del+0xf2/0x137
>       [<c06c101f>] usb_disable_device+0x94/0x1a0
> 
> Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
> Signed-off-by: Jens Axboe <axboe@kernel.dk>
> 
> (backported from commit 37b40adf2d1b4a5e51323be73ccf8ddcf3f15dd3)
> Signed-off-by: Tim Gardner <tim.gardner@canonical.com>
> ---
>  block/bsg.c                                   |    3 ++-
>  debian/binary-custom.d/openvz/src/block/bsg.c |    3 ++-
>  debian/binary-custom.d/xen/src/block/bsg.c    |    3 ++-
>  3 files changed, 6 insertions(+), 3 deletions(-)
> 
> diff --git a/block/bsg.c b/block/bsg.c
> index 31f85dd..180a406 100644
> --- a/block/bsg.c
> +++ b/block/bsg.c
> @@ -929,7 +929,8 @@ void bsg_unregister_queue(struct request_queue *q)
>  
>  	mutex_lock(&bsg_mutex);
>  	idr_remove(&bsg_minor_idr, bcd->minor);
> -	sysfs_remove_link(&q->kobj, "bsg");
> +	if (q->kobj.sd)
> +		sysfs_remove_link(&q->kobj, "bsg");
>  	class_device_unregister(bcd->class_dev);
>  	put_device(bcd->dev);
>  	bcd->class_dev = NULL;
> diff --git a/debian/binary-custom.d/openvz/src/block/bsg.c b/debian/binary-custom.d/openvz/src/block/bsg.c
> index 31f85dd..180a406 100644
> --- a/debian/binary-custom.d/openvz/src/block/bsg.c
> +++ b/debian/binary-custom.d/openvz/src/block/bsg.c
> @@ -929,7 +929,8 @@ void bsg_unregister_queue(struct request_queue *q)
>  
>  	mutex_lock(&bsg_mutex);
>  	idr_remove(&bsg_minor_idr, bcd->minor);
> -	sysfs_remove_link(&q->kobj, "bsg");
> +	if (q->kobj.sd)
> +		sysfs_remove_link(&q->kobj, "bsg");
>  	class_device_unregister(bcd->class_dev);
>  	put_device(bcd->dev);
>  	bcd->class_dev = NULL;
> diff --git a/debian/binary-custom.d/xen/src/block/bsg.c b/debian/binary-custom.d/xen/src/block/bsg.c
> index 31f85dd..180a406 100644
> --- a/debian/binary-custom.d/xen/src/block/bsg.c
> +++ b/debian/binary-custom.d/xen/src/block/bsg.c
> @@ -929,7 +929,8 @@ void bsg_unregister_queue(struct request_queue *q)
>  
>  	mutex_lock(&bsg_mutex);
>  	idr_remove(&bsg_minor_idr, bcd->minor);
> -	sysfs_remove_link(&q->kobj, "bsg");
> +	if (q->kobj.sd)
> +		sysfs_remove_link(&q->kobj, "bsg");
>  	class_device_unregister(bcd->class_dev);
>  	put_device(bcd->dev);
>  	bcd->class_dev = NULL;
> -- 
> 1.7.9
> 

> -- 
> kernel-team mailing list
> kernel-team@lists.ubuntu.com
> https://lists.ubuntu.com/mailman/listinfo/kernel-team
Tim Gardner - March 6, 2012, 2:22 p.m.
On 03/05/2012 02:53 PM, Tim Gardner wrote:
>

Patch

From 5242342fbb22946413367c72d1b6f0267fe3b6f1 Mon Sep 17 00:00:00 2001
From: Tim Gardner <tim.gardner@canonical.com>
Date: Mon, 5 Mar 2012 14:49:54 -0700
Subject: [PATCH Hardy SRU] bsg: fix sysfs link remove warning

We create "bsg" link if q->kobj.sd is not NULL, so remove it only
    when the same condition is true.

    Fixes:

    WARNING: at fs/sysfs/inode.c:323 sysfs_hash_and_remove+0x2b/0x77()
    sysfs: can not remove 'bsg', no directory
    Call Trace:
      [<c0429683>] warn_slowpath_common+0x6a/0x7f
      [<c0537a68>] ? sysfs_hash_and_remove+0x2b/0x77
      [<c042970b>] warn_slowpath_fmt+0x2b/0x2f
      [<c0537a68>] sysfs_hash_and_remove+0x2b/0x77
      [<c053969a>] sysfs_remove_link+0x20/0x23
      [<c05d88f1>] bsg_unregister_queue+0x40/0x6d
      [<c0692263>] __scsi_remove_device+0x31/0x9d
      [<c069149f>] scsi_forget_host+0x41/0x52
      [<c0689fa9>] scsi_remove_host+0x71/0xe0
      [<f7de5945>] quiesce_and_remove_host+0x51/0x83 [usb_storage]
      [<f7de5a1e>] usb_stor_disconnect+0x18/0x22 [usb_storage]
      [<c06c29de>] usb_unbind_interface+0x4e/0x109
      [<c067a80f>] __device_release_driver+0x6b/0xa6
      [<c067a861>] device_release_driver+0x17/0x22
      [<c067a46a>] bus_remove_device+0xd6/0xe6
      [<c06785e2>] device_del+0xf2/0x137
      [<c06c101f>] usb_disable_device+0x94/0x1a0

Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>

(backported from commit 37b40adf2d1b4a5e51323be73ccf8ddcf3f15dd3)
Signed-off-by: Tim Gardner <tim.gardner@canonical.com>
---
 block/bsg.c                                   |    3 ++-
 debian/binary-custom.d/openvz/src/block/bsg.c |    3 ++-
 debian/binary-custom.d/xen/src/block/bsg.c    |    3 ++-
 3 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/block/bsg.c b/block/bsg.c
index 31f85dd..180a406 100644
--- a/block/bsg.c
+++ b/block/bsg.c
@@ -929,7 +929,8 @@  void bsg_unregister_queue(struct request_queue *q)
 
 	mutex_lock(&bsg_mutex);
 	idr_remove(&bsg_minor_idr, bcd->minor);
-	sysfs_remove_link(&q->kobj, "bsg");
+	if (q->kobj.sd)
+		sysfs_remove_link(&q->kobj, "bsg");
 	class_device_unregister(bcd->class_dev);
 	put_device(bcd->dev);
 	bcd->class_dev = NULL;
diff --git a/debian/binary-custom.d/openvz/src/block/bsg.c b/debian/binary-custom.d/openvz/src/block/bsg.c
index 31f85dd..180a406 100644
--- a/debian/binary-custom.d/openvz/src/block/bsg.c
+++ b/debian/binary-custom.d/openvz/src/block/bsg.c
@@ -929,7 +929,8 @@  void bsg_unregister_queue(struct request_queue *q)
 
 	mutex_lock(&bsg_mutex);
 	idr_remove(&bsg_minor_idr, bcd->minor);
-	sysfs_remove_link(&q->kobj, "bsg");
+	if (q->kobj.sd)
+		sysfs_remove_link(&q->kobj, "bsg");
 	class_device_unregister(bcd->class_dev);
 	put_device(bcd->dev);
 	bcd->class_dev = NULL;
diff --git a/debian/binary-custom.d/xen/src/block/bsg.c b/debian/binary-custom.d/xen/src/block/bsg.c
index 31f85dd..180a406 100644
--- a/debian/binary-custom.d/xen/src/block/bsg.c
+++ b/debian/binary-custom.d/xen/src/block/bsg.c
@@ -929,7 +929,8 @@  void bsg_unregister_queue(struct request_queue *q)
 
 	mutex_lock(&bsg_mutex);
 	idr_remove(&bsg_minor_idr, bcd->minor);
-	sysfs_remove_link(&q->kobj, "bsg");
+	if (q->kobj.sd)
+		sysfs_remove_link(&q->kobj, "bsg");
 	class_device_unregister(bcd->class_dev);
 	put_device(bcd->dev);
 	bcd->class_dev = NULL;
-- 
1.7.9