From 8b2685fa162d7d8801d283723ca369c0744afe6c Mon Sep 17 00:00:00 2001 From: Hannes Reinecke Date: Thu, 18 Jun 2009 09:57:18 +0200 Subject: [PATCH] --- yaml --- r: 154047 b: refs/heads/master c: b391277a56b9eaaff4474339c703e574ed7fab5b h: refs/heads/master i: 154045: 348b12493bad713962576e4265fe487a516d597d 154043: cedd87c7d9b63c02ee1453f112f05bd7b9f5e595 154039: b0a7c13524b5c408f978d23b81b56d1c949b6c97 154031: e9d0624c5a8f2bf16b2b847078adf293bc914a8c 154015: 40da598b940d53b91f9dd983ab1d867d862c470e 153983: 526025a342424ec5ba6c49983772599d36fd1bfd v: v3 --- [refs] | 2 +- trunk/drivers/scsi/scsi_lib.c | 1 + trunk/drivers/scsi/scsi_priv.h | 1 - trunk/drivers/scsi/scsi_sysfs.c | 17 ----------------- trunk/drivers/scsi/sd.c | 1 + trunk/drivers/scsi/sr.c | 1 + trunk/include/scsi/scsi_driver.h | 1 + 7 files changed, 5 insertions(+), 19 deletions(-) diff --git a/[refs] b/[refs] index d5e4e0e2c2c0..f4b9de7f2fa4 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 24add1c4326ce5ca22e7af8b84bb113cd48efac9 +refs/heads/master: b391277a56b9eaaff4474339c703e574ed7fab5b diff --git a/trunk/drivers/scsi/scsi_lib.c b/trunk/drivers/scsi/scsi_lib.c index 30f3275e119e..f3c40898fc7d 100644 --- a/trunk/drivers/scsi/scsi_lib.c +++ b/trunk/drivers/scsi/scsi_lib.c @@ -1207,6 +1207,7 @@ int scsi_prep_fn(struct request_queue *q, struct request *req) ret = scsi_setup_blk_pc_cmnd(sdev, req); return scsi_prep_return(q, req, ret); } +EXPORT_SYMBOL(scsi_prep_fn); /* * scsi_dev_queue_ready: if we can send requests to sdev, return 1 else diff --git a/trunk/drivers/scsi/scsi_priv.h b/trunk/drivers/scsi/scsi_priv.h index 00264aab8c8a..021e503c8c44 100644 --- a/trunk/drivers/scsi/scsi_priv.h +++ b/trunk/drivers/scsi/scsi_priv.h @@ -87,7 +87,6 @@ extern int scsi_init_queue(void); extern void scsi_exit_queue(void); struct request_queue; struct request; -extern int scsi_prep_fn(struct request_queue *, struct request *); extern struct kmem_cache *scsi_sdb_cache; /* scsi_proc.c */ diff --git a/trunk/drivers/scsi/scsi_sysfs.c b/trunk/drivers/scsi/scsi_sysfs.c index fa4711d12744..91482f2dcc50 100644 --- a/trunk/drivers/scsi/scsi_sysfs.c +++ b/trunk/drivers/scsi/scsi_sysfs.c @@ -420,29 +420,12 @@ static int scsi_bus_resume(struct device * dev) return err; } -static int scsi_bus_remove(struct device *dev) -{ - struct device_driver *drv = dev->driver; - struct scsi_device *sdev = to_scsi_device(dev); - int err = 0; - - /* reset the prep_fn back to the default since the - * driver may have altered it and it's being removed */ - blk_queue_prep_rq(sdev->request_queue, scsi_prep_fn); - - if (drv && drv->remove) - err = drv->remove(dev); - - return 0; -} - struct bus_type scsi_bus_type = { .name = "scsi", .match = scsi_bus_match, .uevent = scsi_bus_uevent, .suspend = scsi_bus_suspend, .resume = scsi_bus_resume, - .remove = scsi_bus_remove, }; EXPORT_SYMBOL_GPL(scsi_bus_type); diff --git a/trunk/drivers/scsi/sd.c b/trunk/drivers/scsi/sd.c index e4ef11af18a2..5616cd780ff3 100644 --- a/trunk/drivers/scsi/sd.c +++ b/trunk/drivers/scsi/sd.c @@ -2123,6 +2123,7 @@ static int sd_remove(struct device *dev) async_synchronize_full(); sdkp = dev_get_drvdata(dev); + blk_queue_prep_rq(sdkp->device->request_queue, scsi_prep_fn); device_del(&sdkp->dev); del_gendisk(sdkp->disk); sd_shutdown(dev); diff --git a/trunk/drivers/scsi/sr.c b/trunk/drivers/scsi/sr.c index cd350dfc1216..cce0fe4c8a3b 100644 --- a/trunk/drivers/scsi/sr.c +++ b/trunk/drivers/scsi/sr.c @@ -881,6 +881,7 @@ static int sr_remove(struct device *dev) { struct scsi_cd *cd = dev_get_drvdata(dev); + blk_queue_prep_rq(cd->device->request_queue, scsi_prep_fn); del_gendisk(cd->disk); mutex_lock(&sr_ref_mutex); diff --git a/trunk/include/scsi/scsi_driver.h b/trunk/include/scsi/scsi_driver.h index 1f5ca7f62116..9fd6702f02e2 100644 --- a/trunk/include/scsi/scsi_driver.h +++ b/trunk/include/scsi/scsi_driver.h @@ -32,5 +32,6 @@ int scsi_setup_blk_pc_cmnd(struct scsi_device *sdev, struct request *req); int scsi_setup_fs_cmnd(struct scsi_device *sdev, struct request *req); int scsi_prep_state_check(struct scsi_device *sdev, struct request *req); int scsi_prep_return(struct request_queue *q, struct request *req, int ret); +int scsi_prep_fn(struct request_queue *, struct request *); #endif /* _SCSI_SCSI_DRIVER_H */