Re: Concurrent SG_SCSI_RESET ioctls

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, Oct 10, 2014 at 11:32:26PM +0000, Elliott, Robert (Server Storage) wrote:
> Problem
> =======
> If you run sg_reset --device concurrently to multiple
> devices on the same host, then some of them will run
> into tmf_in_progress and have scsi_nonblockable_ioctl
> return -ENODEV.  This causes sd_ioctl to send the ioctl
> request to the LLD's ioctl function, where it gets
> rejected as unsupported with -ENOTTY.  sg_reset ends
> up displaying:
> 	sg_reset: SG_SCSI_RESET failed: Inappropriate ioctl for device
> 
> Any suggestions for how to fix this?  

The who cascading through the different ioctl handlers is a mess.  I
think we'll need to rework it entirely, and i'll try to come up with
something for it ASAP.

> Is the check of scsi_host_in_recovery, which includes
> tmf_in_progress, too strong?  Most LLDs are not parallel
> SCSI where you can just have one TMF on the bus at a
> time anymore.

I suspect we could relax this, but that's a different issue
from the incorrect error handling in the ioctl handler cascade.

> Is returning -ENODEV if the host is in recovery the
> wrong code?  There might be a device there...it's
> just that access is temporarily blocked.

It's an odd error return, but it's long established.  I don't think
we can still change it.

> Also, should scsi_nonblockable_ioctl return -ENOTTY rather
> than -ENODEV if cmd is unsupported?  There's not really
> a no-device problem.

It should - or even better we should kill off scsi_nonblockable_ioctl
entirely.  Stay tuned.

--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [SCSI Target Devel]     [Linux SCSI Target Infrastructure]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Linux IIO]     [Samba]     [Device Mapper]
  Powered by Linux