From: Brian King <brking@us.ibm.com>
To: Matthew Wilcox <willy@debian.org>
Cc: James.Bottomley@steeleye.com, linux-scsi@vger.kernel.org
Subject: Re: [PATCH] scsi_remove_device locking
Date: Fri, 02 Jul 2004 15:34:28 -0500 [thread overview]
Message-ID: <40E5C6D4.50504@us.ibm.com> (raw)
In-Reply-To: <20040702202351.GP30334@parcelfarce.linux.theplanet.co.uk>
[-- Attachment #1: Type: text/plain, Size: 116 bytes --]
Here is an updated patch with Matthew's suggestion.
--
Brian King
eServer Storage I/O
IBM Linux Technology Center
[-- Attachment #2: scsi_remove_device_locking.patch --]
[-- Type: text/plain, Size: 1402 bytes --]
The following patch fixes an oops I was seeing on a machine with
misconfigured scsi cables, but could feasibly happen in other paths.
The oops was occurring because scsi_remove_device was getting
called for a device before scsi_add_device had fully completed.
This resulted in sysfs_remove_link being called with a NULL dentry.
Signed-off-by: Brian King <brking@us.ibm.com>
---
linux-2.6.7-bjking1/drivers/scsi/scsi_sysfs.c | 8 +++++++-
1 files changed, 7 insertions(+), 1 deletion(-)
diff -puN drivers/scsi/scsi_sysfs.c~scsi_remove_device_locking drivers/scsi/scsi_sysfs.c
--- linux-2.6.7/drivers/scsi/scsi_sysfs.c~scsi_remove_device_locking 2004-07-02 11:34:25.000000000 -0500
+++ linux-2.6.7-bjking1/drivers/scsi/scsi_sysfs.c 2004-07-02 15:29:59.000000000 -0500
@@ -524,8 +524,11 @@ int scsi_sysfs_add_sdev(struct scsi_devi
**/
void scsi_remove_device(struct scsi_device *sdev)
{
+ struct Scsi_Host *shost = sdev->host;
+
+ down(&shost->scan_mutex);
if (scsi_device_set_state(sdev, SDEV_CANCEL) != 0)
- return;
+ goto out;
class_device_unregister(&sdev->sdev_classdev);
if (sdev->transport_classdev.class)
@@ -537,6 +540,9 @@ void scsi_remove_device(struct scsi_devi
if (sdev->host->transportt->cleanup)
sdev->host->transportt->cleanup(sdev);
put_device(&sdev->sdev_gendev);
+
+out:
+ up(&shost->scan_mutex);
}
int scsi_register_driver(struct device_driver *drv)
_
prev parent reply other threads:[~2004-07-02 20:34 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-07-01 23:29 scsi_add_device/scsi_remove_device oops Brian King
2004-07-02 20:18 ` [PATCH] scsi_remove_device locking Brian King
2004-07-02 20:23 ` Matthew Wilcox
2004-07-02 20:34 ` Brian King [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=40E5C6D4.50504@us.ibm.com \
--to=brking@us.ibm.com \
--cc=James.Bottomley@steeleye.com \
--cc=linux-scsi@vger.kernel.org \
--cc=willy@debian.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.