diff options
Diffstat (limited to 'include/linux/blkdev.h')
| -rw-r--r-- | include/linux/blkdev.h | 19 |
1 files changed, 14 insertions, 5 deletions
diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h index 88d68081a0f1..44710d7e7bff 100644 --- a/include/linux/blkdev.h +++ b/include/linux/blkdev.h | |||
| @@ -280,6 +280,15 @@ struct blk_queue_tag { | |||
| 280 | atomic_t refcnt; /* map can be shared */ | 280 | atomic_t refcnt; /* map can be shared */ |
| 281 | }; | 281 | }; |
| 282 | 282 | ||
| 283 | #define BLK_SCSI_MAX_CMDS (256) | ||
| 284 | #define BLK_SCSI_CMD_PER_LONG (BLK_SCSI_MAX_CMDS / (sizeof(long) * 8)) | ||
| 285 | |||
| 286 | struct blk_cmd_filter { | ||
| 287 | unsigned long read_ok[BLK_SCSI_CMD_PER_LONG]; | ||
| 288 | unsigned long write_ok[BLK_SCSI_CMD_PER_LONG]; | ||
| 289 | struct kobject kobj; | ||
| 290 | }; | ||
| 291 | |||
| 283 | struct request_queue | 292 | struct request_queue |
| 284 | { | 293 | { |
| 285 | /* | 294 | /* |
| @@ -398,6 +407,7 @@ struct request_queue | |||
| 398 | #if defined(CONFIG_BLK_DEV_BSG) | 407 | #if defined(CONFIG_BLK_DEV_BSG) |
| 399 | struct bsg_class_device bsg_dev; | 408 | struct bsg_class_device bsg_dev; |
| 400 | #endif | 409 | #endif |
| 410 | struct blk_cmd_filter cmd_filter; | ||
| 401 | }; | 411 | }; |
| 402 | 412 | ||
| 403 | #define QUEUE_FLAG_CLUSTER 0 /* cluster several segments into 1 */ | 413 | #define QUEUE_FLAG_CLUSTER 0 /* cluster several segments into 1 */ |
| @@ -655,6 +665,7 @@ extern struct request *blk_get_request(struct request_queue *, int, gfp_t); | |||
| 655 | extern void blk_insert_request(struct request_queue *, struct request *, int, void *); | 665 | extern void blk_insert_request(struct request_queue *, struct request *, int, void *); |
| 656 | extern void blk_requeue_request(struct request_queue *, struct request *); | 666 | extern void blk_requeue_request(struct request_queue *, struct request *); |
| 657 | extern void blk_plug_device(struct request_queue *); | 667 | extern void blk_plug_device(struct request_queue *); |
| 668 | extern void blk_plug_device_unlocked(struct request_queue *); | ||
| 658 | extern int blk_remove_plug(struct request_queue *); | 669 | extern int blk_remove_plug(struct request_queue *); |
| 659 | extern void blk_recount_segments(struct request_queue *, struct bio *); | 670 | extern void blk_recount_segments(struct request_queue *, struct bio *); |
| 660 | extern int scsi_cmd_ioctl(struct file *, struct request_queue *, | 671 | extern int scsi_cmd_ioctl(struct file *, struct request_queue *, |
| @@ -806,8 +817,6 @@ extern void blk_put_queue(struct request_queue *); | |||
| 806 | /* | 817 | /* |
| 807 | * tag stuff | 818 | * tag stuff |
| 808 | */ | 819 | */ |
| 809 | #define blk_queue_tag_depth(q) ((q)->queue_tags->busy) | ||
| 810 | #define blk_queue_tag_queue(q) ((q)->queue_tags->busy < (q)->queue_tags->max_depth) | ||
| 811 | #define blk_rq_tagged(rq) ((rq)->cmd_flags & REQ_QUEUED) | 820 | #define blk_rq_tagged(rq) ((rq)->cmd_flags & REQ_QUEUED) |
| 812 | extern int blk_queue_start_tag(struct request_queue *, struct request *); | 821 | extern int blk_queue_start_tag(struct request_queue *, struct request *); |
| 813 | extern struct request *blk_queue_find_tag(struct request_queue *, int); | 822 | extern struct request *blk_queue_find_tag(struct request_queue *, int); |
| @@ -832,11 +841,11 @@ extern int blkdev_issue_flush(struct block_device *, sector_t *); | |||
| 832 | /* | 841 | /* |
| 833 | * command filter functions | 842 | * command filter functions |
| 834 | */ | 843 | */ |
| 835 | extern int blk_verify_command(struct file *file, unsigned char *cmd); | 844 | extern int blk_verify_command(struct blk_cmd_filter *filter, |
| 836 | extern int blk_cmd_filter_verify_command(struct blk_scsi_cmd_filter *filter, | 845 | unsigned char *cmd, int has_write_perm); |
| 837 | unsigned char *cmd, mode_t *f_mode); | ||
| 838 | extern int blk_register_filter(struct gendisk *disk); | 846 | extern int blk_register_filter(struct gendisk *disk); |
| 839 | extern void blk_unregister_filter(struct gendisk *disk); | 847 | extern void blk_unregister_filter(struct gendisk *disk); |
| 848 | extern void blk_set_cmd_filter_defaults(struct blk_cmd_filter *filter); | ||
| 840 | 849 | ||
| 841 | #define MAX_PHYS_SEGMENTS 128 | 850 | #define MAX_PHYS_SEGMENTS 128 |
| 842 | #define MAX_HW_SEGMENTS 128 | 851 | #define MAX_HW_SEGMENTS 128 |
