Re: SG_GET_ACCESS_COUNT ioctl problem

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

 



Mark Hounschell wrote:
>>Mark,
>>I think you can consider that ioctl deprecated in the
>>lk 2.6 series. The implementation of that ioctl in
>>lk 2.6.15 is not very encouraging:
>>
>>    case SG_GET_ACCESS_COUNT:
>>        /* faked - we don't have a real access count anymore */
>>        val = (sdp->device ? 1 : 0);
>>        return put_user(val, ip);
>>
>>which will yield 1 in almost all cases. In the lk 2.6 series
>>sysfs ** is meant to take over those sort of functions from
>>the sg driver. However struct scsi_device (one instance per
>>scsi device (normally a logical unit)) no longer seems to
>>maintain an access count.
>>
>>
>>I have written about the SG_IO ioctl and its various
>>implementations in the lk 2.6 series at:
>>http://www.torque.net/sg/sg_io.html
>>
>>However I haven't addressed the status of the lesser used
>>sg ioctls (e.g. SG_GET_ACCESS_COUNT) in the lk 2.6 series.
>>
>>
>>** ..._GET_ACCESS_COUNT is more of a job for procfs than
>>   sysfs.
>>
> 
> 
> So how can one safely open an sg device that happens to be a disk? I can
> find no combination of open flags that will cause an open to fail if the
> disk happens to be mounted? You imply this ioctl is a "lesser used"
> ioctl? What 'was' the prefered method of doing this? It's the only
> method I found short of writing code to xlate the sg device into an sd
> device and attempting an open of that first. That's not good???

Mark,
In the lk 2.6 series you can open a disk directly
(e.g. /dev/sda) and send it SCSI commands using the
SG_IO ioctl. The situation is the same if you open
the corresponding sg device and send SCSI commands.

What is important is which SCSI commands are sent. There
is some crude filtering based on file permissions and
the SCSI command opcode. Other than that, the onus is
on the person sending the SCSI commands. Mounted file
systems can be seen in /proc/mounts ** .

The sg driver is a pass through. The SG_GET_ACCESS_COUNT
ioctl was a window to a variable which someone else removed
around 18 months ago. There is little I can do other
than try to explain ...


** the root file system device appears as "/dev/root"
   in my /proc/mounts . "/dev/root" is a symlink to
   the real thing.

Doug Gilbert
-
: 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