History

[PATCH] switch scsi_cmd_ioctl() to passing fmode_t

Al Viro committed 19 years ago

Commit 74f3c8a1 parent e915e8710 files · +20 −18Browse files

Unified · Split

10 files
  1. block/bsg.c +1 −1
  2. block/scsi_ioctl.c +5 −5
  3. drivers/block/cciss.c +2 −1
  4. drivers/block/ub.c +1 −1
  5. drivers/block/virtio_blk.c +2 −2
  6. drivers/cdrom/cdrom.c +1 −1
  7. drivers/ide/ide-floppy_ioctl.c +2 −2
  8. drivers/scsi/sd.c +2 −1
  9. drivers/scsi/st.c +2 −2
  10. include/linux/blkdev.h +2 −2
block/bsg.c+1−1
@@ -914,7 +914,7 @@ static long bsg_ioctl(struct file *file, unsigned int cmd, unsigned long arg) · 913 unmodified lines
914 case SG_EMULATED_HOST:914 case SG_EMULATED_HOST:
915 case SCSI_IOCTL_SEND_COMMAND: {915 case SCSI_IOCTL_SEND_COMMAND: {
916 void __user *uarg = (void __user *) arg;916 void __user *uarg = (void __user *) arg;
917 return scsi_cmd_ioctl(file, bd->queue, NULL, cmd, uarg);917 return scsi_cmd_ioctl(bd->queue, NULL, file->f_mode, cmd, uarg);
918 }918 }
919 case SG_IO: {919 case SG_IO: {
920 struct request *rq;920 struct request *rq;
block/scsi_ioctl.c+5−5
@@ -517,8 +517,8 @@ static inline int blk_send_start_stop(struct request_queue *q, · 516 unmodified lines
517 return __blk_send_generic(q, bd_disk, GPCMD_START_STOP_UNIT, data);517 return __blk_send_generic(q, bd_disk, GPCMD_START_STOP_UNIT, data);
518}518}
519 519
520int scsi_cmd_ioctl(struct file *file, struct request_queue *q,520int scsi_cmd_ioctl(struct request_queue *q, struct gendisk *bd_disk, fmode_t mode,
521 struct gendisk *bd_disk, unsigned int cmd, void __user *arg)521 unsigned int cmd, void __user *arg)
522{522{
523 int err;523 int err;
524 524
@@ -559,7 +559,7 @@ int scsi_cmd_ioctl(struct file *file, struct request_queue *q, · 34 unmodified lines
559 err = -EFAULT;559 err = -EFAULT;
560 if (copy_from_user(&hdr, arg, sizeof(hdr)))560 if (copy_from_user(&hdr, arg, sizeof(hdr)))
561 break;561 break;
562 err = sg_io(q, bd_disk, &hdr, file ? file->f_mode : 0);562 err = sg_io(q, bd_disk, &hdr, mode);
563 if (err == -EFAULT)563 if (err == -EFAULT)
564 break;564 break;
565 565
@@ -607,7 +607,7 @@ int scsi_cmd_ioctl(struct file *file, struct request_queue *q, · 41 unmodified lines
607 hdr.cmdp = ((struct cdrom_generic_command __user*) arg)->cmd;607 hdr.cmdp = ((struct cdrom_generic_command __user*) arg)->cmd;
608 hdr.cmd_len = sizeof(cgc.cmd);608 hdr.cmd_len = sizeof(cgc.cmd);
609 609
610 err = sg_io(q, bd_disk, &hdr, file ? file->f_mode : 0);610 err = sg_io(q, bd_disk, &hdr, mode);
611 if (err == -EFAULT)611 if (err == -EFAULT)
612 break;612 break;
613 613
@@ -631,7 +631,7 @@ int scsi_cmd_ioctl(struct file *file, struct request_queue *q, · 17 unmodified lines
631 if (!arg)631 if (!arg)
632 break;632 break;
633 633
634 err = sg_scsi_ioctl(q, bd_disk, file ? file->f_mode : 0, arg);634 err = sg_scsi_ioctl(q, bd_disk, mode, arg);
635 break;635 break;
636 case CDROMCLOSETRAY:636 case CDROMCLOSETRAY:
637 err = blk_send_start_stop(q, bd_disk, 0x03);637 err = blk_send_start_stop(q, bd_disk, 0x03);
drivers/block/cciss.c+2−1
@@ -1232,7 +1232,8 @@ static int cciss_ioctl(struct inode *inode, struct file *filep, · 1231 unmodified lines
1232 case SG_EMULATED_HOST:1232 case SG_EMULATED_HOST:
1233 case SG_IO:1233 case SG_IO:
1234 case SCSI_IOCTL_SEND_COMMAND:1234 case SCSI_IOCTL_SEND_COMMAND:
1235 return scsi_cmd_ioctl(filep, disk->queue, disk, cmd, argp);1235 return scsi_cmd_ioctl(disk->queue, disk,
1236 filep ? filep->f_mode : 0, cmd, argp);
1236 1237
1237 /* scsi_cmd_ioctl would normally handle these, below, but */1238 /* scsi_cmd_ioctl would normally handle these, below, but */
1238 /* they aren't a good fit for cciss, as CD-ROMs are */1239 /* they aren't a good fit for cciss, as CD-ROMs are */
drivers/block/ub.c+1−1
@@ -1729,7 +1729,7 @@ static int ub_bd_ioctl(struct inode *inode, struct file *filp, · 1728 unmodified lines
1729 struct gendisk *disk = inode->i_bdev->bd_disk;1729 struct gendisk *disk = inode->i_bdev->bd_disk;
1730 void __user *usermem = (void __user *) arg;1730 void __user *usermem = (void __user *) arg;
1731 1731
1732 return scsi_cmd_ioctl(filp, disk->queue, disk, cmd, usermem);1732 return scsi_cmd_ioctl(disk->queue, disk, filp ? filp->f_mode : 0, cmd, usermem);
1733}1733}
1734 1734
1735/*1735/*
drivers/block/virtio_blk.c+2−2
@@ -149,8 +149,8 @@ static void do_virtblk_request(struct request_queue *q) · 148 unmodified lines
149static int virtblk_ioctl(struct inode *inode, struct file *filp,149static int virtblk_ioctl(struct inode *inode, struct file *filp,
150 unsigned cmd, unsigned long data)150 unsigned cmd, unsigned long data)
151{151{
152 return scsi_cmd_ioctl(filp, inode->i_bdev->bd_disk->queue,152 return scsi_cmd_ioctl(inode->i_bdev->bd_disk->queue,
153 inode->i_bdev->bd_disk, cmd,153 inode->i_bdev->bd_disk, filp->f_mode, cmd,
154 (void __user *)data);154 (void __user *)data);
155}155}
156 156
drivers/cdrom/cdrom.c+1−1
@@ -2672,7 +2672,7 @@ int cdrom_ioctl(struct file * file, struct cdrom_device_info *cdi, · 2671 unmodified lines
2672 /*2672 /*
2673 * Try the generic SCSI command ioctl's first.2673 * Try the generic SCSI command ioctl's first.
2674 */2674 */
2675 ret = scsi_cmd_ioctl(file, disk->queue, disk, cmd, argp);2675 ret = scsi_cmd_ioctl(disk->queue, disk, file ? file->f_mode : 0, cmd, argp);
2676 if (ret != -ENOTTY)2676 if (ret != -ENOTTY)
2677 return ret;2677 return ret;
2678 2678
drivers/ide/ide-floppy_ioctl.c+2−2
@@ -280,8 +280,8 @@ int ide_floppy_ioctl(ide_drive_t *drive, struct inode *inode, · 279 unmodified lines
280 * and CDROM_SEND_PACKET (legacy) ioctls280 * and CDROM_SEND_PACKET (legacy) ioctls
281 */281 */
282 if (cmd != CDROM_SEND_PACKET && cmd != SCSI_IOCTL_SEND_COMMAND)282 if (cmd != CDROM_SEND_PACKET && cmd != SCSI_IOCTL_SEND_COMMAND)
283 err = scsi_cmd_ioctl(file, bdev->bd_disk->queue,283 err = scsi_cmd_ioctl(bdev->bd_disk->queue, bdev->bd_disk,
284 bdev->bd_disk, cmd, argp);284 file ? file->f_mode : 0, cmd, argp);
285 285
286 if (err == -ENOTTY)286 if (err == -ENOTTY)
287 err = generic_ide_ioctl(drive, file, bdev, cmd, arg);287 err = generic_ide_ioctl(drive, file, bdev, cmd, arg);
drivers/scsi/sd.c+2−1
@@ -775,7 +775,8 @@ static int sd_ioctl(struct inode * inode, struct file * filp, · 774 unmodified lines
775 case SCSI_IOCTL_GET_BUS_NUMBER:775 case SCSI_IOCTL_GET_BUS_NUMBER:
776 return scsi_ioctl(sdp, cmd, p);776 return scsi_ioctl(sdp, cmd, p);
777 default:777 default:
778 error = scsi_cmd_ioctl(filp, disk->queue, disk, cmd, p);778 error = scsi_cmd_ioctl(disk->queue, disk,
779 filp ? filp->f_mode : 0, cmd, p);
779 if (error != -ENOTTY)780 if (error != -ENOTTY)
780 return error;781 return error;
781 }782 }
drivers/scsi/st.c+2−2
@@ -3567,8 +3567,8 @@ static long st_ioctl(struct file *file, unsigned int cmd_in, unsigned long arg) · 3566 unmodified lines
3567 !capable(CAP_SYS_RAWIO))3567 !capable(CAP_SYS_RAWIO))
3568 i = -EPERM;3568 i = -EPERM;
3569 else3569 else
3570 i = scsi_cmd_ioctl(file, STp->disk->queue,3570 i = scsi_cmd_ioctl(STp->disk->queue, STp->disk,
3571 STp->disk, cmd_in, p);3571 file->f_mode, cmd_in, p);
3572 if (i != -ENOTTY)3572 if (i != -ENOTTY)
3573 return i;3573 return i;
3574 break;3574 break;
include/linux/blkdev.h+2−2
@@ -717,8 +717,8 @@ extern void blk_plug_device(struct request_queue *); · 716 unmodified lines
717extern void blk_plug_device_unlocked(struct request_queue *);717extern void blk_plug_device_unlocked(struct request_queue *);
718extern int blk_remove_plug(struct request_queue *);718extern int blk_remove_plug(struct request_queue *);
719extern void blk_recount_segments(struct request_queue *, struct bio *);719extern void blk_recount_segments(struct request_queue *, struct bio *);
720extern int scsi_cmd_ioctl(struct file *, struct request_queue *,720extern int scsi_cmd_ioctl(struct request_queue *, struct gendisk *, fmode_t,
721 struct gendisk *, unsigned int, void __user *);721 unsigned int, void __user *);
722extern int sg_scsi_ioctl(struct request_queue *, struct gendisk *, fmode_t,722extern int sg_scsi_ioctl(struct request_queue *, struct gendisk *, fmode_t,
723 struct scsi_ioctl_command __user *);723 struct scsi_ioctl_command __user *);
724 724