Commit Graph

1666 Commits

Author SHA1 Message Date
Bart Van Assche cf536e76b3 Spelling fix: choosen -> chosen
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5953 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-12-22 13:08:34 +00:00
Bart Van Assche 40142b6879 Spelling fix: shrinked -> shrunk
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5952 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-12-22 12:36:47 +00:00
Bart Van Assche 5154cbcf5a Source code comment spelling fix: loosing -> losing
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5949 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-12-22 12:33:37 +00:00
Bart Van Assche a1ffc737c0 Source code comment spelling fix: hander -> handler
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5948 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-12-22 12:33:06 +00:00
Vladislav Bolkhovitin 44170b30dc scst_vdisk: Remove superfluous llseek() calls
vfs_read() and vfs_write() ignore the file offset set by llseek().
Hence remove the llseek() calls that occur just before vfs_read() and
vfs_write(). See also the implementation in the Linux kernel of the
pread64() and pwrite64() system calls for examples of code that uses
vfs_read() and vfs_write().

Signed-off-by: Bart Van Assche <bvanassche@acm.org>



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5942 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-12-20 03:49:23 +00:00
Vladislav Bolkhovitin 81ad848f2b scst_vdisk: Only accept NAA IDs allowed by SPC
See also paragraph 7.8.6.6 NAA designator format in SPC-4.

Signed-off-by: Bart Van Assche <bvanassche@acm.org>



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5941 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-12-20 03:48:07 +00:00
Vladislav Bolkhovitin 94d1c2fc6c Replace in cases, where sporadic failures are possible, HARDWARE ERROR
by INTERNAL TARGET FAILURE, which is retriable (some OS'es don't retry
HARDWARE ERROR)

Reported and suggested by Shahar Salzman <shahar.salzman@kaminario.com>



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5940 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-12-19 03:55:14 +00:00
Bart Van Assche 331b72be46 scst_vdisk: Follow-up for r5932
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5934 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-12-11 12:31:03 +00:00
Vladislav Bolkhovitin 878a3be328 vdisk_blockio: Report invalid scatterlists
It is possible for a target driver to pass a scatterlist via
scst_cmd_set_tgt_sg() that is valid for the vdisk_fileio handler
but not for the vdisk_blockio handler. Complain loudly if an invalid
scatterlist is passed to vdisk_blockio because such scatterlists
cause silent data corruption with most Linux block drivers.

Signed-off-by: Bart Van Assche <bvanassche@acm.org>



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5933 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-12-11 04:38:04 +00:00
Vladislav Bolkhovitin bba96aca8c scst_vdisk: Increase virtual device name length
This change makes integration with OpenStack easier since OpenStack GUIDs
are 36 characters long: 32 hex characters and four dashes.

Signed-off-by: Bart Van Assche <bvanassche@acm.org>



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5932 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-12-11 04:34:36 +00:00
Vladislav Bolkhovitin 245b8b0e2b Oops, fix for the previous commit
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5914 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-12-04 23:43:51 +00:00
Vladislav Bolkhovitin 3dec4655b2 FORMAT commands should be strictly serialized
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5913 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-12-04 23:41:52 +00:00
Bart Van Assche 2c18cd82ed scst: Add scripts/rebuild-rhel-kernel-rpm to the SCST release archive
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5895 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-11-28 09:16:37 +00:00
Bart Van Assche 1657c7db3b scst.h: Add uintptr_t
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5891 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-11-27 15:18:58 +00:00
Vladislav Bolkhovitin a42056e75a Cleanup
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5890 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-11-27 04:36:33 +00:00
Bart Van Assche 548ea345b5 Build fixes for RHEL 6.6 kernel 2.6.32-504
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5886 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-11-26 13:38:52 +00:00
Bart Van Assche 9707f85c0b Fix kernel 3.17 checkpatch warnings about 'long long unsigned'
Avoid that checkpatch reports the following warning:

WARNING: type 'long long unsigned' should be specified in 'unsigned long long' order.


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5885 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-11-26 08:16:44 +00:00
Bart Van Assche 2fb7c084d7 Add kernel 3.17 build infrastructure
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5883 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-11-26 08:05:09 +00:00
Vladislav Bolkhovitin e13aa6622d Update for kernels 3.17.x
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5882 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-11-26 07:02:17 +00:00
Vladislav Bolkhovitin e03561da68 Ease severity of reporting unsupported REPORT LUNS SELECT REPORT value
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5855 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-11-15 01:44:06 +00:00
Vladislav Bolkhovitin 827e5b1461 scst, iscsi-scst: Add thread_pid attribute
For SCST devices with a short name determining which SCST command
threads serve a given LUN requires an (expensive) walk of the
process table. For SCST devices with a long name it is not possible
to determine unambiguously which command threads serve a given
LUN. Hence add a thread_pid sysfs attribute that makes it easy to
figure out which command threads serve a LUN.

Signed-off-by: Bart Van Assche <bvanassche@acm.org>



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5851 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-10-17 02:35:01 +00:00
Vladislav Bolkhovitin a17fde27f9 scst/README: Document the lun<X> sysfs attributes
The sessions/<sess>/lun<X> sysfs attribute "active_commands" is not
yet documented. Hence add documentation for that sysfs attribute.

Signed-off-by: Bart Van Assche <bvanassche@acm.org>



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5850 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-10-17 02:32:28 +00:00
Vladislav Bolkhovitin 6ae28a0494 scst_vdisk, MODE SELECT(10): Interpret both bytes of the BLOCK DESCRIPTOR LENGTH field
While the BLOCK DESCRIPTOR LENGTH field spans a single byte in the
Mode parameter header(6), the size of this field in the Mode parameter
header(10) is two bytes. Interpret both bytes while executing a MODE
SELECT(10) command.

Signed-off-by: Bart Van Assche <bvanassche@acm.org>



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5849 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-10-17 02:30:12 +00:00
Vladislav Bolkhovitin 07e56dc160 scst_vdisk: Reduce number of casts
Since 'address' points at kernel space memory, change its type
from uint8_t __user * into uint8_t *. This change reduces the
number of casts between uint8_t __user * to uint8_t * in
fileio_exec_write().

This patch does not change any functionality.

Signed-off-by: Bart Van Assche <bvanassche@acm.org>



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5848 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-10-17 02:24:07 +00:00
Vladislav Bolkhovitin f2fd09d3b2 scst_vdisk: Remove a superfluous cast
The 'iov_base' member of 'struct iovec' is declared in
<uapi/linux/uio.h> with type 'void __user *'. Adding an integer
to a void pointer has the same effect as adding an integer to
a char pointer in the C language. This means that it is safe to
remove the cast in front of the eiv->iov_base pointer.

Please note that a similar construct already exists in the iSCSI
target driver. From the nthread.c source file:

			iop->iov_base += rest;
			iop->iov_len -= rest;

This patch does not change any functionality.

Signed-off-by: Bart Van Assche <bvanassche@acm.org>



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5847 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-10-17 02:22:23 +00:00
Bart Van Assche e706313fc6 scst_mem: Fix a memory leak triggered by the scst_user driver
Avoid that the following memory leak can occur:
- sgv_pool_alloc() is called with SGV_POOL_RETURN_OBJ_ON_ALLOC_FAIL
  set, with neither SGV_POOL_NO_ALLOC_ON_CACHE_MISS nor
  SGV_POOL_ALLOC_NO_CACHED set and with 'size' such that
  sgv_max_local_pages < pages_to_alloc <= pool->max_cached_pages.
- sgv_get_obj() and sgv_alloc_arrays() succeed.
- sgv_alloc_sg_entries() fails.
- sgv_get_obj() returns the SGV object with no buffers.
- A call to sgv_pool_free() adds this object to the recycle list.
- sgv_pool_alloc() is called a second time with the same parameters.
- sgv_get_obj() retrieves the object that was previously added to
  the recycle list.
- sgv_alloc_arrays() is called and overwrites the obj->sg_entries
  pointer although it still points at allocated memory, resulting
  in a memory leak.

Reported-by: Shahar Salzman <shahar.salzman@kaminario.com>


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5829 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-10-03 12:26:14 +00:00
Bart Van Assche c132ee1721 vdisk_blockio: Make large COMPARE AND WRITE requests work for stacked block devices
Stacked block devices impose weird restrictions on S/G-lists. Hence
make the COMPARE AND WRITE implementation independent of these
restrictions.
    
Additionally, reduce the MAXIMUM COMPARE AND WRITE LENGTH limit from
0xff (no limit) to 0xfe to reduce the maximum amount of memory allocated
during a COMPARE AND WRITE. Also serialize COMPARE AND WRITE
operations, fix the offset reported for miscompares and fix the start
offset of the region that is synchronized if the FUA bit has been set.
    
Reported-by: Vishal Tripathi <vishal.tripathi@calsoftinc.com>


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5811 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-09-17 10:56:40 +00:00
Bart Van Assche 392a14a7aa scst_vdisk: Insert a blank line
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5810 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-09-17 10:54:25 +00:00
Bart Van Assche 0224d1b9c6 scst/src/Makefile: Make "make install" without prior "make" work
Avoid that MOD_VERS and MODS_VERS evaluate to an empty string.
    
Reported-by: Yan Burman <yanb@mellanox.com>


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5808 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-09-16 11:06:00 +00:00
Bart Van Assche c9c1c5598c scst_vdisk: Use parentheses around && inside ||
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5764 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-09-03 14:24:52 +00:00
Bart Van Assche 63810a1abb scst.h: Fix definition of __aligned()
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5762 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-09-03 14:00:14 +00:00
Bart Van Assche 3d7ecc4fe3 scst.h: RHEL 5.10 build fix
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5760 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-09-03 13:52:16 +00:00
Bart Van Assche 2cd5fb04fd scst.h: RHEL 5.10 build fix
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5758 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-09-03 13:43:23 +00:00
Bart Van Assche 9249ca5414 scst_vdisk: Follow-up for r5754
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5755 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-09-03 11:00:55 +00:00
Bart Van Assche d22823e037 scst_vdisk: RHEL 6.0 build fix
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5754 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-09-03 10:58:03 +00:00
Bart Van Assche 811ff0f5a9 scst: Refine r5751, the hex_to_bin() build fix for RHEL >= 6.1
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5753 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-09-03 10:50:52 +00:00
Bart Van Assche ad45c75be5 scst.h: Make vzalloc() available on RHEL 6.0
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5752 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-09-03 10:47:16 +00:00
Bart Van Assche a0cc1707a1 scst: Build fix for hex_to_bin() for RHEL 6.1 and later
Reported-by: Yan Burman <yanb@mellanox.com>


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5751 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-09-03 10:23:51 +00:00
Vladislav Bolkhovitin 4aa8ab7be0 scst_lib: Fix READ POSITION parsing
For code 08h (EXTENDED FORM) minimal response length is 32, see table
"READ POSITION data format, extended form". In SSC-[2,3] table "READ
POSITION service action codes" requests minimum response lenght 28
bytes, but it is an apparent typo, because the actual data format is 32
bytes long. In SSC-4 it is fixed.

Signed-off-by: Bart Van Assche <bvanassche@acm.org>



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5740 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-08-28 01:26:11 +00:00
Bart Van Assche 1a52f22256 scst_vdisk: Build fix for kernel 3.1.x
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5737 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-08-27 06:33:02 +00:00
Vladislav Bolkhovitin 5f14ef7a10 scst/include/scst.h: Document on_abort_cmd() further
Signed-off-by: Bart Van Assche <bvanassche@acm.org>



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5736 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-08-27 03:00:44 +00:00
Vladislav Bolkhovitin 760b71423a scst: Remove set_cpus_allowed() invocations
Since scst.h contains a backport of the definition of set_cpus_allowed_ptr(),
the set_cpus_allowed() invocations are superfluous. Hence remove these.

Signed-off-by: Bart Van Assche <bvanassche@acm.org>



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5734 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-08-27 02:43:50 +00:00
Vladislav Bolkhovitin 0cb3147ba6 scst_pres: Make a few error messages more clear
Make it possible to figure out what went wrong from inspecting the
system log only by mentioning the incorrect filename in the system
log.

Signed-off-by: Bart Van Assche <bvanassche@acm.org>



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5733 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-08-27 02:42:35 +00:00
Vladislav Bolkhovitin dcd1f6b3cd scst_vdisk: Make EUI-64 and NAA IDs configurable
Make the SCSI device identification page (83h) EUI-64 and NAA
IDs configurable. If neither the eui64_id nor the naa_id sysfs
attribute has been set, export the first eight bytes of the
t10_dev_id as an EUI-64 ID. If the NAA ID but not the EUI-64 ID
has been set, report the NAA ID only. If both IDs have been set,
report both.

Signed-off-by: Bart Van Assche <bvanassche@acm.org>



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5730 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-08-26 03:44:23 +00:00
Vladislav Bolkhovitin c6e5553797 scst_vdisk: Make vdisk_sup_vpd() easier to extend
This patch doesn't change any functionality.

Signed-off-by: Bart Van Assche <bvanassche@acm.org>



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5729 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-08-26 03:21:07 +00:00
Bart Van Assche a2b88e7894 Fix a kernel 3.16 checkpatch complaint about trailing semicolons
Avoid that the checkpatch tool included in Linux kernel v3.16 reports the
following warning:

    macros should not use a trailing semicolon

This patch does not change any functionality.


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5724 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-08-22 07:19:55 +00:00
Bart Van Assche 12430f9b46 nightly build: Add kernel 3.16 nightly build infrastructure
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5719 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-08-20 06:55:04 +00:00
Vladislav Bolkhovitin 4d937c42ee Update for kernels 3.16
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5717 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-08-19 21:52:31 +00:00
Vladislav Bolkhovitin b63cc69b28 Fix blockio bioset for older kernels, which need explicit bio destructors
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5716 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-08-15 23:44:33 +00:00
Bart Van Assche 3ac099ecaa Rename the two RHEL 7 scst_exec_req_fifo patches
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5711 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-08-07 08:12:22 +00:00