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
914914 case SG_EMULATED_HOST:
915915 case SCSI_IOCTL_SEND_COMMAND: {
916916 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);
918918 }
919919 case SG_IO: {
920920 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
517517 return __blk_send_generic(q, bd_disk, GPCMD_START_STOP_UNIT, data);
518518 }
519519
520−int scsi_cmd_ioctl(struct file *file, struct request_queue *q,
521− struct gendisk *bd_disk, unsigned int cmd, void __user *arg)
520+int scsi_cmd_ioctl(struct request_queue *q, struct gendisk *bd_disk, fmode_t mode,
521+ unsigned int cmd, void __user *arg)
522522 {
523523 int err;
524524
@@ -559,7 +559,7 @@ int scsi_cmd_ioctl(struct file *file, struct request_queue *q, · 34 unmodified lines
559559 err = -EFAULT;
560560 if (copy_from_user(&hdr, arg, sizeof(hdr)))
561561 break;
562− err = sg_io(q, bd_disk, &hdr, file ? file->f_mode : 0);
562+ err = sg_io(q, bd_disk, &hdr, mode);
563563 if (err == -EFAULT)
564564 break;
565565
@@ -607,7 +607,7 @@ int scsi_cmd_ioctl(struct file *file, struct request_queue *q, · 41 unmodified lines
607607 hdr.cmdp = ((struct cdrom_generic_command __user*) arg)->cmd;
608608 hdr.cmd_len = sizeof(cgc.cmd);
609609
610− err = sg_io(q, bd_disk, &hdr, file ? file->f_mode : 0);
610+ err = sg_io(q, bd_disk, &hdr, mode);
611611 if (err == -EFAULT)
612612 break;
613613
@@ -631,7 +631,7 @@ int scsi_cmd_ioctl(struct file *file, struct request_queue *q, · 17 unmodified lines
631631 if (!arg)
632632 break;
633633
634− err = sg_scsi_ioctl(q, bd_disk, file ? file->f_mode : 0, arg);
634+ err = sg_scsi_ioctl(q, bd_disk, mode, arg);
635635 break;
636636 case CDROMCLOSETRAY:
637637 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
12321232 case SG_EMULATED_HOST:
12331233 case SG_IO:
12341234 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);
12361237
12371238 /* scsi_cmd_ioctl would normally handle these, below, but */
12381239 /* 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
17291729 struct gendisk *disk = inode->i_bdev->bd_disk;
17301730 void __user *usermem = (void __user *) arg;
17311731
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);
17331733 }
17341734
17351735 /*
drivers/block/virtio_blk.c+2−2
@@ -149,8 +149,8 @@ static void do_virtblk_request(struct request_queue *q) · 148 unmodified lines
149149 static int virtblk_ioctl(struct inode *inode, struct file *filp,
150150 unsigned cmd, unsigned long data)
151151 {
152− return scsi_cmd_ioctl(filp, inode->i_bdev->bd_disk->queue,
153− inode->i_bdev->bd_disk, cmd,
152+ return scsi_cmd_ioctl(inode->i_bdev->bd_disk->queue,
153+ inode->i_bdev->bd_disk, filp->f_mode, cmd,
154154 (void __user *)data);
155155 }
156156
drivers/cdrom/cdrom.c+1−1
@@ -2672,7 +2672,7 @@ int cdrom_ioctl(struct file * file, struct cdrom_device_info *cdi, · 2671 unmodified lines
26722672 /*
26732673 * Try the generic SCSI command ioctl's first.
26742674 */
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);
26762676 if (ret != -ENOTTY)
26772677 return ret;
26782678
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
280280 * and CDROM_SEND_PACKET (legacy) ioctls
281281 */
282282 if (cmd != CDROM_SEND_PACKET && cmd != SCSI_IOCTL_SEND_COMMAND)
283− err = scsi_cmd_ioctl(file, bdev->bd_disk->queue,
284− bdev->bd_disk, cmd, argp);
283+ err = scsi_cmd_ioctl(bdev->bd_disk->queue, bdev->bd_disk,
284+ file ? file->f_mode : 0, cmd, argp);
285285
286286 if (err == -ENOTTY)
287287 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
775775 case SCSI_IOCTL_GET_BUS_NUMBER:
776776 return scsi_ioctl(sdp, cmd, p);
777777 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);
779780 if (error != -ENOTTY)
780781 return error;
781782 }
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
35673567 !capable(CAP_SYS_RAWIO))
35683568 i = -EPERM;
35693569 else
3570− i = scsi_cmd_ioctl(file, STp->disk->queue,
3571− STp->disk, cmd_in, p);
3570+ i = scsi_cmd_ioctl(STp->disk->queue, STp->disk,
3571+ file->f_mode, cmd_in, p);
35723572 if (i != -ENOTTY)
35733573 return i;
35743574 break;
include/linux/blkdev.h+2−2
@@ -717,8 +717,8 @@ extern void blk_plug_device(struct request_queue *); · 716 unmodified lines
717717 extern void blk_plug_device_unlocked(struct request_queue *);
718718 extern int blk_remove_plug(struct request_queue *);
719719 extern void blk_recount_segments(struct request_queue *, struct bio *);
720−extern int scsi_cmd_ioctl(struct file *, struct request_queue *,
721− struct gendisk *, unsigned int, void __user *);
720+extern int scsi_cmd_ioctl(struct request_queue *, struct gendisk *, fmode_t,
721+ unsigned int, void __user *);
722722 extern int sg_scsi_ioctl(struct request_queue *, struct gendisk *, fmode_t,
723723 struct scsi_ioctl_command __user *);
724724