Summary of changes between versions 3.8 and 3.9
-----------------------------------------------
- scst_vdisk: Added active attributes support to vdisk_fileio.
- iscsi-scst: Added a new link_local parameter to control whether link local
  addresses are included in the IPv6 SendTargets response, preserving existing
  behavior by including them.
- iscsi-scst: Added an internal_portal parameter to allow specified portals to
  bypass CHAP controls for both discovery and target login, preserving the
  existing behavior if unset.
- Fixed VPD inquiry handling for invalid LUNs. If the requested data cannot be
  returned, the device now correctly terminates with CHECK CONDITION as per SPC-6.
- Eliminated per-device synchronize_rcu() calls in scst_sess_free_tgt_devs(),
  significantly cutting cleanup time for large numbers of target devices.
- qla2x00t-32gbit driver: Updated from Linux kernel version v6.7 to v6.12.

The kernel versions supported by this release are:
* Kernel.org kernel versions v3.10..v6.12.
* Debian / Ubuntu kernels based on upstream kernel versions v3.10..v6.12.
* RHEL / CentOS / AlmaLinux 7.x, 8.0..8.9 and 9.0..9.5 kernels.
* UEK version 4, 5, 6 and 7 kernels.

Summary of changes between versions 3.7 and 3.8
-----------------------------------------------
- Fixed depmod warnings during the installation process.
- Resolved RPM build issues for Fedora and CentOS Stream kernels.
- Introduced selectable debug mode levels during package building by passing
  PKG_BUILD_MODE=2[release, debug, perf] as an argument to make.
- scst_disk: Implemented cluster mode support.
- scst_vdisk: Introduced the lb_per_pb_exp attribute, allowing control over
  whether READ CAPACITY 16 returns LOGICAL BLOCKS PER PHYSICAL BLOCK EXPONENT.
- scst_vdisk: Enabled exclusive opening of block devices to prevent
  concurrent usage.
- iscsi-scst: Implemented iSCSI TargetAlias support.
- iscsi-scstd: Added initiator name validation during login.
- Added the aen_disabled attribute, enabling forcible UA sending instead of
  AEN from the target port.
- Fixed UNIT ATTENTION for remote PR registrants.
- Enhanced device blocking to ensure signal-induced waiting cancellation does
  not crash the system.
- Corrected the display of the number of active commands during suspending.
- qla2x00t-32gbit driver: Rectified ABORT_TASK_SET processing.
- qla2x00t-32gbit driver: Updated from Linux kernel version v5.15 to v6.7.

The kernel versions supported by this release are:
* Kernel.org kernel versions v3.10..v6.7.
* Debian / Ubuntu kernels based on upstream kernel versions v3.10..v6.7.
* RHEL / CentOS / AlmaLinux 7.x, 8.0..8.9 and 9.0..9.3 kernels.
* UEK version 4, 5, 6 and 7 kernels.

Summary of changes between versions 3.6 and 3.7
-----------------------------------------------
- The SCST event subsystem works again reliably.
- Fixed a race condition when replacing a LUN under load.
- Fixed handling of INQUIRY/SENSE commands that comes with buffer size 0.
- The behavior of the on_alua_state_change_*() callback functions has been
  fixed such that these are also invoked for devices that are not in any
  target.
- Error handling for iscsi-scst has been improved such that data sending
  failure no longer crashes the system.
- An improvement has been added to iscsi-scstd to allow multiple addresses to
  be specified for the server to listen on.
- Fixed a hang when unregistering a SCST device due to incorrect device
  reference counter management in copy manager.
- Fixed copy manager device update (for auto_cm_assignment=1) such that it no
  longer corrupts the designator list.
- Support for scst_tgt_template detect() method has been dropped. This method
  was declared obsolete in 2015.
- The scst_user device handler has been made compatible with the
  qla2x00t-32gbit driver.
- qla2x00t-32gbit driver: NPIV support has been improved.
- qla2x00t-32gbit driver: Target mode usage has been simplified by changing
  the default qlini_mode to exclusive.
- qla2x00t-32gbit driver: Updated from Linux kernel version v5.15 to v6.1.

The kernel versions supported by this release are:
* Kernel.org kernel versions v3.10..v6.1.
* Debian / Ubuntu kernels based on upstream kernel versions v3.10..v6.1.
* RHEL / CentOS / AlmaLinux 7.x, 8.0..8.7 and 9.0..9.1 kernels.
* UEK version 4, 5, 6 and 7 kernels.

Summary of changes between versions 3.5 and 3.6
-----------------------------------------------
- Made the command processing path slightly faster by removing two atomic
  instructions from the command processing path.
- Added support for the READ and WRITE DYN RUNTIME ATTR commands and also
  for SERVICE ACTION IN(12).
- An infinite loop in the code that sets CHECK CONDITION has been fixed.
- A deadlock has been fixed in the code for assigning a device handler to a
  vdisk.
- Support for adding a vdisk_blockio device with a non-existent filename has
  been restored.
- The async mode of vdisk_fileio has been made compatible with filesystems that
  use the iomap code, e.g. XFS.
- A "INFO: rcu_sched self-detected stall" issue has been fixed.
- Support in the copy manager for auto_cm_assignment=0 has been fixed.
- Standards-compliance of the copy manager has been improved. Designators with
  a length above 20 bytes are now rejected instead of being accepted.
- The copy manager no longer suspends activity when adding a LUN.
- A bug has been fixed in the vdisk resync_size functionality.
- The tape device handler now sets 'block_shift' correctly.
- Improved the code for building a Debian package (dpkg).
- scst_local: the SCSI host number is now available in sysfs.
- scst-isert: this driver has been made compatible with
  CONFIG_HARDENED_USERCOPY.
- scst-isert: support for RDMA_CV_EVENT_ADDR_CHANGE has been added.
- scst-isert: a hang in iscsi_release() has been fixed.
- The top-level Makefile has been modified such that the qla2x00t-32gbit driver
  is built by default instead of the qla2x00t driver. The qla2x00t driver can
  be selected by passing QLA_32GBIT=no as argument to make.
- qla2x00t-32gbit driver: updated from Linux kernel version v5.10 to v5.15.
- scstadmin: the -force option is now passed to removeGroup().
- scstadmin: improved performance of the scstadmin function make_path().

The kernel versions supported by this release are:
* Kernel.org kernel versions v3.10..v5.15.
* Debian / Ubuntu kernels based on upstream kernel versions v3.10..v5.15.
* RHEL / CentOS 7.x and 8.0..8.5 kernels.
* UEK version 6, 7 and 8 kernels.

Summary of changes between versions 3.4 and 3.5
-----------------------------------------------
- Added the forward_src and forward_dst sysfs attributes. Removed
  CONFIG_SCST_FORWARD_MODE_PASS_THROUGH. In other words, forward_src mode
  is no longer global but is now configurable per target port.
- Improved forwarding of SCSI commands between H.A. nodes. The relative
  target port ID is now correct in the device identification inquiry response.
  The REPORT TARGET PORT GROUPS and SET TARGET PORT GROUPS commands are now
  processed locally instead of being forwarded.
- A subtle bug in the COMPARE AND WRITE implementation for unaligned buffers
  has been fixed (r8932).
- Support for wildcard matching for initiator names has been added to the
  copy manager.
- Unloading scst_vdisk while I/O is ongoing works again reliably.
- Support for scst_register_target(..., NULL) has been dropped. This feature
  was declared obsolete in 2011.
- The behavior of the on_alua_state_change_*() callback functions has been
  modified such that these are only invoked if the state of a local target
  port group is being modified.
- The RPM build gained support for EL mainline kernels and also for CentOSPlus.
- Performance of the ib_srpt driver has been improved by switching from a large
  number of kernel threads to one workqueue per CPU core.
- Support for MOFED 5 has been added in the isert-scst and ib_srpt drivers.
- Network namespace support has been added in the iscsi-scst driver. This makes
  it possible to run iscsi-scst inside a container that uses another network
  namespace than the default.
- Fixed a hard to trigger race condition in the iSCSI connection shutdown code.
- Fixed a memory leak in conn_free() in iscsi-scstd.
- Large RDMA transfers no longer trigger QP termination with the ib_srpt driver.
- Handling of iWARP logins has been fixed in ib_srpt.
- Added a new driver, qla2x00t-32gbit, that supports 32 Gb/s QLogic FC adapters.
- Updated the qla2x00t-32gbit to the version that is available in Linux kernel
  v5.9 from v5.4.
- The scst_user device handler has been made compatible with the ib_srpt
  zero-copy mode.
- scstadmin has been made compatible again with older Perl interpreters.

The kernel versions supported by this release are:
* Kernel.org kernel versions v2.6.31..v5.10.
* Debian / Ubuntu kernels based on upstream kernel versions v2.6.31..v5.10.
* RHEL / CentOS 6.x, 7.x and 8.0..8.3 kernels.
* UEK version 4, 5 and 6 kernels.

Summary of changes between versions 3.3 and 3.4
-----------------------------------------------
- I/O keeps running at full speed if a LUN is added or removed and also if
  a device is added or removed.
- Added support for asynchronous zero-copy file I/O. This change improves
  vdisk_fileio performance significantly. See also the documentation of the
  'async' and 'o_direct' attributes.
- Added support for the SCSI WRITE AND VERIFY command.
- Reworked the build infrastructure such that switching between debug, release
  and perf modes is now much faster.
- Dropped support for RHEL 5.
- Dropped support for procfs.
- Dropped support for I/O context sharing. This mechanism improved CFQ
  performance.
- Fixed a number of small bugs.

Summary of changes between versions 3.2 and 3.3
-----------------------------------------------
- Support for a new build method ("make dpkg").
- Support for the latest kernels has been added, up to and including
  Linux kernel v4.19.
- A much more powerful latency measurement infrastructure has been added.
- Support for asynchronous buffered and direct I/O has been added to scst_vdisk.
- H.A. support has been improved.
- SCSI pass-through support is now compatible with Linux kernel versions 4.11
  and later.
- ACA support has been added.
- The scst_user driver is now compatible with usercopy hardening.
- "make install" is now compatible with SELinux.

Summary of changes between versions 3.1 and 3.2
-----------------------------------------------
- Updated SCST to SPC-4.
- Added the CONFIG_SCST_FORWARD_MODE_PASS_THROUGH mode.
- Added support for command polling. See also the poll_us attribute.
- ib_srpt: Added link_layer and port_id sysfs attributes.
- ib_srpt: Reduced CPU load caused by stopping a large number of sessions.
- isert: Fixed multiple bugs.
- scstadmin gained support for saving and restoring copy manager attributes.
- scstadmin -attributes behavior for multiple attributes has been fixed.
- scstadmin no longer tries to save the dif_checks_failed counter.

Summary of changes between versions 3.0 and 3.1
-----------------------------------------------
- vdisk_nullio: the "read_zero" attribute has been added.
- scst_vdisk: LBPRZ now follows limits.discard_zeroes_data.
- scst core: support for 64-bit LUNs has been added. This requires a Linux
  kernel that supports 64-bit LUNs.
- A new kernel module parameter, scst_forcibly_close_sessions, controls whether
  or not attempting to remove an access control group with one or more active
  sessions succeeds or fails with -EBUSY.
- scst_vdisk: the EUI-64 and NAA IDs are now configurable.
- scst_vdisk: the device name length has been increased from 16 to 64
  characters for OpenStack.
- The SCSI-passthrough code has been reworked such that SCSI pass-through
  works with kernel versions >= 2.6.30 without patching the kernel.
- T10-PI support has been added to the SCST core.
- Counters have been added to keep track of unaligned I/O.
- The "forwarding" sysfs attribute has been added.
- Support for iSER has been added.
- SCST command thread creation has been made faster.
- Support for synchronizing persistent reservation information between cluster
  nodes via the DLM has been added.
- Explicit ALUA support has been added.
- EXTENDED COPY support has been added.

Summary of changes between versions 2.1.0 and 3.0
-------------------------------------------------

 - Update to kernels up to 3.3

 - Zero copy read side FILEIO implemented

 - New initialization scripts implemented

 - Support for rotational attribute added

 - Bug fixes and other improvements


Summary of changes between versions 2.0.0 and 2.1.0
---------------------------------------------------

 - Update to kernels up to 3.0

 - Support for implicit ALUA added

 - Change T10 ID and USN generations to get the random part be CRC32
   from the device name in the first 8 characters as many MPIO
   implementations expect

 - Assigning CPU affinity to threads and connections added

 - Splitting of read/write CDBs for pass-through devices with sg_tablesize
   and max_sectors limitations added to scst_disk

 - Support for thin provisioning commands added in scst_vdisk

 - Fix possible incorrect atomic context on exec stages

 - Limit max tasklet commands via scst_max_tasklet_cmd global attribute
   to prevent possible starvation under heavy load and in some cases
   improve performance

 - Autogenerated SCST target names made deprecated

 - Custom parse improvements

 - Logging improvements

 - Bug fixes and other improvements


Summary of changes between versions 1.0.1 and 1.0.2
---------------------------------------------------

 - Support for bidirectional transfers added

 - REQUEST SENSE now can return the most recent sense

 - READ CAPACITY(16) now reports number of logical blocks per physical
   block

 - Parameters scst_max_cmd_mem and scst_max_dev_cmd_mem as well as
   vdisk's parameters num_threads and scst_vdisk_ID made visible through
   /sys/module/scst and /sys/module/scst_vdisk correspondingly

 - Shared between devices SGV caches were implemented

 - Possibilities to operate with single size entries as well as control of
   the reclamation time added to the SGV cache

 - Issues cased by change of cdb_len to unsigned fixed.

 - INIT ELEMENT STATUS WRANGE added to the list of known commands.

 - Races on scst_user devices cleanup fixed

 - Implemented abort on timeout of stuck in tgt hardware commands

 - Automatic sessions reassignment implemented with corresponding atomic
   management commands added

 - Generation of INQUIRY DATA HAS CHANGED Unit Attention or AEN for
   changed devices during automatic sessions reassignment added

 - Requeue global Unit Attentions on delivery failure added

 - Update for 2.6.30

 - Other bug fixes and cleanups


Summary of changes between versions 1.0.0 and 1.0.1
---------------------------------------------------

 - Support for descriptor sense format added

 - Makefiles made more packager friendly (Ruben Laban)

 - Support for variable length CDB added

 - Support for Async. Event Notifications added

 - Implemented "plug-and-play" notifications about new devices in security
   groups, deleted devices from security groups and changed size of a
   device. They can be delivered either through AENs (if supported), or
   Unit Attentions.

 - New command "resync_size" added to scst_vdisk proc interface to tell
   scst_vdisk to reread size of the corresponding device after it was
   changed

 - Added pattern matching for initiator names in SCST access control
   (Gennadiy Nerubayev)

 - Now only sent for execution commands are counted to wait for in TM
   commands, which made processing of TM commands faster

 - Now devices blocked only in reset TM commands. ABORTs, etc. now done
   without devices blocking.

 - scst_unregister_session_ex() removed, since there are no users of it

 -  New functions added to scst_user interface:

    * SCST_USER_UNREGISTER_DEVICE - to unregister device, flush mem reuse
     (SGV) cache and send UCMD_STATE_ON_CACHE_FREEING notifications for all
     freed buffers to the user space handler. Simple device close doesn't
     allow that, so all the cached buffers might look as "leaked" from the
     user space handler POV.

    * SCST_USER_FLUSH_CACHE - to flush mem reuse (SGV) cache and send
      UCMD_STATE_ON_CACHE_FREEING notifications for all freed buffers to
      the user space handler

    * SCST_USER_DEVICE_CAPACITY_CHANGED - to notify SCST core that the
      corresponding device has changed its capacity

 - Clustering of scst_user pages added

 - Added autogenerated SCSI SN in vdisk handler

 - Fixed race in scst_user, which could have lead to usage of already freed
   command. A misbehaving user space handler could have made ucmd to get
   dead immediately after the lock is released and that is caught
   now.

 - Support for CentOS 5.2 added (Bart Van Assche)

 - In scst_vdisk new module parameter num_threads added to specify a
   number of threads for each vdisk/vcdrom. Default is 5.

 - Access control docs updated

 - Set memory limits according to LOWMEM, not TOTALMEM

 - Major performance increase working with disk based storage

 - Now task_mgmt_fn() callback called for TARGET RESET and NEXUS LOSS
   functions only once for tgt_dev, which belongs to the session, from
   which the corresponding request came

 - SGV cache related parameters moved from scst.h to scst_sgv.h

 - Log level mgmt_minor for messages like "Warning: expected transfer
   length X for opcode Y" changed to be disabled by default

 - Added possibility to coexist if both target driver and dev handler
   need custom memory allocation. Direct consequences: (1) scst_local
   can work with scst_user's devices and (2) scst_user now compatible
   with iscsi-scst if put_page_callback patch not applied.

 - Depecated scst_cmd_get_tgt_resp_flags() removed

 - SWP and TAS parameters made changeable in vdisk handler

 - External interface changed to fix usage of in_atomic(). Now target
   drivers and dev handlers need to explicitly supply preferred execution
   context in scst_cmd_done() and scst_tgt_cmd_done()

 - Handling of internal REQUEST SENSE fixed.

 - Fixed SAM violation (HiSup bit must be set in INQUIRY response)

 - Fixed handling of VERIFY commands that comes with BYTCHK unset

 - Handling of double reset UAs made more reliable

 - A lot of kernel style, checkpatch and sparse fixes (Bart Van Assche)

 - In-kernel build integration (Bart Van Assche)

 - Update for kernels up to 2.6.29

 - A lot of fixes and cleanups (many people)


Summary of changes between versions 0.9.5 and 1.0.0
---------------------------------------------------

 - Added per-device memory limit and new scst.ko module parameter scst_max_dev_cmd_mem

 - Sending REQUEST SENSE fixed

 - Fixed possible incorrect command's retry if double RESET UA is detected.

 - Fixed __exit misuse, when such functions called from __init functions.

 - "RECEIVE DIAGNOSTIC RESULTS" command handling fixed

 - Obtaining device queue parameters in scst_obtain_device_parameters()
   changed to handle NOT READY sense

 - Added possibility to create virtual removable devices

 - Updated to work on 2.6.25.x

 - Fixed READ POSITION command handling

 - TM processing made independent from other TM commands (before it was serialized)

 - Sense buffer made dynamic

 - Clustering statistic added

 - Updated to work on 2.6.24.x

 - Version protection added

 - Processing latency measurement facility added

 - Sessions registration/unregistration made independent from other activities

 - Major performance improvements

 - Major task management handling improvements

 - Updated to work on 2.6.23.x

 - Switching between debug<->performance<->release builds added

 - scsi_tgt renamed to scst, scsi_tgt.h renamed to scst.h

 - Updated to work on 2.6.22.x

 - Semaphores converted to mutexes

 - 64-bit platform cleanups

 - Added limit on maximum queued on a device commands

 - Threads made per-device

 - User space device handler added

 - New SGV cache low memory management backend with memory flow control
   facility was implemented, thanks to Krzysztof Blaszkowski.

 - FILEIO was renamed to VDISK. BLOCKIO added to it, thanks to Ross S. W.
   Walker and Vu Pham.

 - Updated to work on 2.6.20.x, no update for 2.6.21.x isn't needed

 - Internal locking and execution context were reimplemnted. As some of
   the results now FILEIO has >1 IO threads and implemented full support
   for SCSI task attributes (SIMPLE, ORDERED, etc.).

 - Ability to have per-target default security groups added.

 - Updated to work on 2.6.19.x, thanks to Ming Zhang.

 - Internal threads management reimplemented based on kthread*() API,
   thanks to Ming Zhang.

 - /proc implementation moved to seq_*() library, thanks to Ming Zhang.
   Target drivers need to be updated accordingly.

 - Linear search in the LUN translation routines scst_translate_lun()
   and scst_mgmt_translate_lun() was changed to a hash-based one.

 - Building from the Linux kernel tree updated, inside kernel building fixed.

 - Support for CPU cache flushing before doing DMA to target devices added.

 - A lot of cleanups, bug fixes and improvements.

Summary of changes between versions 0.9.4 and 0.9.5
---------------------------------------------------

 - Fixed many found task management related problems, especially in the
   RESETs area. CONFIG_SCST_DEBUG_TM compilation option added (see README).

 - Updated to work on kernels version 2.6.18+.

 - FILEIO_ONLY added. If it's defined, there is no need to patch the
   kernel, but pass-through modules (scst_disk, scst_tape, etc.) are not
   supported).

 - Fixed problems with big amount of LUNs (500+).

 - Timer-based retries for targets after SCST_TGT_RES_QUEUE_FULL status
   implemented.

 - More intelligent IO flow control implemented.

 - Fixed broken CDROM FILEIO. Before that it always reported
   "No medium found"

 - Data synchronization fixes and improvements in FILEIO. Added FUA
   support.

 - Fixed READ(6)/WRITE(6) CDB decoding for block devices.
   This bug prevented FreeBSD initiators from working.

 - Implemented sgv_pool. It is mempool-like interface, which caches
   built SG-vectors in order not to rebuild them again for every
   subsequent command, so saves performance price of building
   SG-vectors, including pages allocation, and of additional context
   switches.

 - For ABORTED commands xmit_response() now called. A target driver
   should recognized such commands using new function
   scst_cmd_aborted(). Also there are some other cleanups, improvements
   and interfaces changes that affect target drivers and dev handlers.
   You can find their full list by diff'ing scsi_tgt.h between versions
   0.9.4 and 0.9.5.

 - Function alloc_data_buf() added to struct scst_tgt_template as well
   as data_buf_tgt_alloc added to struct scst_cmd to allow a target
   driver implement own memory management handler (by Arne Redlich).

 - Exported symbols are now not GPL'ed

 - Various cleanups and a lot of bug fixes.

Summary of changes between versions 0.9.3 and 0.9.4
---------------------------------------------------

 - Support for 2.4 kernels has been removed

 - Added on_free_cmd() callback for dev handlers

 - Fixed BUG() on task aborts.

 - Fixed WCE (Write Cache Enabled) handling in FILEIO (by Ming Zhang)

 - Minor cleanups and bug fixes.

Summary of changes between versions 0.9.3-pre4 and 0.9.3
--------------------------------------------------------

 - Fixed IO errors on initiators (return code 20008) under considerable
   load, because of returned BUSY status. Now QUEUE FULL status returned
   instead.

 - Fixed "deadlock" on sessions creation.

 - Fixed support for > 2TB storage device in FILEIO handler (by Ming Zhang)

 - NULLIO added to FILEIO handler (by Ming Zhang)

 - Commands serialization now per-(session, device), i.e. tgt_dev.

 - Minor cleanups and bug fixes

Summary of changes between versions 0.9.3-pre2 and 0.9.3-pre4
-------------------------------------------------------------

 - Sessions registration and unregistrations reimplemented. The
   interface with target drivers changed (made much more simple, but
   incompatible).

 - Some kmalloc()'s converted to SLAB caches (by Nathaniel Clark)

 - Too low timeouts for management operations in scst_disk were
   increased

 - Cleanups and bug fixes, including several race-based crashes

Summary of changes between versions 0.9.3-pre1 and 0.9.3-pre2
-------------------------------------------------------------

 - Task management was considerably redone. Particularly, now the result
   of ABORT TASK is returned to remote initiator immediately, except if
   the result of the aborted command is already started to be sent.

 - Per-session commands serialization implemented as part of "device
   blocking" cleanup.

 - UA generating after MODE SELECT and LOG SELECT implemented

 - CONFIG_SCST_STRICT_SERIALIZING compile-time option added for those who need
   the most robust task management and willing to pay some performance cost for
   that (see README)

 - IRQ spinlocks were replaced by BH ones, where appropriate.

 - Ability to change ISO image on the fly in CDROM FILEIO module added

 - Cleanups and bug fixes

Summary of changes between versions 0.9.2 and 0.9.3-pre1
--------------------------------------------------------

 - Sophisticated per-initiator access and devices visibility management added
   (different initiators now could see different set of devices with
   different permissions)

 - FILEIO dev handler was reimplemented in most areas, including:

    * Management interface via /proc added

    * Various defects using devices/files larger 2Gb were fixed. Thanks
      to Mark Buechler.

    * New CDROM FILEIO handler added.

    * Now per-session threads created to improve concurrent performance.

    * New flags added that allow using virtual devices as read only,
      with write through caching or in O_DIRECT mode.

    * Task management support added.

 - RAID controller (type 0xC) dev handler added.

 - SCSI processor (type 3) dev handler added.

 - Sessions unregistration contexts cleanup.

 - Dev handler's on_free_cmd() was dropped. Target driver's flag
   "thread_per_session" was dropped as well.

 - Internal locking partially redone.

 - A lot of stability/bug fixes, cleanups and performance improvements.

Summary of changes between versions 0.9.1 and 0.9.2
---------------------------------------------------

 - 2.6 support, developed and tested on 2.6.7.

 - FILEIO/BLKDEV virtual disk device handler added. See main README for
   details.

 - /proc updates, "trace_log_level" entry added to change traced
   events on the fly.

 - Some internal interfaces changed, see the documentation.

 - Device handlers' source code layout changed, all device handlers
   live in one subdirectory now.

 - Crash on memory allocation failure while building SG data vector
   fixed.

 - Other minor fixes

Summary of changes between versions 0.9.0a and 0.9.1
----------------------------------------------------

 - scst_debug.* files are also installed together with scsi_tgt.h
   (required by QLA2x00 target and could be useful for other target
   drivers)

 - CDB length for unknown commands (e.g. vendor ones) is now determined
   from CDB

 - Race with the commands serialization on one drive fixed

 - Cleanup
