Commit Graph
470 Commits
Author SHA1 Message Date
Vladislav Bolkhovitin 312c7d85d6 scst_vdisk: Make vendor, product ID and related fields configurable via sysfs
Signed-off-by: Bart Van Assche <bvanassche@acm.org>



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5316 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-02-26 02:49:38 +00:00
Vladislav Bolkhovitin d59230f2fd Make internal memory layout more cache friendly
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5315 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-02-26 02:32:39 +00:00
Bart Van Assche 4177cd82a6 scst_debug.h: Avoid that the sBUG() and sBUG_ON() definitions confuse the smatch static code checker
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5277 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-02-09 16:50:10 +00:00
Bart Van Assche 72968c9c15 scst: Build fix for kernel versions before 2.6.37
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5276 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-02-08 08:24:28 +00:00
Bart Van Assche 987f9bd776 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]


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5269 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-02-07 07:31:38 +00:00
Vladislav Bolkhovitin bd53fcd860 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>



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5254 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-01-31 02:32:02 +00:00
Vladislav Bolkhovitin e9ef3fa2d1 Better version of the previous patch
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5247 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-01-29 04:16:58 +00:00
Vladislav Bolkhovitin 00851a7501 Merge of adding iSER web page and copyright updates from the iSER branch
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5241 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-01-28 05:17:26 +00:00
Bart Van Assche 2ee6484c6d scst: RHEL 5 build fix
Kernel versions before 2.6.26 do not have a definition for the
ACCESS_ONCE() macro, hence provide one.
    
Signed-off-by: Sebastian Herbszt <herbszt@gmx.de>


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5220 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-01-21 14:35:22 +00:00
Bart Van Assche d602302863 scst: Rework RESERVE / RELEASE handling
Reduce the number of reservation state variables from (one per
device + one per session) to one per device. Introduce helper
functions for manipulating the SPC-2 reservation state.


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5218 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-01-21 08:09:01 +00:00
Vladislav Bolkhovitin 6cfeda64ca Cleanup and clarification of allocation masks handling
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5166 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2013-12-20 03:41:44 +00:00
Vladislav Bolkhovitin d2976ad7ce scst: set_cpus_allowed_ptr() workaround for RHEL 5.10
Apparently RHEL 5.9 has an implementation of set_cpus_allowed_ptr()
but RHEL 5.10 not. Work around this by providing an implementation.

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



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5147 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2013-12-18 05:56:14 +00:00
Vladislav Bolkhovitin b628b36da3 scst: RHEL 5 build fixes
Avoid that compilation fails on RHEL 5.9. In the RHEL 5.9 kernel headers
neither __printf() nor sg_is_last() has been defined. Additionally, the
variable 'fd' in vdisk_unmap_range() is only defined when building against
kernel version > 2.6.27.

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



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5146 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2013-12-18 05:55:31 +00:00
Vladislav Bolkhovitin 26b9e5eaad Fix write resuduals handling on data receive error
By default data receive error it should be assumed that no data
received, not that all data received as it is currently



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5138 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2013-12-05 04:05:49 +00:00
Bart Van Assche 7f13d7ac6d scst spelling fix: Rename "atimic" into "atomic"
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5124 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2013-11-19 09:49:35 +00:00
Vladislav Bolkhovitin 93eb067bef scst: Avoid that scst_write_same() crashes for large data len
A quote from SBC-3 about WRITE SAME (10): "If the number of
logical blocks specified to be unmapped or written exceeds the value
indicated in the MAXIMUM WRITE SAME LENGTH field in the Block Limits
VPD page (see 6.6.3), then the device server shall terminate the command
with CHECK CONDITION status with the sense key set to ILLEGAL REQUEST
and the additional sense code set to INVALID FIELD IN CDB."

This patch fixes the following crash since with the current implementation
data_len >= 2**63 makes (unsigned)ws_sg_cnt >= 2**31 and this causes
sg_init_table() to crash as follows:

BUG: unable to handle kernel paging request at 00000027ffffffe8
IP: [<ffffffff8120d51e>] sg_init_table+0x5e/0x90
CPU: 1 PID: 10297 Comm: disk014_1 Tainted: G           O 3.11.0-debug+ #1
RIP: 0010:[<ffffffff8120d51e>]  [<ffffffff8120d51e>] sg_init_table+0x5e/0x90
Call Trace:
 [<ffffffffa02e4b46>] scst_write_same+0x236/0x340 [scst]
 [<ffffffffa034db30>] ? vdisk_exec_write_same_unmap.isra.35+0x170/0x170 [scst_vdisk]
 [<ffffffffa034dba4>] vdisk_exec_write_same+0x74/0x170 [scst_vdisk]
 [<ffffffffa034824e>] vdev_do_job+0x15e/0x390 [scst_vdisk]
 [<ffffffffa03484a5>] vdisk_exec+0x25/0x70 [scst_vdisk]
 [<ffffffffa02cafb5>] scst_do_real_exec+0xa5/0x3d0 [scst]
 [<ffffffffa02ce2da>] scst_exec_check_blocking+0xea/0x310 [scst]
 [<ffffffffa02ce695>] scst_exec_check_sn+0x195/0x2f0 [scst]
 [<ffffffffa02cff31>] scst_process_active_cmd+0x521/0x750 [scst]
 [<ffffffffa02d01e1>] scst_do_job_active+0x81/0x1a0 [scst]
 [<ffffffffa02d0537>] scst_cmd_thread+0x157/0x340 [scst]
 [<ffffffff81069ea6>] kthread+0xd6/0xe0
 [<ffffffff814debfc>] ret_from_fork+0x7c/0xb0

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



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5122 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2013-11-19 05:51:39 +00:00
Vladislav Bolkhovitin 41f25c3e2e scst.h: Clarify data direction comments
I think the comments in scst.h for data_direction and expected_data_direction
can be made more clear. The patch below makes the comments for these two
variables more detailed.

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



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5121 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2013-11-19 05:41:15 +00:00
Vladislav Bolkhovitin 91a2c481a6 scst: Make it possible to inspect commands state
Signed-off-by: Bart Van Assche <bvanassche@acm.org>

with some improvements



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5108 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2013-11-14 04:27:31 +00:00
Vladislav Bolkhovitin 39009e749e Cleanup
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5107 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2013-11-14 04:16:28 +00:00
Bart Van Assche dae324cd5c scst/include/scst.h: Avoid that checkpatch complains about do { } while (0) around a single statement
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5099 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2013-11-11 13:15:07 +00:00
Bart Van Assche ca37a3602a scst_sysfs: Fix build against non-debug kernel (follow-up for r5095)
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5096 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2013-11-10 18:06:52 +00:00
Vladislav Bolkhovitin 62fffa45dc scst_sysfs: Trigger a lockdep complaint if sysfs work
could trigger a deadlock

This patch causes lockdep to complain if sysfs work could trigger a deadlock.
As an example, for the patch below the following lockdep complaint is generated:

======================================================
[ INFO: possible circular locking dependency detected ]
3.12.0-rc7-dbg+ #5 Tainted: GF          O
-------------------------------------------------------
scst_mgmtd/7527 is trying to acquire lock:
 (scst_tgt_dev){+.+.+.}, at: [<ffffffffa01f9365>] scst_tgt_dev_sysfs_del+0x105/0x1a0 [scst]

but task is already holding lock:
 (&scst_mutex){+.+.+.}, at: [<ffffffffa01eaa46>] scst_free_session+0x56/0x2c0 [scst]

which lock already depends on the new lock.

the existing dependency chain (in reverse order) is:

-> #1 (&scst_mutex){+.+.+.}:
       [<ffffffff810be983>] lock_acquire+0x93/0x150
       [<ffffffff81619617>] mutex_lock_interruptible_nested+0x77/0x500
       [<ffffffffa01f1f9f>] scst_tgt_dev_process_thread_pid_show+0x5f/0x120 [scst]
       [<ffffffffa01f38d6>] scst_process_sysfs_works+0xe6/0x1d0 [scst]
       [<ffffffffa01f7af0>] sysfs_work_thread_fn+0x120/0x2b0 [scst]
       [<ffffffff8107482a>] kthread+0xea/0xf0
       [<ffffffff81625f6c>] ret_from_fork+0x7c/0xb0

-> #0 (scst_tgt_dev){+.+.+.}:
       [<ffffffff810bdc8a>] __lock_acquire+0x14fa/0x1a60
       [<ffffffff810be983>] lock_acquire+0x93/0x150
       [<ffffffffa01f20df>] scst_kobject_put_and_wait+0x6f/0x140 [scst]
       [<ffffffffa01f9365>] scst_tgt_dev_sysfs_del+0x105/0x1a0 [scst]
       [<ffffffffa01e9114>] scst_free_tgt_dev+0x84/0x210 [scst]
       [<ffffffffa01ea80b>] scst_sess_free_tgt_devs+0x6b/0x100 [scst]
       [<ffffffffa01eaa4e>] scst_free_session+0x5e/0x2c0 [scst]
       [<ffffffffa01ead4e>] scst_free_session_callback+0x9e/0x170 [scst]
       [<ffffffffa01d5a9a>] scst_global_mgmt_thread+0x24a/0x550 [scst]
       [<ffffffff8107482a>] kthread+0xea/0xf0
       [<ffffffff81625f6c>] ret_from_fork+0x7c/0xb0

other info that might help us debug this:

 Possible unsafe locking scenario:

       CPU0                    CPU1
       ----                    ----
  lock(&scst_mutex);
                               lock(scst_tgt_dev);
                               lock(&scst_mutex);
  lock(scst_tgt_dev);

 *** DEADLOCK ***

1 lock held by scst_mgmtd/7527:
 #0:  (&scst_mutex){+.+.+.}, at: [<ffffffffa01eaa46>] scst_free_session+0x56/0x2c0 [scst]

stack backtrace:
CPU: 1 PID: 7527 Comm: scst_mgmtd Tainted: GF          O 3.12.0-rc7-dbg+ #5
Hardware name: VMware, Inc. VMware Virtual Platform/440BX Desktop Reference Platform, BIOS 6.00 07/31/2013
 ffffffff822efd40 ffff88007b7c1ac8 ffffffff8161464a ffffffff822efd40
 ffff88007b7c1b08 ffffffff81610d02 ffff88007b7c1b60 ffff8800692748c0
 0000000000000000 ffff880069274898 ffff880069274120 ffff8800692748c0
Call Trace:
 [<ffffffff8161464a>] dump_stack+0x4e/0x82
 [<ffffffff81610d02>] print_circular_bug+0x201/0x210
 [<ffffffff810bdc8a>] __lock_acquire+0x14fa/0x1a60
 [<ffffffff810be983>] lock_acquire+0x93/0x150
 [<ffffffffa01f9365>] ? scst_tgt_dev_sysfs_del+0x105/0x1a0 [scst]
 [<ffffffffa01f20df>] scst_kobject_put_and_wait+0x6f/0x140 [scst]
 [<ffffffffa01f9365>] ? scst_tgt_dev_sysfs_del+0x105/0x1a0 [scst]
 [<ffffffffa01f9365>] scst_tgt_dev_sysfs_del+0x105/0x1a0 [scst]
 [<ffffffffa01e9114>] scst_free_tgt_dev+0x84/0x210 [scst]
 [<ffffffffa01ea80b>] scst_sess_free_tgt_devs+0x6b/0x100 [scst]
 [<ffffffffa01eaa4e>] scst_free_session+0x5e/0x2c0 [scst]
 [<ffffffffa01ead4e>] scst_free_session_callback+0x9e/0x170 [scst]
 [<ffffffffa01d5a9a>] scst_global_mgmt_thread+0x24a/0x550 [scst]
 [<ffffffff81075850>] ? wake_up_atomic_t+0x30/0x30
 [<ffffffffa01d5850>] ? scst_register_session_non_gpl+0x20/0x20 [scst]
 [<ffffffff8107482a>] kthread+0xea/0xf0
 [<ffffffff81074740>] ? kthread_create_on_node+0x140/0x140
 [<ffffffff81625f6c>] ret_from_fork+0x7c/0xb0
 [<ffffffff81074740>] ? kthread_create_on_node+0x140/0x140



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5095 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2013-11-09 07:40:09 +00:00
Vladislav Bolkhovitin 2d874f7cb8 scst_sysfs: Introduce scst_kobject_put_and_wait()
This patch does not change any functionality other than the message
printed when it takes more than one second before the completion is
signalled.

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



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5086 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2013-10-31 04:44:52 +00:00
Vladislav Bolkhovitin b1d5d64a7c Add list_entry_in_list()
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5017 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2013-10-03 04:24:25 +00:00
Vladislav Bolkhovitin 844e194647 Update for kernels 3.11.x
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5004 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2013-09-28 04:23:45 +00:00
Bart Van Assche 4c2b6e8fe1 scst, implicit ALUA: Document locking strategy
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4999 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2013-09-12 10:09:58 +00:00
Vladislav Bolkhovitin 7ac1a842e2 If supported, unmap everything on FORMAT UNIT
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4994 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2013-09-10 03:58:46 +00:00
Vladislav Bolkhovitin fac009829c Cleanup and add scst_create_devt_attr() and scst_create_dev_attr() for symmetry
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4974 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2013-08-15 23:44:21 +00:00
Vladislav Bolkhovitin c282b7964e Simplify, fix and improve commands ordering
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4972 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2013-08-15 05:47:32 +00:00
Vladislav Bolkhovitin f8f2580fcd From: Benjamin Black <Benjamin.Black@Emulex.Com>
There is not a way to specify an attribute that applies to only one
target or target driver. This patch provides such an interface.

Copyright (C) 2013  Emulex.  All rights reserved.

This software is provided as-is, without any express or implied warranty.  In
no event will Emulex be held liable for any damages arising from the use of
this software. Permission is granted to anyone to use this software for any
purpose, including commercial applications, and to alter it and redistribute it
freely. If you use this software in a product, an acknowledgment in the
product documentation would be appreciated, but is not required. This notice
may be removed from any source code distribution that includes all or any part
of the original software.



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4970 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2013-08-15 05:34:33 +00:00
Vladislav Bolkhovitin f438811634 Cleanup
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4945 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2013-08-10 02:29:30 +00:00
Vladislav Bolkhovitin 24262cfcd1 Revert r4922, because it isn't fully correct
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4929 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2013-08-02 07:01:33 +00:00
Vladislav Bolkhovitin 7a1bb6544c Fix out of SN commands handling
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4922 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2013-07-27 01:11:10 +00:00
Vladislav Bolkhovitin 5b1ee63f2f Make ALUA commands filtering more CPU cache friendly
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4920 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2013-07-23 02:22:01 +00:00
Vladislav Bolkhovitin 605c3c90e9 Simplify and optimize commands serialization/blocking
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4914 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2013-07-09 21:32:07 +00:00
Vladislav Bolkhovitin 6e31fd8306 Relax and cleanup HARDWARE ERROR sense usage
HARDWARE ERROR sense is very strong considered be "internal failure", so
might lead to serios initiator side issues up to disconnect from device. In
many cases WRITE or READ ERROR sense can be used instead. All remaining
usages must be logged.



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4911 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2013-07-04 02:46:49 +00:00
Vladislav Bolkhovitin b80431f327 scst_lib: Rework the CDB parsing routines
Factor out common code into a new function.

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

with some cleanups and improvements



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4896 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2013-06-07 04:43:51 +00:00
Vladislav Bolkhovitin 2093dd7561 Make it possible to forcibly close SRP and FC sessions via sysfs
That patch contains the following changes:
* Move the code for creating a "close_sess" sysfs attribute from iscsi-scst to
  the SCST core such that it becomes available for other target drivers. This
  does not change the functionality of iscsi-scst.
* Add code in ib_srpt and qla2x00t to allow a session to be forcibly closed from
  user space.

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




git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4852 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2013-05-18 00:52:46 +00:00
Vladislav Bolkhovitin 12abbb8e40 Add ALUA command filtering
From Bart Van Assche <bvanassche@acm.org>



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4848 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2013-04-30 04:27:53 +00:00
Vladislav Bolkhovitin ef5fe3dcd0 Correct sg_next_inline() misuse.
Previously sg_next_inline() didn't check if this sg is last.



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4822 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2013-03-27 01:12:02 +00:00
Vladislav Bolkhovitin de47a40fa0 Cleanup
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4817 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2013-03-26 21:35:26 +00:00
Vladislav Bolkhovitin 02b5a95813 scst_pres: Disallow READs in exclusive access mode
Disallow READS in exclusive access mode by initiators that do not hold
the reservation. Disallow READS in exclusive access mode - all registrants
by initiators that did not register the key. This behavior is required by
SPC-4. This patch fixes a regression introduced on the trunk on June 29 2012
(r4392). PGR support in released versions, e.g. 2.2.1, works fine as far as
I know.

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



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4814 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2013-03-26 00:30:31 +00:00
Vladislav Bolkhovitin 829172f232 Some micro-optimizations by more cache friendly fields layouts
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4812 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2013-03-26 00:18:06 +00:00
Vladislav Bolkhovitin f9d666ace2 Remove tgt->finished_cmds logic
1. It doesn't work well with NPIV-like targets
2. Without it struct scst_tgt is read-mostly



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4811 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2013-03-25 23:40:44 +00:00
Vladislav Bolkhovitin 3a84cb7baf Automatic queue depth adjustment in scst_local
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4798 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2013-03-16 01:10:43 +00:00
Vladislav Bolkhovitin 61192be2eb Cleanup: there's no point to count on_free latency, because those places are behind scst_update_lat_stats()
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4793 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2013-03-14 01:54:46 +00:00
Vladislav Bolkhovitin 9ea9eec4ef Cleanups and minor fixes
Suggested by Manfred_Knick <Manfred.Knick@T-Online.de>



git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4790 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2013-03-08 21:00:09 +00:00
Vladislav Bolkhovitin eb4d0f3cb9 Fix compilation breakage on older kernels
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4789 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2013-03-07 20:12:25 +00:00
Vladislav Bolkhovitin 41ec60e529 Cleanup
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4788 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2013-03-05 21:36:25 +00:00
Vladislav Bolkhovitin c7f6a46905 Better to have those conditional defines in the head of the file, because #include's depend on them
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4787 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2013-03-05 21:25:54 +00:00