aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/blkdev.h
diff options
context:
space:
mode:
authorJens Axboe <axboe@suse.de>2006-07-28 03:32:07 -0400
committerJens Axboe <axboe@nelson.home.kernel.dk>2006-09-30 14:29:23 -0400
commitcdd6026217c0e4cda2efce1bdc318661bef1f66f (patch)
treee26bb9c40b603b9cc321aa4217fecf34e1bc5f24 /include/linux/blkdev.h
parent49171e5c6f414d49a061b5c1c84967c2eb569822 (diff)
[PATCH] Remove ->rq_status from struct request
After Christophs SCSI change, the only usage left is RQ_ACTIVE and RQ_INACTIVE. The block layer sets RQ_INACTIVE right before freeing the request, so any check for RQ_INACTIVE in a driver is a bug and indicates use-after-free. So kill/clean the remaining users, straight forward. Signed-off-by: Jens Axboe <axboe@suse.de>
Diffstat (limited to 'include/linux/blkdev.h')
-rw-r--r--include/linux/blkdev.h13
1 files changed, 5 insertions, 8 deletions
diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h
index d4c1dd046e27..8a3e309e0842 100644
--- a/include/linux/blkdev.h
+++ b/include/linux/blkdev.h
@@ -243,8 +243,6 @@ struct request {
243 243
244 void *completion_data; 244 void *completion_data;
245 245
246 int rq_status; /* should split this into a few status bits */
247 int errors;
248 struct gendisk *rq_disk; 246 struct gendisk *rq_disk;
249 unsigned long start_time; 247 unsigned long start_time;
250 248
@@ -262,14 +260,16 @@ struct request {
262 260
263 unsigned short ioprio; 261 unsigned short ioprio;
264 262
265 int tag;
266
267 int ref_count;
268 request_queue_t *q; 263 request_queue_t *q;
269 264
270 void *special; 265 void *special;
271 char *buffer; 266 char *buffer;
272 267
268 int tag;
269 int errors;
270
271 int ref_count;
272
273 /* 273 /*
274 * when request is used as a packet command carrier 274 * when request is used as a packet command carrier
275 */ 275 */
@@ -456,9 +456,6 @@ struct request_queue
456 struct mutex sysfs_lock; 456 struct mutex sysfs_lock;
457}; 457};
458 458
459#define RQ_INACTIVE (-1)
460#define RQ_ACTIVE 1
461
462#define QUEUE_FLAG_CLUSTER 0 /* cluster several segments into 1 */ 459#define QUEUE_FLAG_CLUSTER 0 /* cluster several segments into 1 */
463#define QUEUE_FLAG_QUEUED 1 /* uses generic tag queueing */ 460#define QUEUE_FLAG_QUEUED 1 /* uses generic tag queueing */
464#define QUEUE_FLAG_STOPPED 2 /* queue is stopped */ 461#define QUEUE_FLAG_STOPPED 2 /* queue is stopped */