Re: 2.6.5-mm4

Paul P Komkoff Jr
2004-04-12T08:23:35Z

Replying to Andrew Morton:
> I added a might_sleep() to generic_unplug_device(), because some drivers'
> unplug functions can sleep.
>
> It appears that either the EVMS or the udm2 patch is calling
> generic_unplug_device() under a lock. Probably spin_lock_irq(q->lock).

can it be thisi (raid1.c):

static void unplug_slaves(mddev_t *mddev)
{
conf_t *conf = mddev_to_conf(mddev);
int i;
unsigned long flags;

spin_lock_irqsave(&conf->device_lock, flags);
for (i=0; i<mddev->raid_disks; i++) {
mdk_rdev_t *rdev = conf->mirrors[i].rdev;
if (rdev && !rdev->faulty) {
request_queue_t *r_queue = bdev_get_queue(rdev->bdev);

if (r_queue->unplug_fn)
r_queue->unplug_fn(r_queue);
}
}
spin_unlock_irqrestore(&conf->device_lock, flags);
}

--
Paul P 'Stingray' Komkoff Jr // http://stingr.net/key <- my pgp key
This message represents the official view of the voices in my head