diff options
Diffstat (limited to 'include/linux/blkdev.h')
-rw-r--r-- | include/linux/blkdev.h | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h index e61f22be4d0e..d2d34e2774b2 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_scsi_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_scsi_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 */ |
@@ -833,11 +843,11 @@ extern int blkdev_issue_flush(struct block_device *, sector_t *); | |||
833 | /* | 843 | /* |
834 | * command filter functions | 844 | * command filter functions |
835 | */ | 845 | */ |
836 | extern int blk_verify_command(struct file *file, unsigned char *cmd); | 846 | extern int blk_verify_command(struct blk_scsi_cmd_filter *filter, |
837 | extern int blk_cmd_filter_verify_command(struct blk_scsi_cmd_filter *filter, | 847 | unsigned char *cmd, int has_write_perm); |
838 | unsigned char *cmd, mode_t *f_mode); | ||
839 | extern int blk_register_filter(struct gendisk *disk); | 848 | extern int blk_register_filter(struct gendisk *disk); |
840 | extern void blk_unregister_filter(struct gendisk *disk); | 849 | extern void blk_unregister_filter(struct gendisk *disk); |
850 | extern void blk_set_cmd_filter_defaults(struct blk_scsi_cmd_filter *filter); | ||
841 | 851 | ||
842 | #define MAX_PHYS_SEGMENTS 128 | 852 | #define MAX_PHYS_SEGMENTS 128 |
843 | #define MAX_HW_SEGMENTS 128 | 853 | #define MAX_HW_SEGMENTS 128 |