From: James Bottomley <James.Bottomley@SteelEye.com>
To: Andrew Morton <akpm@osdl.org>
Cc: Reuben Farrelly <reuben-lkml@reub.net>,
neilb@suse.de, linux-kernel@vger.kernel.org, n@suse.de,
Alan Stern <stern@rowland.harvard.edu>,
linux-scsi@vger.kernel.org
Subject: Re: 2.6.14-mm1
Date: Tue, 08 Nov 2005 09:21:07 -0500 [thread overview]
Message-ID: <1131459667.3270.8.camel@mulgrave> (raw)
In-Reply-To: <20051107105257.333248c0.akpm@osdl.org>
On Mon, 2005-11-07 at 10:52 -0800, Andrew Morton wrote:
> sd_issue_flush() has been altered to run scsi_disk_get_from_dev(), which
> takes a semaphore. It does this from within spinlock and, as we see here,
> from within softirq.
>
> Methinks the people who developed and tested that patch forgot to enable
> CONFIG_PREEMPT, CONFIG_DEBUG_KERNEL, CONFIG_DEBUG_SLAB,
> CONFIG_DEBUG_SPINLOCK and CONFIG_DEBUG_SPINLOCK_SLEEP.
Actually, I do too (as far as I can on non-x86). I assume you also need
a filesystem that excites this, though.
Try the attached: We can probably rely on the block device having opened
the sd device, so there should already be a reference held on the
scsi_disk ... well that's my theory and I'm sticking to it.
James
diff --git a/drivers/scsi/sd.c b/drivers/scsi/sd.c
--- a/drivers/scsi/sd.c
+++ b/drivers/scsi/sd.c
@@ -769,20 +769,16 @@ static void sd_end_flush(request_queue_t
static int sd_prepare_flush(request_queue_t *q, struct request *rq)
{
struct scsi_device *sdev = q->queuedata;
- struct scsi_disk *sdkp = scsi_disk_get_from_dev(&sdev->sdev_gendev);
- int ret = 0;
+ struct scsi_disk *sdkp = dev_get_drvdata(&sdev->sdev_gendev);
- if (sdkp) {
- if (sdkp->WCE) {
- memset(rq->cmd, 0, sizeof(rq->cmd));
- rq->flags |= REQ_BLOCK_PC | REQ_SOFTBARRIER;
- rq->timeout = SD_TIMEOUT;
- rq->cmd[0] = SYNCHRONIZE_CACHE;
- ret = 1;
- }
- scsi_disk_put(sdkp);
- }
- return ret;
+ if (!sdkp || !sdkp->WCE)
+ return 0;
+
+ memset(rq->cmd, 0, sizeof(rq->cmd));
+ rq->flags |= REQ_BLOCK_PC | REQ_SOFTBARRIER;
+ rq->timeout = SD_TIMEOUT;
+ rq->cmd[0] = SYNCHRONIZE_CACHE;
+ return 1;
}
static void sd_rescan(struct device *dev)
next prev parent reply other threads:[~2005-11-08 14:21 UTC|newest]
Thread overview: 67+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-11-07 2:24 2.6.14-mm1 Andrew Morton
2005-11-07 3:25 ` 2.6.14-mm1 Christoph Hellwig
2005-11-07 6:12 ` 2.6.14-mm1 Andrew Morton
2005-11-07 6:34 ` 2.6.14-mm1 Herbert Xu
2005-11-07 3:30 ` 2.6.14-mm1 Christoph Hellwig
2005-11-07 12:18 ` 2.6.14-mm1 Roman Zippel
2005-11-07 17:02 ` 2.6.14-mm1 Christoph Hellwig
2005-11-07 17:23 ` 2.6.14-mm1 Roman Zippel
2005-11-07 12:41 ` 2.6.14-mm1 Geert Uytterhoeven
2005-11-07 4:04 ` 2.6.14-mm1 Brice Goglin
2005-11-07 4:10 ` 2.6.14-mm1 Reuben Farrelly
2005-11-07 6:07 ` 2.6.14-mm1 Andrew Morton
2005-11-07 8:24 ` 2.6.14-mm1 Benoit Boissinot
2005-11-07 9:54 ` 2.6.14-mm1 Reuben Farrelly
2005-11-07 10:09 ` 2.6.14-mm1 Andrew Morton
2005-11-07 10:26 ` 2.6.14-mm1 Neil Brown
2005-11-07 10:37 ` 2.6.14-mm1 Andrew Morton
2005-11-07 10:44 ` 2.6.14-mm1 Reuben Farrelly
2005-11-07 18:52 ` 2.6.14-mm1 Andrew Morton
2005-11-07 19:27 ` 2.6.14-mm1 Alan Stern
2005-11-07 19:27 ` 2.6.14-mm1 Alan Stern
2005-11-07 21:43 ` 2.6.14-mm1 J.A. Magallon
2005-11-08 0:07 ` 2.6.14-mm1 J.A. Magallon
2005-11-08 14:21 ` James Bottomley [this message]
2005-11-09 0:30 ` 2.6.14-mm1 Reuben Farrelly
2005-11-07 12:00 ` 2.6.14-mm1 Jiri Slaby
2005-11-07 15:04 ` 2.6.14-mm1 Dustin Kirkland
2005-11-07 15:11 ` 2.6.14-mm1 Jiri Slaby
2005-11-07 16:15 ` 2.6.14-mm1 Alexander E. Patrakov
2005-11-07 19:52 ` 2.6.14-mm1 Andrew Morton
2005-11-07 20:07 ` 2.6.14-mm1 Greg KH
2005-11-07 20:30 ` 2.6.14-mm1 Dmitry Torokhov
2005-11-07 20:21 ` 2.6.14-mm1 Valdis.Kletnieks
2005-11-07 20:40 ` 2.6.14-mm1 Dmitry Torokhov
2005-11-07 20:46 ` 2.6.14-mm1 Andrew Morton
2005-11-11 9:32 ` 2.6.14-mm1 Alexander E. Patrakov
[not found] ` <437472DA.4090001@linuxfromscratch.org>
2005-11-11 11:50 ` 2.6.14-mm1 Alexander E. Patrakov
2005-11-07 17:37 ` 2.6.14-mm1: drivers/pci/hotplug/: namespace clashes Adrian Bunk
2005-11-07 18:41 ` Rajesh Shah
2005-11-07 20:03 ` Adrian Bunk
2005-11-07 21:37 ` Rajesh Shah
2005-11-07 21:10 ` 2.6.14-mm1: Why is USB_LIBUSUAL user-visible? Adrian Bunk
2005-11-07 21:52 ` Greg KH
2005-11-07 22:26 ` [linux-usb-devel] " Alan Stern
2005-11-07 22:28 ` Greg KH
2005-11-08 0:47 ` [-mm patch] USB_LIBUSUAL shouldn't be user-visible Adrian Bunk
2005-11-09 22:28 ` Greg KH
2005-11-10 6:41 ` Pete Zaitcev
2005-11-10 10:56 ` Adrian Bunk
2005-11-10 23:46 ` Greg KH
2005-11-11 2:09 ` Adrian Bunk
2005-11-11 6:13 ` Greg KH
2005-11-11 9:31 ` Pete Zaitcev
2005-11-10 12:11 ` Reuben Farrelly
2005-11-11 9:14 ` Pete Zaitcev
2005-11-07 23:34 ` 2.6.14-mm1: Why is USB_LIBUSUAL user-visible? Pete Zaitcev
2005-11-07 22:28 ` 2.6.14-mm1 - cpufreq build problem Rafael J. Wysocki
2005-11-08 4:36 ` [-mm patch] __deprecated_for_modules the lookup_hash() prototype Adrian Bunk
2005-11-10 13:07 ` 2.6.14-mm1 Serge Hallyn
[not found] ` <OFE00FE25C.725B5669-ON872570B5.0066EFF0-862570B5.00679646@us.ibm.com>
2005-11-11 17:59 ` 2.6.14-mm1 Serge Hallyn
2005-11-14 17:05 ` 2.6.14-mm1 Greg KH
2005-11-12 0:31 ` 2.6.14-mm1 Michal Piotrowski
2005-11-12 0:51 ` 2.6.14-mm1 Andrew Morton
2005-11-12 1:30 ` 2.6.14-mm1 Michal Piotrowski
2005-11-12 1:47 ` 2.6.14-mm1 Andrew Morton
2005-11-12 18:00 ` 2.6.14-mm1 Michal Piotrowski
-- strict thread matches above, loose matches on Subject: below --
2005-11-07 2:24 2.6.14-mm1 Andrew Morton
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=1131459667.3270.8.camel@mulgrave \
--to=james.bottomley@steeleye.com \
--cc=akpm@osdl.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-scsi@vger.kernel.org \
--cc=n@suse.de \
--cc=neilb@suse.de \
--cc=reuben-lkml@reub.net \
--cc=stern@rowland.harvard.edu \
/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.