Commit Graph
1694 Commits
Author SHA1 Message Date
Vladislav Bolkhovitin 4ac6d7a26d [PATCH] scst: Drop detect() method
There is no need for a detect() method - code that is present in such
a method can be moved to module_init(). Hence declare this method
obsolete. Leave the detect pointer member in the target template for
now for out-of-tree SCST drivers.

Signed-off-by: Bart Van Assche <bart.vanassche@sandisk.com>

with some improvements



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6113 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2015-02-21 04:32:36 +00:00
Bart Van Assche 5019ae319e scst: Introduce file_inode()
Signed-off-by: Sebastian Herbszt <herbszt@gmx.de>
[bvanassche: Constified file_inode() argument / added iscsi-scst conversion]


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6084 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2015-02-12 07:48:10 +00:00
Bart Van Assche b05e8b60a7 scst_targ: Fix spelling in a source code comment
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6025 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2015-02-06 15:55:16 +00:00
Bart Van Assche c679c4c785 scst_vdisk: Fix spelling in a source code comment
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6024 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2015-02-06 15:53:35 +00:00
Bart Van Assche a4d1421b4a scst_vdisk: Fix spelling in a source code comment
Signed-off-by: Aayush Kasurde <aayush.kasurde@gmail.com>


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6023 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2015-02-06 15:51:58 +00:00
Vladislav Bolkhovitin 8732cf3036 scst_scsi_exec_async(): Fix a recently introduced memory leak
Signed-off-by: Bart Van Assche <bart.vanassche@sandisk.com>



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6016 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2015-01-31 04:41:09 +00:00
Vladislav Bolkhovitin 31c8f996df scst_vdisk: Fix zero-copy read for tmpfs
For some filesystems, e.g. tmpfs, address_space.readpage is NULL.
Disable zero-copy reading for such filesystems. See also shmem_aops
in mm/shmem.c. See also inode_init_always() and empty_aops in fs/inode.c.

This patch avoids that the following call trace is triggered:

BUG: unable to handle kernel NULL pointer dereference at (null)
Call Trace:
 [<ffffffffa0547d66>] prepare_read+0x106/0x1d0 [scst_vdisk]
 [<ffffffffa0547f20>] fileio_alloc_data_buf+0xf0/0x330 [scst_vdisk]
 [<ffffffffa046fc9b>] scst_prepare_space+0x9b/0x6e0 [scst]
 [<ffffffffa047d4d5>] scst_process_active_cmd+0x545/0x840 [scst]
 [<ffffffffa047dad2>] scst_cmd_init_done+0x302/0x5d0 [scst]
 [<ffffffffa0563ab2>] scst_cmd_init_stage1_done.constprop.37+0x12/0x20 [iscsi_scst]
 [<ffffffffa056a9ea>] scsi_cmnd_start+0x25a/0x550 [iscsi_scst]
 [<ffffffffa056b4a8>] cmnd_rx_start+0x148/0x1a0 [iscsi_scst]
 [<ffffffffa056e4f8>] process_read_io+0x3b8/0x800 [iscsi_scst]
 [<ffffffffa056ea07>] scst_do_job_rd+0xc7/0x220 [iscsi_scst]
 [<ffffffffa056efed>] istrd+0x16d/0x2e0 [iscsi_scst]
 [<ffffffff81079efd>] kthread+0xed/0x110
 [<ffffffff817227fc>] ret_from_fork+0x7c/0xb0

Signed-off-by: Bart Van Assche <bart.vanassche@sandisk.com>



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5988 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2015-01-22 05:13:59 +00:00
Vladislav Bolkhovitin fdc6cdf1ed scst: Suppress a smatch warning in vdisk_unmap_range()
Avoid that the static source code analysis tool 'smatch' reports
the following warning:

vdisk_unmap_range() warn: should 'blocks << cmd->dev->block_shift' be a 64 bit type?

Signed-off-by: Bart Van Assche <bart.vanassche@sandisk.com>



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5987 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2015-01-22 05:10:42 +00:00
Vladislav Bolkhovitin a3d1d4f809 scst_vdisk: Micro-optimize vdisk_caching_pg
This patch does not change any behavior but micro-optimizes
vdisk_caching_pg(). Declaring the array caching_pg[] const reduces
11 bytes from the assembler code of this function.

Signed-off-by: Bart Van Assche <bart.vanassche@sandisk.com>



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5986 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2015-01-22 05:09:17 +00:00
Vladislav Bolkhovitin f5a3f799c3 [PATCH] scst_main: Suppress a checkpatch warning triggered by INIT_CACHEP{,_ALIGN}
Avoid that checkpatch v3.18 reports the following warning for these
two macros:

WARNING: Macros with flow control statements should be avoided

This patch does not change any functionality.

Signed-off-by: Bart Van Assche <bart.vanassche@sandisk.com>



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5985 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2015-01-22 05:06:45 +00:00
Bart Van Assche 3bb41e9eca scst.h: Fix a sparse warning for kernels 2.6.29..2.6.31
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5983 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2015-01-21 13:11:56 +00:00
Vladislav Bolkhovitin eb824e0038 Fix returning changeable values for caching mode page
Reported by Consus <consus@gmx.com>



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5982 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2015-01-21 04:20:53 +00:00
Vladislav Bolkhovitin 7a18672a83 Follow up for r5979
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5981 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2015-01-21 04:15:42 +00:00
Bart Van Assche 628f3939bc scst: Rework SCSI pass-through support for kernel versions >= 2.6.30
Changes in this patch:
- Rework the SCSI pass-through code such that for kernel versions
  >= 2.6.30 the scst_exec_req_fifo patch is no longer needed.
- Modify the pass-through code such that blk_rq_append_bio() is only
  called for kernel version 2.6.30. For later kernel versions
  blk_make_request() is called instead.
- Rework scst_scsi_exec_async().
- Add debug tracing of SCSI pass-through result status.
- Add a lockdep_assert_held() call in scsi_end_async().



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5979 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2015-01-20 15:04:23 +00:00
Vladislav Bolkhovitin cab2a22480 Revert r5963 as not needed
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5978 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2015-01-20 04:20:13 +00:00
Vladislav Bolkhovitin b7169c9163 Revert r5964 as not needed
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5977 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2015-01-20 04:18:07 +00:00
Vladislav Bolkhovitin 96295c735a Report during user devices unjam LUN NOT SUPPORTED sense
Reported-By: shahar.salzman <shahar.salzman@kaminario.com>



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5971 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2015-01-16 03:53:29 +00:00
Vladislav Bolkhovitin 9d6ed12e26 Follow up for r5968
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5970 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2015-01-16 03:16:26 +00:00
Vladislav Bolkhovitin 72abce14cd Fix READ BUFFER and WRITE BUFFER commands
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5969 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2015-01-16 01:21:10 +00:00
Bart Van Assche 670352ba89 scst_targ: Avoid triggering a kernel panic if dev_user_parse() returns SCST_CMD_STATE_STOP
Reported-by: Ilan Steinberg <ilan.steinberg@kaminario.com>


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5968 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2015-01-15 08:58:39 +00:00
Bart Van Assche b1966fb034 scst_targ: Use tabs instead of spaces for indentation (detected by checkpatch)
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5967 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2015-01-14 08:06:12 +00:00
Bart Van Assche efff5e2a20 scst_parse_unmap_descriptors(): Avoid using GFP_KERNEL in atomic context
Reported-by: Shahar Salzman <shahar.salzman@kaminario.com>
Signed-off-by: Bart Van Assche <bvanassche@acm.org>


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5964 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2015-01-13 08:51:08 +00:00
Bart Van Assche 87fb2237c0 scst: Switch to thread context before executing a reservation command
Persistent reservation commands need thread context because
scst_pr_is_cmd_allowed() locks the PR mutex. Reservation commands
either need BH or thread context. Hence switch from atomic to
thread context before processing such commands.

Reported-by: Shahar Salzman <shahar.salzman@kaminario.com>
Signed-off-by: Bart Van Assche <bvanassche@acm.org>


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5963 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2015-01-13 08:42:28 +00:00
Bart Van Assche b158254766 scst_sysfs: return EINVAL on too big LUN
Signed-off-by: Sebastian Herbszt <herbszt@gmx.de>


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5961 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2015-01-09 12:23:25 +00:00
Bart Van Assche aed1b2f332 scst_calc_block_shift: Log block shift and sector size upon mismatch
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5959 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2015-01-06 13:25:28 +00:00
Bart Van Assche fa29d4cd3d scst_lib: Convert spaces into tabs (reported by checkpatch)
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5958 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-12-29 12:14:52 +00:00
Bart Van Assche c46daa8368 Spelling fix: immediatelly -> immediately
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5956 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-12-22 13:15:55 +00:00
Bart Van Assche 9cd602de2f Update for kernel 3.18
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5955 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-12-22 13:10:41 +00:00
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