Bart Van Assche e706313fc6 scst_mem: Fix a memory leak triggered by the scst_user driver
Avoid that the following memory leak can occur:
- sgv_pool_alloc() is called with SGV_POOL_RETURN_OBJ_ON_ALLOC_FAIL
  set, with neither SGV_POOL_NO_ALLOC_ON_CACHE_MISS nor
  SGV_POOL_ALLOC_NO_CACHED set and with 'size' such that
  sgv_max_local_pages < pages_to_alloc <= pool->max_cached_pages.
- sgv_get_obj() and sgv_alloc_arrays() succeed.
- sgv_alloc_sg_entries() fails.
- sgv_get_obj() returns the SGV object with no buffers.
- A call to sgv_pool_free() adds this object to the recycle list.
- sgv_pool_alloc() is called a second time with the same parameters.
- sgv_get_obj() retrieves the object that was previously added to
  the recycle list.
- sgv_alloc_arrays() is called and overwrites the obj->sg_entries
  pointer although it still points at allocated memory, resulting
  in a memory leak.

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


git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5829 d57e44dd-8a1f-0410-8b47-8ef2f437770f
2014-10-03 12:26:14 +00:00
2014-06-20 04:10:40 +00:00
2014-09-20 06:31:43 +00:00
2011-04-19 22:56:07 +00:00
2014-10-02 03:19:10 +00:00

Overview
========

This is the SCST development repository. It contains not a single
project SCST as one can think, but a number of them, which are divided
as the following:

1. SCST core in scst/ subdirectory

2. Administration utility for SCST core scstadmin in scstadmin/

3. Target drivers in own subdirectories qla2x00t/, iscsi-scst/, etc.

4. User space programs in usr/ subdirectory, like fileio_tgt.

5. Some various docs in doc/ subdirectory.

Those subprojects are in most cases independent from each other,
although some of them depend from the SCST core. They put in the single
repository only to simplify their development, they are released
independently.

Thus, use "make all" only if you really need to build everything.
Otherwise build only what you need, like for iSCSI-SCST:

make scst scst_install iscsi iscsi_install

For more information about each subproject see their README files.


QLogic target driver
====================

QLogic target driver in qla2x00t/ is the old one, forked from qla2xxx
from kernel 2.6.26. It is not maintained anymore and not built by
default by the common Makefile targets, like "all".

You can find the latest version of this driver in git://git.qlogic.com/scst-qla2xxx.git.
It is now maintained by QLogic, hence located in the QLogic's git.

To integrate it into the SCST build tree you need:

1. Clone the QLogic git tree somewhere in your system.

2. Create in the SCST root, i.e. this directory, a subdirectory with name
qla2x00t_git

3. Symlink drivers/scsi/qla2xxx subdirectory in the cloned git tree to the
qla2x00t_git subdirectory

Thats all. Now "make all" and other common and QLA specific root
Makefile targets "magically" start working. For detail instructions how
to setup QLA target build environment see its README or HOWTO.

You can still build the old driver using qla_old* root Makefile targets.

Vladislav Bolkhovitin <vst@vlnb.net>, http://scst.sourceforge.net
Description
No description provided
Readme 33 MiB
Languages
C 90.1%
Perl 4.2%
Shell 1.8%
HTML 1.7%
Makefile 1.2%
Other 0.9%