aboutsummaryrefslogtreecommitdiff
path: root/drivers/block/cciss.h
diff options
context:
space:
mode:
authorMike Miller2005-07-28 01:07:31 -0700
committerLinus Torvalds2005-07-28 08:39:01 -0700
commitad2b93123d2b3cb4ba9a98dd5f62acb6d6b50391 (patch)
tree250d0f5157c98c1cc650a08bcad3f9f5a6f3ee17 /drivers/block/cciss.h
parenteaaf9c68e75edf0fa51c5770eb68c2a6cb5ff66b (diff)
[PATCH] cciss per disk queue
This patch adds per disk queue functionality to cciss. Sometime back I submitted a patch but it looks like only part of what I needed. In the 2.6 kernel if we have more than one logical volume the driver will Oops during rmmod. It seems all of the queues actually point back to the same queue. So after deleting the first volume you hit a null pointer on the second one. This has been tested in our labs. There is no difference in performance, it just fixes the Oops. Signed-off-by: Mike Miller <mike.miller@hp.com> Cc: Jens Axboe <axboe@suse.de> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'drivers/block/cciss.h')
-rw-r--r--drivers/block/cciss.h4
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/block/cciss.h b/drivers/block/cciss.h
index 8fb19206eddb..566587d0a500 100644
--- a/drivers/block/cciss.h
+++ b/drivers/block/cciss.h
@@ -29,6 +29,7 @@ typedef struct _drive_info_struct
{
__u32 LunID;
int usage_count;
+ struct request_queue *queue;
sector_t nr_blocks;
int block_size;
int heads;
@@ -72,7 +73,6 @@ struct ctlr_info
unsigned int maxQsinceinit;
unsigned int maxSG;
spinlock_t lock;
- struct request_queue *queue;
//* pointers to command and error info pool */
CommandList_struct *cmd_pool;
@@ -260,7 +260,7 @@ struct board_type {
struct access_method *access;
};
-#define CCISS_LOCK(i) (hba[i]->queue->queue_lock)
+#define CCISS_LOCK(i) (&hba[i]->lock)
#endif /* CCISS_H */