Commit 5953316d authored by Jens Axboe's avatar Jens Axboe

block: make rq->cmd_flags be 64-bit

We have officially run out of flags in a 32-bit space. Extend it
to 64-bit even on 32-bit archs.
Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
parent c84a83e2
...@@ -174,9 +174,9 @@ void blk_dump_rq_flags(struct request *rq, char *msg) ...@@ -174,9 +174,9 @@ void blk_dump_rq_flags(struct request *rq, char *msg)
{ {
int bit; int bit;
printk(KERN_INFO "%s: dev %s: type=%x, flags=%x\n", msg, printk(KERN_INFO "%s: dev %s: type=%x, flags=%llx\n", msg,
rq->rq_disk ? rq->rq_disk->disk_name : "?", rq->cmd_type, rq->rq_disk ? rq->rq_disk->disk_name : "?", rq->cmd_type,
rq->cmd_flags); (unsigned long long) rq->cmd_flags);
printk(KERN_INFO " sector %llu, nr/cnr %u/%u\n", printk(KERN_INFO " sector %llu, nr/cnr %u/%u\n",
(unsigned long long)blk_rq_pos(rq), (unsigned long long)blk_rq_pos(rq),
......
...@@ -2886,9 +2886,9 @@ static void do_fd_request(struct request_queue *q) ...@@ -2886,9 +2886,9 @@ static void do_fd_request(struct request_queue *q)
return; return;
if (WARN(atomic_read(&usage_count) == 0, if (WARN(atomic_read(&usage_count) == 0,
"warning: usage count=0, current_req=%p sect=%ld type=%x flags=%x\n", "warning: usage count=0, current_req=%p sect=%ld type=%x flags=%llx\n",
current_req, (long)blk_rq_pos(current_req), current_req->cmd_type, current_req, (long)blk_rq_pos(current_req), current_req->cmd_type,
current_req->cmd_flags)) (unsigned long long) current_req->cmd_flags))
return; return;
if (test_and_set_bit(0, &fdc_busy)) { if (test_and_set_bit(0, &fdc_busy)) {
......
...@@ -1002,7 +1002,7 @@ static int sd_prep_fn(struct request_queue *q, struct request *rq) ...@@ -1002,7 +1002,7 @@ static int sd_prep_fn(struct request_queue *q, struct request *rq)
SCpnt->cmnd[0] = READ_6; SCpnt->cmnd[0] = READ_6;
SCpnt->sc_data_direction = DMA_FROM_DEVICE; SCpnt->sc_data_direction = DMA_FROM_DEVICE;
} else { } else {
scmd_printk(KERN_ERR, SCpnt, "Unknown command %x\n", rq->cmd_flags); scmd_printk(KERN_ERR, SCpnt, "Unknown command %llx\n", (unsigned long long) rq->cmd_flags);
goto out; goto out;
} }
......
...@@ -181,16 +181,16 @@ enum rq_flag_bits { ...@@ -181,16 +181,16 @@ enum rq_flag_bits {
__REQ_NR_BITS, /* stops here */ __REQ_NR_BITS, /* stops here */
}; };
#define REQ_WRITE (1 << __REQ_WRITE) #define REQ_WRITE (1ULL << __REQ_WRITE)
#define REQ_FAILFAST_DEV (1 << __REQ_FAILFAST_DEV) #define REQ_FAILFAST_DEV (1ULL << __REQ_FAILFAST_DEV)
#define REQ_FAILFAST_TRANSPORT (1 << __REQ_FAILFAST_TRANSPORT) #define REQ_FAILFAST_TRANSPORT (1ULL << __REQ_FAILFAST_TRANSPORT)
#define REQ_FAILFAST_DRIVER (1 << __REQ_FAILFAST_DRIVER) #define REQ_FAILFAST_DRIVER (1ULL << __REQ_FAILFAST_DRIVER)
#define REQ_SYNC (1 << __REQ_SYNC) #define REQ_SYNC (1ULL << __REQ_SYNC)
#define REQ_META (1 << __REQ_META) #define REQ_META (1ULL << __REQ_META)
#define REQ_PRIO (1 << __REQ_PRIO) #define REQ_PRIO (1ULL << __REQ_PRIO)
#define REQ_DISCARD (1 << __REQ_DISCARD) #define REQ_DISCARD (1ULL << __REQ_DISCARD)
#define REQ_WRITE_SAME (1 << __REQ_WRITE_SAME) #define REQ_WRITE_SAME (1ULL << __REQ_WRITE_SAME)
#define REQ_NOIDLE (1 << __REQ_NOIDLE) #define REQ_NOIDLE (1ULL << __REQ_NOIDLE)
#define REQ_FAILFAST_MASK \ #define REQ_FAILFAST_MASK \
(REQ_FAILFAST_DEV | REQ_FAILFAST_TRANSPORT | REQ_FAILFAST_DRIVER) (REQ_FAILFAST_DEV | REQ_FAILFAST_TRANSPORT | REQ_FAILFAST_DRIVER)
...@@ -206,28 +206,28 @@ enum rq_flag_bits { ...@@ -206,28 +206,28 @@ enum rq_flag_bits {
#define REQ_NOMERGE_FLAGS \ #define REQ_NOMERGE_FLAGS \
(REQ_NOMERGE | REQ_STARTED | REQ_SOFTBARRIER | REQ_FLUSH | REQ_FUA) (REQ_NOMERGE | REQ_STARTED | REQ_SOFTBARRIER | REQ_FLUSH | REQ_FUA)
#define REQ_RAHEAD (1 << __REQ_RAHEAD) #define REQ_RAHEAD (1ULL << __REQ_RAHEAD)
#define REQ_THROTTLED (1 << __REQ_THROTTLED) #define REQ_THROTTLED (1ULL << __REQ_THROTTLED)
#define REQ_SORTED (1 << __REQ_SORTED) #define REQ_SORTED (1ULL << __REQ_SORTED)
#define REQ_SOFTBARRIER (1 << __REQ_SOFTBARRIER) #define REQ_SOFTBARRIER (1ULL << __REQ_SOFTBARRIER)
#define REQ_FUA (1 << __REQ_FUA) #define REQ_FUA (1ULL << __REQ_FUA)
#define REQ_NOMERGE (1 << __REQ_NOMERGE) #define REQ_NOMERGE (1ULL << __REQ_NOMERGE)
#define REQ_STARTED (1 << __REQ_STARTED) #define REQ_STARTED (1ULL << __REQ_STARTED)
#define REQ_DONTPREP (1 << __REQ_DONTPREP) #define REQ_DONTPREP (1ULL << __REQ_DONTPREP)
#define REQ_QUEUED (1 << __REQ_QUEUED) #define REQ_QUEUED (1ULL << __REQ_QUEUED)
#define REQ_ELVPRIV (1 << __REQ_ELVPRIV) #define REQ_ELVPRIV (1ULL << __REQ_ELVPRIV)
#define REQ_FAILED (1 << __REQ_FAILED) #define REQ_FAILED (1ULL << __REQ_FAILED)
#define REQ_QUIET (1 << __REQ_QUIET) #define REQ_QUIET (1ULL << __REQ_QUIET)
#define REQ_PREEMPT (1 << __REQ_PREEMPT) #define REQ_PREEMPT (1ULL << __REQ_PREEMPT)
#define REQ_ALLOCED (1 << __REQ_ALLOCED) #define REQ_ALLOCED (1ULL << __REQ_ALLOCED)
#define REQ_COPY_USER (1 << __REQ_COPY_USER) #define REQ_COPY_USER (1ULL << __REQ_COPY_USER)
#define REQ_FLUSH (1 << __REQ_FLUSH) #define REQ_FLUSH (1ULL << __REQ_FLUSH)
#define REQ_FLUSH_SEQ (1 << __REQ_FLUSH_SEQ) #define REQ_FLUSH_SEQ (1ULL << __REQ_FLUSH_SEQ)
#define REQ_IO_STAT (1 << __REQ_IO_STAT) #define REQ_IO_STAT (1ULL << __REQ_IO_STAT)
#define REQ_MIXED_MERGE (1 << __REQ_MIXED_MERGE) #define REQ_MIXED_MERGE (1ULL << __REQ_MIXED_MERGE)
#define REQ_SECURE (1 << __REQ_SECURE) #define REQ_SECURE (1ULL << __REQ_SECURE)
#define REQ_KERNEL (1 << __REQ_KERNEL) #define REQ_KERNEL (1ULL << __REQ_KERNEL)
#define REQ_PM (1 << __REQ_PM) #define REQ_PM (1ULL << __REQ_PM)
#endif /* __LINUX_BLK_TYPES_H */ #endif /* __LINUX_BLK_TYPES_H */
...@@ -99,7 +99,7 @@ struct request { ...@@ -99,7 +99,7 @@ struct request {
struct request_queue *q; struct request_queue *q;
unsigned int cmd_flags; u64 cmd_flags;
enum rq_cmd_type_bits cmd_type; enum rq_cmd_type_bits cmd_type;
unsigned long atomic_flags; unsigned long atomic_flags;
...@@ -570,7 +570,7 @@ static inline void queue_flag_clear(unsigned int flag, struct request_queue *q) ...@@ -570,7 +570,7 @@ static inline void queue_flag_clear(unsigned int flag, struct request_queue *q)
#define list_entry_rq(ptr) list_entry((ptr), struct request, queuelist) #define list_entry_rq(ptr) list_entry((ptr), struct request, queuelist)
#define rq_data_dir(rq) ((rq)->cmd_flags & 1) #define rq_data_dir(rq) (((rq)->cmd_flags & 1) != 0)
static inline unsigned int blk_queue_cluster(struct request_queue *q) static inline unsigned int blk_queue_cluster(struct request_queue *q)
{ {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment