Skip to content

Commit 5953316

Browse files
committed
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: Christoph Hellwig <[email protected]> Signed-off-by: Jens Axboe <[email protected]>
1 parent c84a83e commit 5953316

File tree

5 files changed

+40
-40
lines changed

5 files changed

+40
-40
lines changed

block/blk-core.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -174,9 +174,9 @@ void blk_dump_rq_flags(struct request *rq, char *msg)
174174
{
175175
int bit;
176176

177-
printk(KERN_INFO "%s: dev %s: type=%x, flags=%x\n", msg,
177+
printk(KERN_INFO "%s: dev %s: type=%x, flags=%llx\n", msg,
178178
rq->rq_disk ? rq->rq_disk->disk_name : "?", rq->cmd_type,
179-
rq->cmd_flags);
179+
(unsigned long long) rq->cmd_flags);
180180

181181
printk(KERN_INFO " sector %llu, nr/cnr %u/%u\n",
182182
(unsigned long long)blk_rq_pos(rq),

drivers/block/floppy.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2886,9 +2886,9 @@ static void do_fd_request(struct request_queue *q)
28862886
return;
28872887

28882888
if (WARN(atomic_read(&usage_count) == 0,
2889-
"warning: usage count=0, current_req=%p sect=%ld type=%x flags=%x\n",
2889+
"warning: usage count=0, current_req=%p sect=%ld type=%x flags=%llx\n",
28902890
current_req, (long)blk_rq_pos(current_req), current_req->cmd_type,
2891-
current_req->cmd_flags))
2891+
(unsigned long long) current_req->cmd_flags))
28922892
return;
28932893

28942894
if (test_and_set_bit(0, &fdc_busy)) {

drivers/scsi/sd.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1002,7 +1002,7 @@ static int sd_prep_fn(struct request_queue *q, struct request *rq)
10021002
SCpnt->cmnd[0] = READ_6;
10031003
SCpnt->sc_data_direction = DMA_FROM_DEVICE;
10041004
} else {
1005-
scmd_printk(KERN_ERR, SCpnt, "Unknown command %x\n", rq->cmd_flags);
1005+
scmd_printk(KERN_ERR, SCpnt, "Unknown command %llx\n", (unsigned long long) rq->cmd_flags);
10061006
goto out;
10071007
}
10081008

include/linux/blk_types.h

Lines changed: 33 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -181,16 +181,16 @@ enum rq_flag_bits {
181181
__REQ_NR_BITS, /* stops here */
182182
};
183183

184-
#define REQ_WRITE (1 << __REQ_WRITE)
185-
#define REQ_FAILFAST_DEV (1 << __REQ_FAILFAST_DEV)
186-
#define REQ_FAILFAST_TRANSPORT (1 << __REQ_FAILFAST_TRANSPORT)
187-
#define REQ_FAILFAST_DRIVER (1 << __REQ_FAILFAST_DRIVER)
188-
#define REQ_SYNC (1 << __REQ_SYNC)
189-
#define REQ_META (1 << __REQ_META)
190-
#define REQ_PRIO (1 << __REQ_PRIO)
191-
#define REQ_DISCARD (1 << __REQ_DISCARD)
192-
#define REQ_WRITE_SAME (1 << __REQ_WRITE_SAME)
193-
#define REQ_NOIDLE (1 << __REQ_NOIDLE)
184+
#define REQ_WRITE (1ULL << __REQ_WRITE)
185+
#define REQ_FAILFAST_DEV (1ULL << __REQ_FAILFAST_DEV)
186+
#define REQ_FAILFAST_TRANSPORT (1ULL << __REQ_FAILFAST_TRANSPORT)
187+
#define REQ_FAILFAST_DRIVER (1ULL << __REQ_FAILFAST_DRIVER)
188+
#define REQ_SYNC (1ULL << __REQ_SYNC)
189+
#define REQ_META (1ULL << __REQ_META)
190+
#define REQ_PRIO (1ULL << __REQ_PRIO)
191+
#define REQ_DISCARD (1ULL << __REQ_DISCARD)
192+
#define REQ_WRITE_SAME (1ULL << __REQ_WRITE_SAME)
193+
#define REQ_NOIDLE (1ULL << __REQ_NOIDLE)
194194

195195
#define REQ_FAILFAST_MASK \
196196
(REQ_FAILFAST_DEV | REQ_FAILFAST_TRANSPORT | REQ_FAILFAST_DRIVER)
@@ -206,28 +206,28 @@ enum rq_flag_bits {
206206
#define REQ_NOMERGE_FLAGS \
207207
(REQ_NOMERGE | REQ_STARTED | REQ_SOFTBARRIER | REQ_FLUSH | REQ_FUA)
208208

209-
#define REQ_RAHEAD (1 << __REQ_RAHEAD)
210-
#define REQ_THROTTLED (1 << __REQ_THROTTLED)
211-
212-
#define REQ_SORTED (1 << __REQ_SORTED)
213-
#define REQ_SOFTBARRIER (1 << __REQ_SOFTBARRIER)
214-
#define REQ_FUA (1 << __REQ_FUA)
215-
#define REQ_NOMERGE (1 << __REQ_NOMERGE)
216-
#define REQ_STARTED (1 << __REQ_STARTED)
217-
#define REQ_DONTPREP (1 << __REQ_DONTPREP)
218-
#define REQ_QUEUED (1 << __REQ_QUEUED)
219-
#define REQ_ELVPRIV (1 << __REQ_ELVPRIV)
220-
#define REQ_FAILED (1 << __REQ_FAILED)
221-
#define REQ_QUIET (1 << __REQ_QUIET)
222-
#define REQ_PREEMPT (1 << __REQ_PREEMPT)
223-
#define REQ_ALLOCED (1 << __REQ_ALLOCED)
224-
#define REQ_COPY_USER (1 << __REQ_COPY_USER)
225-
#define REQ_FLUSH (1 << __REQ_FLUSH)
226-
#define REQ_FLUSH_SEQ (1 << __REQ_FLUSH_SEQ)
227-
#define REQ_IO_STAT (1 << __REQ_IO_STAT)
228-
#define REQ_MIXED_MERGE (1 << __REQ_MIXED_MERGE)
229-
#define REQ_SECURE (1 << __REQ_SECURE)
230-
#define REQ_KERNEL (1 << __REQ_KERNEL)
231-
#define REQ_PM (1 << __REQ_PM)
209+
#define REQ_RAHEAD (1ULL << __REQ_RAHEAD)
210+
#define REQ_THROTTLED (1ULL << __REQ_THROTTLED)
211+
212+
#define REQ_SORTED (1ULL << __REQ_SORTED)
213+
#define REQ_SOFTBARRIER (1ULL << __REQ_SOFTBARRIER)
214+
#define REQ_FUA (1ULL << __REQ_FUA)
215+
#define REQ_NOMERGE (1ULL << __REQ_NOMERGE)
216+
#define REQ_STARTED (1ULL << __REQ_STARTED)
217+
#define REQ_DONTPREP (1ULL << __REQ_DONTPREP)
218+
#define REQ_QUEUED (1ULL << __REQ_QUEUED)
219+
#define REQ_ELVPRIV (1ULL << __REQ_ELVPRIV)
220+
#define REQ_FAILED (1ULL << __REQ_FAILED)
221+
#define REQ_QUIET (1ULL << __REQ_QUIET)
222+
#define REQ_PREEMPT (1ULL << __REQ_PREEMPT)
223+
#define REQ_ALLOCED (1ULL << __REQ_ALLOCED)
224+
#define REQ_COPY_USER (1ULL << __REQ_COPY_USER)
225+
#define REQ_FLUSH (1ULL << __REQ_FLUSH)
226+
#define REQ_FLUSH_SEQ (1ULL << __REQ_FLUSH_SEQ)
227+
#define REQ_IO_STAT (1ULL << __REQ_IO_STAT)
228+
#define REQ_MIXED_MERGE (1ULL << __REQ_MIXED_MERGE)
229+
#define REQ_SECURE (1ULL << __REQ_SECURE)
230+
#define REQ_KERNEL (1ULL << __REQ_KERNEL)
231+
#define REQ_PM (1ULL << __REQ_PM)
232232

233233
#endif /* __LINUX_BLK_TYPES_H */

include/linux/blkdev.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ struct request {
9999

100100
struct request_queue *q;
101101

102-
unsigned int cmd_flags;
102+
u64 cmd_flags;
103103
enum rq_cmd_type_bits cmd_type;
104104
unsigned long atomic_flags;
105105

@@ -570,7 +570,7 @@ static inline void queue_flag_clear(unsigned int flag, struct request_queue *q)
570570

571571
#define list_entry_rq(ptr) list_entry((ptr), struct request, queuelist)
572572

573-
#define rq_data_dir(rq) ((rq)->cmd_flags & 1)
573+
#define rq_data_dir(rq) (((rq)->cmd_flags & 1) != 0)
574574

575575
static inline unsigned int blk_queue_cluster(struct request_queue *q)
576576
{

0 commit comments

Comments
 (0)