@@ -517,8 +517,8 @@ static inline int blk_send_start_stop(struct request_queue *q,
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,
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,
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,
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 );
0 commit comments