Loading drivers/scsi/scsi_ioctl.c +2 −2 Original line number Diff line number Diff line Loading @@ -277,14 +277,14 @@ EXPORT_SYMBOL(scsi_ioctl); * @filp: either NULL or a &struct file which must have the O_NONBLOCK flag. */ int scsi_nonblockable_ioctl(struct scsi_device *sdev, int cmd, void __user *arg, struct file *filp) void __user *arg, int ndelay) { int val, result; /* The first set of iocts may be executed even if we're doing * error processing, as long as the device was opened * non-blocking */ if (filp && (filp->f_flags & O_NONBLOCK)) { if (ndelay) { if (scsi_host_in_recovery(sdev->host)) return -ENODEV; } else if (!scsi_block_when_processing_errors(sdev)) Loading drivers/scsi/sd.c +2 −1 Original line number Diff line number Diff line Loading @@ -761,7 +761,8 @@ static int sd_ioctl(struct inode * inode, struct file * filp, * may try and take the device offline, in which case all further * access to the device is prohibited. */ error = scsi_nonblockable_ioctl(sdp, cmd, p, filp); error = scsi_nonblockable_ioctl(sdp, cmd, p, filp ? filp->f_flags & O_NDELAY : 0); if (!scsi_block_when_processing_errors(sdp) || !error) return error; Loading drivers/scsi/sr.c +2 −1 Original line number Diff line number Diff line Loading @@ -524,7 +524,8 @@ static int sr_block_ioctl(struct inode *inode, struct file *file, unsigned cmd, * case fall through to scsi_ioctl, which will return ENDOEV again * if it doesn't recognise the ioctl */ ret = scsi_nonblockable_ioctl(sdev, cmd, argp, NULL); ret = scsi_nonblockable_ioctl(sdev, cmd, argp, file ? file->f_flags & O_NDELAY : 0); if (ret != -ENODEV) return ret; return scsi_ioctl(sdev, cmd, argp); Loading drivers/scsi/st.c +2 −1 Original line number Diff line number Diff line Loading @@ -3263,7 +3263,8 @@ static long st_ioctl(struct file *file, unsigned int cmd_in, unsigned long arg) * may try and take the device offline, in which case all further * access to the device is prohibited. */ retval = scsi_nonblockable_ioctl(STp->device, cmd_in, p, file); retval = scsi_nonblockable_ioctl(STp->device, cmd_in, p, file->f_flags & O_NDELAY); if (!scsi_block_when_processing_errors(STp->device) || retval != -ENODEV) goto out; retval = 0; Loading include/scsi/scsi_ioctl.h +1 −1 Original line number Diff line number Diff line Loading @@ -42,7 +42,7 @@ typedef struct scsi_fctargaddress { extern int scsi_ioctl(struct scsi_device *, int, void __user *); extern int scsi_nonblockable_ioctl(struct scsi_device *sdev, int cmd, void __user *arg, struct file *filp); void __user *arg, int ndelay); #endif /* __KERNEL__ */ #endif /* _SCSI_IOCTL_H */ Loading
drivers/scsi/scsi_ioctl.c +2 −2 Original line number Diff line number Diff line Loading @@ -277,14 +277,14 @@ EXPORT_SYMBOL(scsi_ioctl); * @filp: either NULL or a &struct file which must have the O_NONBLOCK flag. */ int scsi_nonblockable_ioctl(struct scsi_device *sdev, int cmd, void __user *arg, struct file *filp) void __user *arg, int ndelay) { int val, result; /* The first set of iocts may be executed even if we're doing * error processing, as long as the device was opened * non-blocking */ if (filp && (filp->f_flags & O_NONBLOCK)) { if (ndelay) { if (scsi_host_in_recovery(sdev->host)) return -ENODEV; } else if (!scsi_block_when_processing_errors(sdev)) Loading
drivers/scsi/sd.c +2 −1 Original line number Diff line number Diff line Loading @@ -761,7 +761,8 @@ static int sd_ioctl(struct inode * inode, struct file * filp, * may try and take the device offline, in which case all further * access to the device is prohibited. */ error = scsi_nonblockable_ioctl(sdp, cmd, p, filp); error = scsi_nonblockable_ioctl(sdp, cmd, p, filp ? filp->f_flags & O_NDELAY : 0); if (!scsi_block_when_processing_errors(sdp) || !error) return error; Loading
drivers/scsi/sr.c +2 −1 Original line number Diff line number Diff line Loading @@ -524,7 +524,8 @@ static int sr_block_ioctl(struct inode *inode, struct file *file, unsigned cmd, * case fall through to scsi_ioctl, which will return ENDOEV again * if it doesn't recognise the ioctl */ ret = scsi_nonblockable_ioctl(sdev, cmd, argp, NULL); ret = scsi_nonblockable_ioctl(sdev, cmd, argp, file ? file->f_flags & O_NDELAY : 0); if (ret != -ENODEV) return ret; return scsi_ioctl(sdev, cmd, argp); Loading
drivers/scsi/st.c +2 −1 Original line number Diff line number Diff line Loading @@ -3263,7 +3263,8 @@ static long st_ioctl(struct file *file, unsigned int cmd_in, unsigned long arg) * may try and take the device offline, in which case all further * access to the device is prohibited. */ retval = scsi_nonblockable_ioctl(STp->device, cmd_in, p, file); retval = scsi_nonblockable_ioctl(STp->device, cmd_in, p, file->f_flags & O_NDELAY); if (!scsi_block_when_processing_errors(STp->device) || retval != -ENODEV) goto out; retval = 0; Loading
include/scsi/scsi_ioctl.h +1 −1 Original line number Diff line number Diff line Loading @@ -42,7 +42,7 @@ typedef struct scsi_fctargaddress { extern int scsi_ioctl(struct scsi_device *, int, void __user *); extern int scsi_nonblockable_ioctl(struct scsi_device *sdev, int cmd, void __user *arg, struct file *filp); void __user *arg, int ndelay); #endif /* __KERNEL__ */ #endif /* _SCSI_IOCTL_H */