diff options
Diffstat (limited to 'include/linux/blkdev.h')
| -rw-r--r-- | include/linux/blkdev.h | 25 | 
1 files changed, 21 insertions, 4 deletions
| diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h index 8089ca17db9a..0ce8a372d506 100644 --- a/include/linux/blkdev.h +++ b/include/linux/blkdev.h @@ -135,7 +135,7 @@ typedef __u32 __bitwise req_flags_t;  struct request {  	struct list_head queuelist;  	union { -		call_single_data_t csd; +		struct __call_single_data csd;  		u64 fifo_time;  	}; @@ -241,14 +241,24 @@ struct request {  	struct request *next_rq;  }; +static inline bool blk_op_is_scsi(unsigned int op) +{ +	return op == REQ_OP_SCSI_IN || op == REQ_OP_SCSI_OUT; +} + +static inline bool blk_op_is_private(unsigned int op) +{ +	return op == REQ_OP_DRV_IN || op == REQ_OP_DRV_OUT; +} +  static inline bool blk_rq_is_scsi(struct request *rq)  { -	return req_op(rq) == REQ_OP_SCSI_IN || req_op(rq) == REQ_OP_SCSI_OUT; +	return blk_op_is_scsi(req_op(rq));  }  static inline bool blk_rq_is_private(struct request *rq)  { -	return req_op(rq) == REQ_OP_DRV_IN || req_op(rq) == REQ_OP_DRV_OUT; +	return blk_op_is_private(req_op(rq));  }  static inline bool blk_rq_is_passthrough(struct request *rq) @@ -256,6 +266,13 @@ static inline bool blk_rq_is_passthrough(struct request *rq)  	return blk_rq_is_scsi(rq) || blk_rq_is_private(rq);  } +static inline bool bio_is_passthrough(struct bio *bio) +{ +	unsigned op = bio_op(bio); + +	return blk_op_is_scsi(op) || blk_op_is_private(op); +} +  static inline unsigned short req_get_ioprio(struct request *req)  {  	return req->ioprio; @@ -948,7 +965,7 @@ extern int blk_rq_prep_clone(struct request *rq, struct request *rq_src,  extern void blk_rq_unprep_clone(struct request *rq);  extern blk_status_t blk_insert_cloned_request(struct request_queue *q,  				     struct request *rq); -extern int blk_rq_append_bio(struct request *rq, struct bio *bio); +extern int blk_rq_append_bio(struct request *rq, struct bio **bio);  extern void blk_delay_queue(struct request_queue *, unsigned long);  extern void blk_queue_split(struct request_queue *, struct bio **);  extern void blk_recount_segments(struct request_queue *, struct bio *); | 

