Commit Graph

110 Commits

Author SHA1 Message Date
Yan Burman
0d0d959485 Merged revisions 5246-5256,5260,5264,5266-5277,5281-5296,5300-5312,5315-5316,5320 via svnmerge from
svn+ssh://yanb123@svn.code.sf.net/p/scst/svn/trunk

........
  r5246 | vlnb | 2014-01-29 05:30:24 +0200 (Wed, 29 Jan 2014) | 3 lines
  
  Put CDB control byte parsing in one place
........
  r5247 | vlnb | 2014-01-29 06:16:58 +0200 (Wed, 29 Jan 2014) | 3 lines
  
  Better version of the previous patch
........
  r5248 | vlnb | 2014-01-30 03:40:48 +0200 (Thu, 30 Jan 2014) | 7 lines
  
  [PATCH 1/2] scst_sysfs: Make it easier to add new target sysfs attributes
  
  This patch does not change any functionality.
  
  Signed-off-by: Bart Van Assche <bvanassche@acm.org>
........
  r5249 | vlnb | 2014-01-30 03:41:54 +0200 (Thu, 30 Jan 2014) | 10 lines
  
  [PATCH 2/2] scst_sysfs: Add I/O statistics per target
  
  Although it is possible to obtain these statistics by iterating over
  all sessions and by computing the sum of the per-target statistics,
  make per-target statistics directly available such that these can be
  retrieved easily.
  
  Signed-off-by: Bart Van Assche <bvanassche@acm.org>
........
  r5250 | vlnb | 2014-01-30 04:32:44 +0200 (Thu, 30 Jan 2014) | 3 lines
  
  Update for 3.13 kernels
........
  r5251 | bvassche | 2014-01-30 11:16:27 +0200 (Thu, 30 Jan 2014) | 1 line
  
  nightly build: Add kernel 3.13 build infrastructure
........
  r5252 | bvassche | 2014-01-30 11:30:18 +0200 (Thu, 30 Jan 2014) | 1 line
  
  scripts/kernel-functions: Add a bug fix for the kernel 3.13 series that is not yet present in the kernel 3.13 stable series
........
  r5253 | bvassche | 2014-01-30 11:31:32 +0200 (Thu, 30 Jan 2014) | 1 line
  
  nightly build: Add kernel version 3.13.1
........
  r5254 | vlnb | 2014-01-31 04:32:02 +0200 (Fri, 31 Jan 2014) | 10 lines
  
  scst_pres: Simplify PR locking
  
  Since the time during which a PR read or write lock is held is short,
  use a mutex to implement PR read and write locking. So although this
  patch excludes multiple simultaneous readers that shouldn't affect the
  time needed to process a PR operation measurably.
  
  Signed-off-by: Bart Van Assche <bvanassche@acm.org>
........
  r5255 | vlnb | 2014-01-31 04:33:11 +0200 (Fri, 31 Jan 2014) | 5 lines
  
  scst_vdisk: Check that "filename" is specified at most once
  
  Signed-off-by: Bart Van Assche <bvanassche@acm.org>
........
  r5256 | vlnb | 2014-01-31 04:35:20 +0200 (Fri, 31 Jan 2014) | 5 lines
  
  scst_vdisk: Sort "add_device_parameters" alphabetically
  
  Signed-off-by: Bart Van Assche <bvanassche@acm.org>
........
  r5260 | bvassche | 2014-02-03 11:03:03 +0200 (Mon, 03 Feb 2014) | 1 line
  
  scripts/list-source-files: Handle Mercurial subdirectories properly
........
  r5264 | bvassche | 2014-02-06 14:46:51 +0200 (Thu, 06 Feb 2014) | 9 lines
  
  scst_local: Fix a kernel oops for kernel versions < 2.6.37
  
  Avoid that scst_local triggers "BUG: unable to handle kernel NULL
  pointer dereference" on kernel versions before 2.6.37. This patch
  fixes a regression introduced via patch "scst_local: Avoid
  deadlock during module removal with kernel 3.6" (trunk r4566).
  
  Reported-by: Sebastian Herbszt <herbszt@gmx.de>
........
  r5266 | bvassche | 2014-02-06 15:30:06 +0200 (Thu, 06 Feb 2014) | 14 lines
  
  Hush Coverity warning of scst_ws_push_single_write() uninitialized pointer
  
  Coverity warns that sgv may be used uninitialized. The warning
  applies to WRITE SAME commands with LBDATA == PBDATA == 0 (replicate
  a single block of user data into the specified LBA range).
  
  The warning appears to be spurious - when LBDATA == PBDATA == 0,
  scst_ws_write_cmd_finished() will not use the uninitialized value
  saved by scst_ws_push_single_write().
  
  Move initialization of sgv earlier in the function to quiesce the warning.
  
  Signed-off-by: Steven J. Magnani <steve@digidescorp.com>
........
  r5267 | bvassche | 2014-02-06 15:38:28 +0200 (Thu, 06 Feb 2014) | 7 lines
  
  qla2x00t: Re-sync help text with the code
  
  The ql2xfdmienable module parameter defaults to 1, but the help text
  claims it defaults to zero.
  
  Signed-off-by: Steven J. Magnani <steve@digidescorp.com>
........
  r5268 | bvassche | 2014-02-06 16:17:49 +0200 (Thu, 06 Feb 2014) | 6 lines
  
  ib_srpt: Avoid that disabling a target triggers a race condition
  
  Avoid that disabling a target triggers a race condition with
  SRP relogin. At least in theory this race condition could result
  in a kernel crash.
........
  r5269 | bvassche | 2014-02-07 09:31:38 +0200 (Fri, 07 Feb 2014) | 9 lines
  
  scst_sysfs: Fix a build failure on kernels 2.6.2[678]
  
  The sysfs API is supported from kernel 2.6.26 on and uses the swap()
  macro while the swap() macro was introduced in kernel 2.6.29. Hence
  provide a definition of the swap() macro for kernels before 2.6.29.
  
  Signed-off-by: Sebastian Herbszt <herbszt@gmx.de>
  [bvanassche: Moved swap() definition a few lines down and added #ifndef/#endif]
........
  r5270 | bvassche | 2014-02-07 09:45:15 +0200 (Fri, 07 Feb 2014) | 2 lines
  
  regression tests: Run the 2.6.26..2.6.32 tests on the sysfs code instead of procfs
........
  r5271 | bvassche | 2014-02-07 10:11:28 +0200 (Fri, 07 Feb 2014) | 1 line
  
  nightly build: Update kernel versions
........
  r5272 | bvassche | 2014-02-07 14:43:25 +0200 (Fri, 07 Feb 2014) | 16 lines
  
  scst_user, rt: Wake command processing thread when needed
  
  In a fully-preemptible realtime kernel (CONFIG_PREEMPT_RT_FULL=y),
  SCSI commands from an initiator time out because the userland target
  application is never woken to process them.
  
  This is because in a fully-preemptible realtime kernel, soft-IRQ
  (tasklet) execution always occurs in a ksoftirqd thread and
  preempt_count is not manipulated on soft-IRQ processing entry/exit.
  This makes in_interrupt() useless for determining whether soft-IRQ
  processing is occurring; instead, in_serving_softirq() should be
  used for that purpose.
  
  Signed-off-by: Steven J. Magnani <steve@digidescorp.com>
  [bvanassche: Elaborated source code comment]
........
  r5273 | bvassche | 2014-02-07 14:46:39 +0200 (Fri, 07 Feb 2014) | 9 lines
  
  scst_vdisk: Build fix for kernels 2.6.27..2.6.30
  
  add_to_page_cache_lru and __lock_page_killable are exported since
  kernel version 2.6.30. See also patch "Staging: pohmelfs: kconfig/makefile
  and vfs changes" (commit 18bc0bbd162e3eb3e7ea2953c315ad4113a57164;
  included in kernel v2.6.30). 
  
  Signed-off-by: Sebastian Herbszt <herbszt@gmx.de>
........
  r5274 | vlnb | 2014-02-08 03:04:27 +0200 (Sat, 08 Feb 2014) | 9 lines
  
  scst_user: Convert sgv_purge_interval to jiffies before use
  
  The sgv_purge_interval from userland is passed down without conversion to
  jiffies. Yet, if it is zero, the default value is (60 * HZ).
  Convert to jiffies before passing down.
  
  Signed-off-by: Steven J. Magnani <steve@digidescorp.com>
........
  r5275 | vlnb | 2014-02-08 03:52:03 +0200 (Sat, 08 Feb 2014) | 19 lines
  
  Fix spurious BUG when parse_type != SCST_USER_PARSE_STANDARD
  
  Changeset 4224 introduced EXTRACHECKS for valid lba/data_len and state
  at the end of the parsing phase of command processing.
  However, the checks do not account for deferral of parsing to userland,
  as occurs when SCST_USER_PARSE_CALL or SCST_USER_PARSE_EXCEPTION are specified.
  In such cases the checks report errors on commands that userland has not yet
  had an opportunity to parse.
  
  NOTE: this includes a refactoring of the EXTRACHECKS to improve clarity.
        The rework is not exactly equivalent to the original code, but does
        conform to the comments describing the original code.
        Specifically, the original code would not trap an illegal command state
        unless there was also an illegal lba or data_len.
  
  Signed-off-by: Steven J. Magnani <steve@digidescorp.com>
  with some improvements
........
  r5276 | bvassche | 2014-02-08 10:24:28 +0200 (Sat, 08 Feb 2014) | 1 line
  
  scst: Build fix for kernel versions before 2.6.37
........
  r5277 | bvassche | 2014-02-09 18:50:10 +0200 (Sun, 09 Feb 2014) | 1 line
  
  scst_debug.h: Avoid that the sBUG() and sBUG_ON() definitions confuse the smatch static code checker
........
  r5281 | vlnb | 2014-02-13 06:02:56 +0200 (Thu, 13 Feb 2014) | 8 lines
  
  iscsi-scst: fix offset calculation
  
  Fixed a subtle bug in iSCSI-SCST with incorrectly calculated offsets
  for non-page aligned transfers. Originally discovered, investigated and
  fix suggested by Кирилл Тюшев, then Shahar Salzman tested and proved it.
  See http://sourceforge.net/mailarchive/message.php?msg_id=31924078
........
  r5282 | vlnb | 2014-02-13 06:15:31 +0200 (Thu, 13 Feb 2014) | 3 lines
  
  Web update
........
  r5283 | bvassche | 2014-02-14 15:05:55 +0200 (Fri, 14 Feb 2014) | 7 lines
  
  Makefiles: remove redundant 'depmod' invocations
  
  Running 'make modules_install' already triggers invocation of depmod,
  hence leave it out from those Makefiles that use 'make modules_install'.
  
  Signed-off-by: Steven J. Magnani <steve@digidescorp.com>
........
  r5284 | bvassche | 2014-02-14 15:48:54 +0200 (Fri, 14 Feb 2014) | 2 lines
  
  Makefiles: Convert from "install" to "make modules_install"
........
  r5285 | bvassche | 2014-02-14 16:46:11 +0200 (Fri, 14 Feb 2014) | 1 line
  
  mvsas_tgt/Makefile: Remove trailing whitespace
........
  r5286 | bvassche | 2014-02-14 17:52:10 +0200 (Fri, 14 Feb 2014) | 18 lines
  
  Makefiles: calculate KVER properly
      
  When deriving the kernel version (KVER) from KDIR, the file
  $(KDIR)/include/config/kernel.release should be preferred over
  'make kernelversion'.
  
  For example, the Ubuntu 3.2.0-23-generic kernel has a kernel.release
  file containing '3.2.0-23-generic', but 'make kernelversion' returns
  3.2.14. Since the modules are stored under /lib/modules/3.2.0-23-generic,
  the value in kernel.release is the correct one to use.
      
  Also:
  - Evaluate KVER only once
  - All depmod commands must include KVER
      
  Signed-off-by: Steven J. Magnani <steve@digidescorp.com>
  [bvanassche: Split long lines / removed trailing whitespace]
........
  r5287 | bvassche | 2014-02-14 21:27:09 +0200 (Fri, 14 Feb 2014) | 1 line
  
  nightly build: Update kernel versions
........
  r5288 | bvassche | 2014-02-18 10:31:44 +0200 (Tue, 18 Feb 2014) | 22 lines
  
  scst, qla2x00t: Prevent inappropriate sleeping with a real-time kernel
  
  With a realtime kernel with full preemption (CONFIG_PREEMPT_RT_FULL),
  spinlocks can sleep, interrupt handlers run in thread context, and
  the standard local_irq functions manipulate preemptibility, not HW
  interruptibility. Under these conditions, most calls to local_irq
  functions should be replaced by no-ops. The CONFIG_PREEMPT_RT patch
  defines _nort versions of local_irq functions that compile away
  under CONFIG_PREEMPT_RT_FULL and compile to their "normal"
  equivalents otherwise.
  
  Define _nort equivalents to support compilation against both
  "normal" and RT-patched kernels, and use the _nort local_irq
  functons in cases where spinlocks are taken within a
  local_irq_save() or local_irq_disable() block.  Without these
  changes, runtime warnings about "sleeping function called from
  invalid context" occur.
  
  Signed-off-by: Steven J. Magnani <steve@digidescorp.com>
  [bvanassche: Edited patch description and comment in scst_priv.h]
........
  r5289 | bvassche | 2014-02-18 10:40:36 +0200 (Tue, 18 Feb 2014) | 13 lines
  
  Makefiles: respect DESTDIR when specified
  
  Not all SCST components handle DESTDIR properly, or at all.
  
  In particular:
  * INSTALL_MOD_PATH should account for DESTDIR when 'make modules_install'
    is invoked, so the kernel make infrastructure deploys the modules
    and runs depmod against the proper directory tree.
  * depmods must include a '-b' option to reference the proper directory tree.
  * Drop special ISCSI_DESTDIR.
  
  Signed-off-by: Steven J. Magnani <steve@digidescorp.com>
........
  r5290 | bvassche | 2014-02-18 10:41:30 +0200 (Tue, 18 Feb 2014) | 7 lines
  
  Makefiles: 'uninstall' target fixes
  
  Some components don't have 'uninstall' targets although the top-level
  Makefile references them. Some others don't remove the proper file.
  
  Signed-off-by: Steven J. Magnani <steve@digidescorp.com>
........
  r5291 | vlnb | 2014-02-19 05:45:48 +0200 (Wed, 19 Feb 2014) | 8 lines
  
  Fix incorrect start and length calculation for issuing block discard requests
  
  Block layer always expects start and length in 512 byte blocks, so they
  should be corrected for non-512b SCST devices.
  
  Original patch from Ken Raeburn <raeburn@permabit.com>
........
  r5292 | vlnb | 2014-02-19 06:06:10 +0200 (Wed, 19 Feb 2014) | 3 lines
  
  Cleanups
........
  r5293 | vlnb | 2014-02-19 06:21:00 +0200 (Wed, 19 Feb 2014) | 12 lines
  
  scst_user: Complete "Preparing" / "finished" symmetry
  
  Add some TRACE statements so events sent to userland are bracketed by
  "Preparing" and "finished". This makes it a little easier to find the
  boundaries between the various stages of command processing in trace output.
  
  Note, this patch does not implement a 'finished' message for TM events;
  there is already a "TM reply" message that can serve that purpose.
  
  Signed-off-by: Steven J. Magnani <steve@digidescorp.com>
........
  r5294 | bvassche | 2014-02-19 09:38:57 +0200 (Wed, 19 Feb 2014) | 1 line
  
  nightly build: Update kernel versions
........
  r5295 | bvassche | 2014-02-19 10:51:35 +0200 (Wed, 19 Feb 2014) | 1 line
  
  scripts/blockdev-perftest: Fix bashisms
........
  r5296 | vlnb | 2014-02-20 07:54:49 +0200 (Thu, 20 Feb 2014) | 3 lines
  
  put_page_callback patch for 3.13.3+ kernels
........
  r5300 | vlnb | 2014-02-21 04:08:05 +0200 (Fri, 21 Feb 2014) | 3 lines
  
  Docs update
........
  r5301 | bvassche | 2014-02-21 09:44:55 +0200 (Fri, 21 Feb 2014) | 1 line
  
  nightly build: Add support for the put_page_callback-3.13.3 patch
........
  r5302 | bvassche | 2014-02-21 09:48:21 +0200 (Fri, 21 Feb 2014) | 1 line
  
  nightly build: Update kernel versions
........
  r5303 | bvassche | 2014-02-21 12:02:11 +0200 (Fri, 21 Feb 2014) | 1 line
  
  nightly build: Update kernel versions
........
  r5304 | bvassche | 2014-02-21 12:09:45 +0200 (Fri, 21 Feb 2014) | 1 line
  
  nightly build: Update kernel versions
........
  r5305 | bvassche | 2014-02-24 08:56:05 +0200 (Mon, 24 Feb 2014) | 1 line
  
  nightly build: Update kernel versions
........
  r5306 | bvassche | 2014-02-24 08:56:44 +0200 (Mon, 24 Feb 2014) | 1 line
  
  Spelling fix: initator -> initiator
........
  r5307 | bvassche | 2014-02-24 09:30:50 +0200 (Mon, 24 Feb 2014) | 1 line
  
  make rpm: Do not remove rpmbuilddir
........
  r5308 | bvassche | 2014-02-24 09:39:45 +0200 (Mon, 24 Feb 2014) | 5 lines
  
  scst_local: Add newline to sysfs output
  
  Signed-off-by: Sebastian Herbszt <herbszt@gmx.de>
  [bvanassche: Reduced source code line length to 80 columns]
........
  r5309 | bvassche | 2014-02-25 12:55:36 +0200 (Tue, 25 Feb 2014) | 1 line
  
  put_page_callback-3.12.11.patch: Add
........
  r5310 | bvassche | 2014-02-25 12:57:27 +0200 (Tue, 25 Feb 2014) | 1 line
  
  put_page_callback-3.10.30.patch: Add
........
  r5311 | bvassche | 2014-02-25 12:58:08 +0200 (Tue, 25 Feb 2014) | 1 line
  
  nightly build: Add support for kernels >= 3.10.30 and >= 3.12.11
........
  r5312 | bvassche | 2014-02-25 12:59:54 +0200 (Tue, 25 Feb 2014) | 1 line
  
  nightly build: Update kernel versions
........
  r5315 | vlnb | 2014-02-26 04:32:39 +0200 (Wed, 26 Feb 2014) | 3 lines
  
  Make internal memory layout more cache friendly
........
  r5316 | vlnb | 2014-02-26 04:49:38 +0200 (Wed, 26 Feb 2014) | 5 lines
  
  scst_vdisk: Make vendor, product ID and related fields configurable via sysfs
  
  Signed-off-by: Bart Van Assche <bvanassche@acm.org>
........
  r5320 | bvassche | 2014-03-02 10:49:50 +0200 (Sun, 02 Mar 2014) | 1 line
  
  Documentation spelling fix: change INQUERY into INQUIRY
........


git-svn-id: http://svn.code.sf.net/p/scst/svn/branches/iser@5321 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-03-03 08:18:19 +00:00
Bart Van Assche
adb3c46798 fcst: Increase ft_scst_template.sg_tablesize
The libfc implementation can handle long SG lists, hence increase
ft_scst_template.sg_tablesize from 128 to 65535.


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5223 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-01-24 10:32:43 +00:00
Bart Van Assche
a57c9d0cee fcst: Fix a potential deadlock
This patch fixes the following lockdep warning:

======================================================
[ INFO: possible circular locking dependency detected ]
3.13.0-rc6-debug+ #5 Tainted: G        W  O
-------------------------------------------------------
rmmod/8653 is trying to acquire lock:
 (scst_tgt_kref){+.+.+.}, at: [<ffffffffa033de6f>] scst_tgt_sysfs_put+0x10f/0x190 [scst]

but task is already holding lock:
 (ft_lport_lock){+.+.+.}, at: [<ffffffffa029d3db>] ft_lport_del+0x1b/0x40 [fcst]

which lock already depends on the new lock.

the existing dependency chain (in reverse order) is:

-> #1 (ft_lport_lock){+.+.+.}:
       [<ffffffff8109b4b4>] lock_acquire+0xa4/0x1e0
       [<ffffffff81559837>] mutex_lock_nested+0x77/0x430
       [<ffffffffa029d5a0>] ft_tgt_enable+0x20/0xd0 [fcst]
       [<ffffffffa0335c99>] scst_process_tgt_enable_store+0xe9/0x230 [scst]
       [<ffffffffa0335dfc>] scst_tgt_enable_store_work_fn+0x1c/0x20 [scst]
       [<ffffffffa0338ebc>] scst_process_sysfs_works+0xfc/0x1f0 [scst]
       [<ffffffffa033d180>] sysfs_work_thread_fn+0x120/0x2b0 [scst]
       [<ffffffff81074850>] kthread+0xf0/0x110
       [<ffffffff815663fc>] ret_from_fork+0x7c/0xb0

-> #0 (scst_tgt_kref){+.+.+.}:
       [<ffffffff8109a95b>] __lock_acquire+0x17ab/0x1b10
       [<ffffffff8109b4b4>] lock_acquire+0xa4/0x1e0
       [<ffffffffa03375b9>] scst_kobject_put_and_wait+0x99/0x260 [scst]
       [<ffffffffa033de6f>] scst_tgt_sysfs_put+0x10f/0x190 [scst]
       [<ffffffffa03053dc>] scst_unregister_target+0x15c/0x3c0 [scst]
       [<ffffffffa029c69c>] ft_tport_delete+0x2c/0xa0 [fcst]
       [<ffffffffa029d3ec>] ft_lport_del+0x2c/0x40 [fcst]
       [<ffffffffa023e249>] fc_lport_iterate+0x49/0x80 [libfc]
       [<ffffffffa029d804>] ft_module_exit+0x36/0x832 [fcst]
       [<ffffffff810cd3f2>] SyS_delete_module+0x152/0x1f0
       [<ffffffff815664a9>] system_call_fastpath+0x16/0x1b

other info that might help us debug this:

 Possible unsafe locking scenario:

       CPU0                    CPU1
       ----                    ----
  lock(ft_lport_lock);
                               lock(scst_tgt_kref);
                               lock(ft_lport_lock);
  lock(scst_tgt_kref);

 *** DEADLOCK ***

2 locks held by rmmod/8653:
 #0:  (fc_prov_mutex){+.+.+.}, at: [<ffffffffa023e222>] fc_lport_iterate+0x22/0x80 [libfc]
 #1:  (ft_lport_lock){+.+.+.}, at: [<ffffffffa029d3db>] ft_lport_del+0x1b/0x40 [fcst]

stack backtrace:
CPU: 0 PID: 8653 Comm: rmmod Tainted: G        W  O 3.13.0-rc6-debug+ #5
Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011
 ffffffff8222ce70 ffff88002efdbb70 ffffffff8155551c ffffffff8222ce70
 ffff88002efdbbb0 ffffffff81552248 ffff88002efdbc00 ffff88002ed0ed88
 ffff88002ed0e6d0 0000000000000002 0000000000000002 ffff88002ed0ed88
Call Trace:
 [<ffffffff8155551c>] dump_stack+0x4e/0x7a
 [<ffffffff81552248>] print_circular_bug+0x200/0x20f
 [<ffffffff8109a95b>] __lock_acquire+0x17ab/0x1b10
 [<ffffffff8109b4b4>] lock_acquire+0xa4/0x1e0
 [<ffffffffa03375b9>] scst_kobject_put_and_wait+0x99/0x260 [scst]
 [<ffffffffa033de6f>] scst_tgt_sysfs_put+0x10f/0x190 [scst]
 [<ffffffffa03053dc>] scst_unregister_target+0x15c/0x3c0 [scst]
 [<ffffffffa029c69c>] ft_tport_delete+0x2c/0xa0 [fcst]
 [<ffffffffa029d3ec>] ft_lport_del+0x2c/0x40 [fcst]
 [<ffffffffa023e249>] fc_lport_iterate+0x49/0x80 [libfc]
 [<ffffffffa029d804>] ft_module_exit+0x36/0x832 [fcst]
 [<ffffffff810cd3f2>] SyS_delete_module+0x152/0x1f0
 [<ffffffff815664a9>] system_call_fastpath+0x16/0x1b


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5196 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-01-16 15:23:45 +00:00
Bart Van Assche
6d7fb6343d fcst: Avoid that "rmmod fcst" hangs
Make sure that SCST sessions get unregistered when scst_unregister_target()
is invoked. This change is necessary because of r5083 ("Disable automatic
sessions unregistration").


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5195 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-01-16 15:22:00 +00:00
Bart Van Assche
9690e0f1c3 fcst: SLES 11 SP3 build fix
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5188 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-01-10 07:50:10 +00:00
Bart Van Assche
c296055104 fcst: Avoid that checkpatch complains about 'struct spinlock'
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5013 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2013-10-01 06:21:38 +00:00
Bart Van Assche
886ae66326 fcst: Avoid triggering CRC errors at the initiator side
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4969 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2013-08-13 18:43:56 +00:00
Bart Van Assche
80ba881d46 fcst: Fix ft_abort_cmd()
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4968 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2013-08-13 18:43:26 +00:00
Bart Van Assche
e6610624ae fcst: Report FC send errors
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4967 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2013-08-13 18:41:38 +00:00
Bart Van Assche
6c5328df1d fcst: Use proper length variable for bidir commands in ft_recv_write_data()
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4966 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2013-08-13 18:41:17 +00:00
Bart Van Assche
76cc1e8857 fcst: Always report FC exchange errors
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4965 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2013-08-13 18:40:34 +00:00
Bart Van Assche
c71c844c21 fcst: Eliminate ft_cmd.serial
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4964 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2013-08-13 18:40:00 +00:00
Bart Van Assche
07569ed62d fcst: Micro-optimize ft_cmd_free()
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4963 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2013-08-13 18:39:37 +00:00
Bart Van Assche
2381497291 fcst: Suppress a lockdep complaint
===============================
 [ INFO: suspicious RCU usage. ]
 3.10.0-rc1-debug+ #1 Tainted: G           O
 -------------------------------
fcst/ft_sess.c:194 suspicious rcu_dereference_protected() usage!
    
other info that might help us debug this:
    
rcu_scheduler_active = 1, debug_locks = 0
1 lock held by fcoethread/2/7942:
 #0:  (rcu_read_lock){.+.+..}, at: [<ffffffffa035ee30>] rcu_lock_acquire.constprop.14+0x0/0x30 [fcst]

stack backtrace:
CPU: 2 PID: 7942 Comm: fcoethread/2 Tainted: G           O 3.10.0-rc1-debug+ #1
Hardware name: Bochs Bochs, BIOS Bochs 01/01/2007
 0000000000000001 ffff88003b191c28 ffffffff81525a11 ffff88003b191c58
 ffffffff810a20ad ffff880039b7d1e8 ffff88003690c400 000000000000067a
 ffff880039b7cb88 ffff88003b191c80 ffffffffa035f67b ffff880039b7cb88
Call Trace:
 [<ffffffff81525a11>] dump_stack+0x19/0x1b
 [<ffffffff810a20ad>] lockdep_rcu_suspicious+0xfd/0x130
 [<ffffffffa035f67b>] ft_sess_get.isra.7+0x12b/0x150 [fcst]
 [<ffffffffa035f6e2>] ft_recv+0x42/0x100 [fcst]
 [<ffffffffa026edb2>] fc_lport_recv_req+0x272/0x2f0 [libfc]
 [<ffffffffa0268c3b>] fc_exch_recv+0x61b/0xdc0 [libfc]
 [<ffffffffa025f306>] fcoe_percpu_receive_thread+0x386/0x5f0 [fcoe]
 [<ffffffff8106d34b>] kthread+0xdb/0xe0
 [<ffffffff815357ac>] ret_from_fork+0x7c/0xb0



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4962 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2013-08-13 18:39:14 +00:00
Bart Van Assche
e506bd990d fcst: Fix a race condition
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4961 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2013-08-13 18:37:45 +00:00
Bart Van Assche
e41c3bf328 fcst: Fix a lockdep warning
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4960 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2013-08-13 18:37:23 +00:00
Bart Van Assche
cf8d18cba8 fcst: Remove ft_prlo() function header and a comment
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4959 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2013-08-13 18:37:00 +00:00
Bart Van Assche
049aab6dce fcst: Update a debug statement in ft_prli()
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4958 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2013-08-13 18:36:32 +00:00
Bart Van Assche
62059912bf fcst: Remove two comments from ft_prli_locked()
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4957 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2013-08-13 18:36:08 +00:00
Bart Van Assche
50c4c8ded9 fcst: Remove superfluous initialization from ft_sess_get()
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4956 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2013-08-13 18:35:45 +00:00
Bart Van Assche
5fd500a4e9 fcst: Include version number in module description
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4955 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2013-08-13 18:35:09 +00:00
Bart Van Assche
812c33d403 fcst: Update ft_send_resp_code() function header
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4954 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2013-08-13 18:34:43 +00:00
Bart Van Assche
54b4717ffa fcst: Inline ft_send_xfer_rdy_off()
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4953 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2013-08-13 18:34:19 +00:00
Bart Van Assche
c555196073 fcst: Update ft_send_response() comment header
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4952 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2013-08-13 18:33:51 +00:00
Bart Van Assche
c2cbc9fec7 fcst: Move a member variable in struct ft_sess
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4951 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2013-08-13 18:33:18 +00:00
Bart Van Assche
a578373d4e fcst: Add more debugging code in ft_sess_put()
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4950 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2013-08-13 18:32:41 +00:00
Bart Van Assche
08afc26627 fcst: Do not define kref_get_unless_zero() if backported through stable tree
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4934 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2013-08-03 18:06:32 +00:00
Bart Van Assche
1b94eecde7 fcst: Revert r4889 because it was wrong
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4931 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2013-08-03 15:14:19 +00:00
Bart Van Assche
067a3231f9 fcst: Fix a checkpatch complaint about whitespace
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4893 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2013-06-04 11:46:22 +00:00
Bart Van Assche
fda521f287 fcst: Follow-up for r4873
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4889 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2013-06-04 09:41:58 +00:00
Bart Van Assche
095813cc56 fcst: RHEL 6 build fix
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4886 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2013-06-03 15:41:09 +00:00
Bart Van Assche
b0133418e3 fcst: Fix a bug in a pre-2.6.36 error path. This was spotted by both sparse and smatch.
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4873 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2013-05-21 18:18:37 +00:00
Bart Van Assche
88762d3574 fcst: Fix WRITE SAME handling
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4872 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2013-05-20 18:35:24 +00:00
Bart Van Assche
33c0e52b93 fcst: Fix two sparse warnings
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4870 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2013-05-20 06:39:24 +00:00
Bart Van Assche
8c3fc40784 fcst: Fix build on pre-2.6.36 kernels
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4869 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2013-05-20 06:37:55 +00:00
Bart Van Assche
2c01ef207f fcst: Avoid invoking ft_cmd_done(NULL)
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4867 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2013-05-19 18:10:20 +00:00
Bart Van Assche
aec51e803c fcst: Kernel 3.9 build fix
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4866 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2013-05-19 16:58:52 +00:00
Bart Van Assche
1ed1f3fda7 fcst: Eliminate ft_sess_lookup_delete()
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4865 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2013-05-19 16:57:57 +00:00
Bart Van Assche
c4b720647c fcst: Move the ft_prov data structure
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4864 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2013-05-19 16:56:42 +00:00
Bart Van Assche
06141fe25d fcst: Minimize comment diffs with upstream
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4863 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2013-05-19 16:54:34 +00:00
Bart Van Assche
f5fd68200e fcst: Introduce function ft_sess_hash()
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4862 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2013-05-19 16:53:24 +00:00
Bart Van Assche
55084ba194 fcst: Minimize diffs of ft_send_read_data() and ft_recv_write_data() with upstream
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4861 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2013-05-19 16:51:52 +00:00
Bart Van Assche
58aceecbff fcst: Move ft_recv_write_data()
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4860 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2013-05-19 16:50:02 +00:00
Bart Van Assche
a4851afe2d fcst: Change exch_done() into frame_send() to minimize diffs with upstream
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4859 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2013-05-19 16:47:50 +00:00
Bart Van Assche
14a9a7a39d fcst: Move an fr_seq() call to minimize diffs with upstream
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4858 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2013-05-19 16:27:18 +00:00
Bart Van Assche
7d9b329342 fcst: Move a declaration
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4857 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2013-05-19 15:23:18 +00:00
Bart Van Assche
029dc3a2e4 fcst: Declare a variable const
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4856 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2013-05-19 15:15:59 +00:00
Vladislav Bolkhovitin
369863f015 Allow install SCST in any location
Currently the install location of SCST is pretty much hard coded into 
the Makefiles to be /usr/local.

I am custom building a system for ZFS & SCST and I want to install in 
/usr instead of /usr/local.

Currently I am doing a “find . -name Makefile -exec sed -i 's:/usr/local:/usr:g'
{} \;” to accommodate this.

This patch fixes it.

From Sietse van Zanen <sietse@wizdom.nu>



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4791 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2013-03-08 21:25:45 +00:00
Vladislav Bolkhovitin
bd7c893f04 Multiple makefiles: autodetect SCST include directory
It is cumbersome to change SCST_INC_DIR and SCST_DIR in each Makefile
before and after a release. Hence modify the Makefiles such that these
paths are detected automatically.

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



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4740 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2013-01-16 00:12:38 +00:00
Bart Van Assche
bbc27ca421 fcst: Switch to the new and preferred way for printing kernel messages
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4553 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2012-10-08 13:27:15 +00:00