The attached patch prevents that a kernel oops is triggered if something
fails when adding a session to sysfs.
Signed-off-by: Bart Van Assche <bvanassche@acm.org>
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4388 d57e44dd-8a1f-0410-8b47-8ef2f437770f
Although I do not know of any initiator that asks for the extended
parameter data format when submitting a REPORT TARGET PORT GROUPS
command, I think it's a good idea to support that data format (i.e.
three most significant bits of the second CDB byte are 001 instead
of 000). The attached patch should implement that. Additionally,
cmd->op_name is set to something more descriptive than
"MAINTENANCE IN" in that patch.
Signed-off-by: Bart Van Assche <bvanassche@acm.org>
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4385 d57e44dd-8a1f-0410-8b47-8ef2f437770f
The value of the variable allocation_length is identical to the value of the
variable buf_len. Hence eliminate the former. Also, for MAINTENANCE(IN)
cdb_len is always equal to 12 so the test "cdb_len > 1" can be eliminated too.
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4382 d57e44dd-8a1f-0410-8b47-8ef2f437770f
Other changes:
- Bring the scst_scsi_op_table[] header in sync with <scsi/scsi.h>
- Fix parsing of the REPORT IDENTIFYING INFORMATION command: it has a four-byte
length field instead of a two-byte length field.
- Fix devkey for other MAINTENANCE IN commands.
Signed-off-by: Bart Van Assche <bvanassche@acm.org>
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4366 d57e44dd-8a1f-0410-8b47-8ef2f437770f
Cleanup and prepare the FIS index before issuing the ATA command (during prep:
mvs_task_prep_ata). This is to overcome the drive detection issue where the
SATA drives fail to get detected during hotplug since the ATA module (libATA)
detects errors set in the FIS even though the SATA analyzer shows that the
IDENTIFY command was successful.
This patch was provided by Praveen Murali <pmurali@logicube.com>.
Compared to the original patch, the changelog entry has been reformatted,
two spelling errors in comments has been fixed and fixed a checkpatch
complaint has been fixed too.
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4364 d57e44dd-8a1f-0410-8b47-8ef2f437770f
Since kernel 3.4 the two-argument form of kmap() is deprecated and
triggers a compiler warning. Hence invoke kmap() with a single argument
on kernel 3.4 and later.
Signed-off-by: Bart Van Assche <bvanassche@acm.org>
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4344 d57e44dd-8a1f-0410-8b47-8ef2f437770f
Synchronizing the file contents is sufficient - it is not necessary
to synchronize metadata like atime and mtime after having saved
persistent reservation information.
A more clear explanation of what "datasync" means can be found here
http://linux.die.net/man/2/fdatasync:
<quote>
fdatasync() is similar to fsync(), but does not flush modified metadata
unless that metadata is needed in order to allow a subsequent data
retrieval to be correctly handled. For example, changes to st_atime or
st_mtime (respectively, time of last access and time of last
modification; see stat(2)) do not require flushing because they are not
necessary for a subsequent data read to be handled correctly. On the
other hand, a change to the file size (st_size, as made by say
ftruncate(2)), would require a metadata flush.
The aim of fdatasync() is to reduce disk activity for applications that
do not require all metadata to be synchronized with the disk.
</quote>
Signed-off-by: Bart Van Assche <bvanassche@acm.org>
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4332 d57e44dd-8a1f-0410-8b47-8ef2f437770f