aboutsummaryrefslogtreecommitdiffstats
path: root/include/scsi
diff options
context:
space:
mode:
authorIngo Molnar <mingo@elte.hu>2008-01-02 11:25:34 -0500
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2008-01-02 16:11:06 -0500
commitac40532ef0b8649e6f7f83859ea0de1c4ed08a19 (patch)
treeca86d577fe7fe68ae28b7f7d020f86bc9fff5535 /include/scsi
parent158a962422e4a54dc256b6a9b9562f3d30d34d9c (diff)
scsi: revert "[SCSI] Get rid of scsi_cmnd->done"
This reverts commit 6f5391c283d7fdcf24bf40786ea79061919d1e1d ("[SCSI] Get rid of scsi_cmnd->done") that was supposed to be a cleanup commit, but apparently it causes regressions: Bug 9370 - v2.6.24-rc2-409-g9418d5d: attempt to access beyond end of device http://bugzilla.kernel.org/show_bug.cgi?id=9370 this patch should be reintroduced in a more split-up form to make testing of it easier. Signed-off-by: Ingo Molnar <mingo@elte.hu> Acked-by: Matthew Wilcox <matthew@wil.cx> Cc: James Bottomley <James.Bottomley@HansenPartnership.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'include/scsi')
-rw-r--r--include/scsi/scsi_cmnd.h2
-rw-r--r--include/scsi/scsi_driver.h1
-rw-r--r--include/scsi/sd.h13
3 files changed, 15 insertions, 1 deletions
diff --git a/include/scsi/scsi_cmnd.h b/include/scsi/scsi_cmnd.h
index 3f47e522a1ec..7613c2989370 100644
--- a/include/scsi/scsi_cmnd.h
+++ b/include/scsi/scsi_cmnd.h
@@ -34,6 +34,7 @@ struct scsi_cmnd {
34 struct list_head list; /* scsi_cmnd participates in queue lists */ 34 struct list_head list; /* scsi_cmnd participates in queue lists */
35 struct list_head eh_entry; /* entry for the host eh_cmd_q */ 35 struct list_head eh_entry; /* entry for the host eh_cmd_q */
36 int eh_eflags; /* Used by error handlr */ 36 int eh_eflags; /* Used by error handlr */
37 void (*done) (struct scsi_cmnd *); /* Mid-level done function */
37 38
38 /* 39 /*
39 * A SCSI Command is assigned a nonzero serial_number before passed 40 * A SCSI Command is assigned a nonzero serial_number before passed
@@ -121,6 +122,7 @@ extern struct scsi_cmnd *__scsi_get_command(struct Scsi_Host *, gfp_t);
121extern void scsi_put_command(struct scsi_cmnd *); 122extern void scsi_put_command(struct scsi_cmnd *);
122extern void __scsi_put_command(struct Scsi_Host *, struct scsi_cmnd *, 123extern void __scsi_put_command(struct Scsi_Host *, struct scsi_cmnd *,
123 struct device *); 124 struct device *);
125extern void scsi_io_completion(struct scsi_cmnd *, unsigned int);
124extern void scsi_finish_command(struct scsi_cmnd *cmd); 126extern void scsi_finish_command(struct scsi_cmnd *cmd);
125extern void scsi_req_abort_cmd(struct scsi_cmnd *cmd); 127extern void scsi_req_abort_cmd(struct scsi_cmnd *cmd);
126 128
diff --git a/include/scsi/scsi_driver.h b/include/scsi/scsi_driver.h
index 1f5ca7f62116..56a304709fde 100644
--- a/include/scsi/scsi_driver.h
+++ b/include/scsi/scsi_driver.h
@@ -15,7 +15,6 @@ struct scsi_driver {
15 struct device_driver gendrv; 15 struct device_driver gendrv;
16 16
17 void (*rescan)(struct device *); 17 void (*rescan)(struct device *);
18 int (*done)(struct scsi_cmnd *);
19}; 18};
20#define to_scsi_driver(drv) \ 19#define to_scsi_driver(drv) \
21 container_of((drv), struct scsi_driver, gendrv) 20 container_of((drv), struct scsi_driver, gendrv)
diff --git a/include/scsi/sd.h b/include/scsi/sd.h
index f7513313ef0d..aa1e71613010 100644
--- a/include/scsi/sd.h
+++ b/include/scsi/sd.h
@@ -47,6 +47,19 @@ struct scsi_disk {
47}; 47};
48#define to_scsi_disk(obj) container_of(obj,struct scsi_disk,cdev) 48#define to_scsi_disk(obj) container_of(obj,struct scsi_disk,cdev)
49 49
50static int sd_revalidate_disk(struct gendisk *disk);
51static void sd_rw_intr(struct scsi_cmnd * SCpnt);
52static int sd_probe(struct device *);
53static int sd_remove(struct device *);
54static void sd_shutdown(struct device *dev);
55static int sd_suspend(struct device *dev, pm_message_t state);
56static int sd_resume(struct device *dev);
57static void sd_rescan(struct device *);
58static void sd_read_capacity(struct scsi_disk *sdkp, unsigned char *buffer);
59static void scsi_disk_release(struct class_device *cdev);
60static void sd_print_sense_hdr(struct scsi_disk *, struct scsi_sense_hdr *);
61static void sd_print_result(struct scsi_disk *, int);
62
50#define sd_printk(prefix, sdsk, fmt, a...) \ 63#define sd_printk(prefix, sdsk, fmt, a...) \
51 (sdsk)->disk ? \ 64 (sdsk)->disk ? \
52 sdev_printk(prefix, (sdsk)->device, "[%s] " fmt, \ 65 sdev_printk(prefix, (sdsk)->device, "[%s] " fmt, \