Re: How to cleanly shut down a block device

From: Jens Axboe
Date: Tue Nov 14 2006 - 03:49:44 EST


On Tue, Nov 14 2006, Pierre Ossman wrote:
> Jens Axboe wrote:
> >
> > There is no helper to kill already queued requests when a device is
> > removed, if you look at SCSI you'll see that it handles this "manually"
> > as well in the request_fn handler. So you'll need a "device dead or
> > gone" check in your request_fn handler, and do it from there.
> >
> >
>
> Is there some part of the current infrastructure I can use to determine
> this. If del_gendisk() grabs the queue lock (and hence is "safe" wrt the
> request handler), then perhaps there is a test that can be done to test
> if the disk has been deleted?

SCSI just sets ->queuedata to NULL, if you store your device there you
may do just that. Or just mark your device structure appropriately,
there are no special places in the queue for that.

--
Jens Axboe

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/