Merge branch 'svn-trunk'

This commit is contained in:
Bart Van Assche
2018-01-31 20:21:45 -08:00
26 changed files with 1010 additions and 26 deletions
+73 -16
View File
@@ -58,7 +58,8 @@ REVISION ?= $(shell if svn info >/dev/null 2>&1; \
then svn info | sed -n 's/^Revision:[[:blank:]]*//p';\
else git log | grep -c ^commit; \
fi)
VERSION = $(shell echo -n "$$(sed -n 's/^\#define[[:blank:]]SCST_VERSION_NAME[[:blank:]]*\"\([^-]*\).*\"/\1/p' scst/include/scst_const.h).$(REVISION)")
VERSION := $(shell echo -n "$$(sed -n 's/^\#define[[:blank:]]SCST_VERSION_NAME[[:blank:]]*\"\([^-]*\).*\"/\1/p' scst/include/scst_const.h).$(REVISION)")
DEBIAN_REVISION=1
help:
@echo " all : make all"
@@ -407,25 +408,36 @@ fcst_clean:
fcst_extraclean:
cd $(FCST_DIR) && $(MAKE) extraclean
scst-dist-gzip:
# Make an SCST source code archive. $(1) is the tar compression option, $(2)
# is the tar filename compression suffix, $(3) is the version and $(4) is the
# source file filter.
make-scst-dist = \
[ -n "$(1)" ] && [ -n "$(2)" ] && [ -n "$(3)" ] && \
[ -n "$(4)" ] && \
name=scst && \
mkdir $${name}-$(VERSION) && \
mkdir "$${name}-$(3)" && \
{ \
if [ -e qla2x00t_git ]; then \
scripts/list-source-files | grep -v ^qla2x00t/; \
( dir="$$PWD" && cd qla2x00t_git && \
"$$dir/scripts/list-source-files" ) | \
sed 's,^,qla2x00t_git/,'; \
else \
scripts/list-source-files; \
fi | \
grep -E '^doc/|^fcst/|^iscsi-scst/|^Makefile|^qla2x00t(|_git)/|^scst.spec|^scst/|^scst_local/|^srpt/|^usr/|^scstadmin/'|\
{ \
if [ -e qla2x00t_git ]; then \
scripts/list-source-files | grep -v ^qla2x00t/; \
( dir="$$PWD" && cd qla2x00t_git && \
"$$dir/scripts/list-source-files" ) | \
sed 's,^,qla2x00t_git/,'; \
else \
scripts/list-source-files; \
fi && \
if [ -e debian/changelog ]; then echo debian/changelog; fi; \
} | \
$(4) | \
tar -T- -cf- | \
tar -C $${name}-$(VERSION) -xf-; \
tar -C "$${name}-$(3)" -xf-; \
} && \
rm -f $${name}-$(VERSION).tar.bz2 && \
tar -cjf $${name}-$(VERSION).tar.bz2 $${name}-$(VERSION) && \
rm -rf $${name}-$(VERSION)
rm -f "$${name}-$(3).tar.$(2)" && \
tar -c$(1) -f "$${name}-$(3).tar.$(2)" "$${name}-$(3)" && \
rm -rf "$${name}-$(3)"
scst-dist-gzip:
$(call make-scst-dist,j,bz2,$(VERSION),grep -E '^doc/|^fcst/|^iscsi-scst/|^Makefile|^qla2x00t(|_git)/|^scst.spec|^scst/|^scst_local/|^srpt/|^usr/|^scstadmin/')
scst-rpm:
name=scst && \
@@ -469,6 +481,50 @@ rpm:
find -name '*.rpm'; \
fi
debian/changelog: debian/changelog.in
sed 's/%{scst_version}/$(VERSION)-$(DEBIAN_REVISION)/' \
<debian/changelog.in >debian/changelog
../scst_$(VERSION).orig.tar.xz: debian/changelog Makefile
$(call make-scst-dist,J,xz,$(VERSION),cat) && \
mv "scst-$(VERSION).tar.xz" "$@"
dpkg: ../scst_$(VERSION).orig.tar.xz
@if [ -z "$$DEBEMAIL" ]; then \
echo "Error: \$$DEBEMAIL has not been set"; \
false; \
fi && \
if [ -z "$$DEBFULLNAME" ]; then \
echo "Error: \$$DEBFULLNAME has not been set"; \
false; \
fi && \
sed 's/%{scst_version}/$(VERSION)/' \
<debian/scst.dkms.in >debian/scst.dkms && \
output_files=( \
../iscsi-scst_$(VERSION)-$(DEBIAN_REVISION)_amd64.deb \
../scst-dev_$(VERSION)-$(DEBIAN_REVISION)_all.deb \
../scst-dkms_$(VERSION)-$(DEBIAN_REVISION)_all.deb \
../scst_$(VERSION)-$(DEBIAN_REVISION).debian.tar.xz \
../scst_$(VERSION)-$(DEBIAN_REVISION).dsc \
../scst_$(VERSION)-$(DEBIAN_REVISION)_amd64.build \
../scst_$(VERSION)-$(DEBIAN_REVISION)_amd64.buildinfo \
../scst_$(VERSION)-$(DEBIAN_REVISION)_amd64.changes \
../scst_$(VERSION)-$(DEBIAN_REVISION)_amd64.deb \
../scstadmin_$(VERSION)-$(DEBIAN_REVISION)_amd64.deb \
) && \
rm -f "$${output_files[@]}" && \
if false; then \
dpkg-buildpackage -uc -us -ui -jauto; \
else \
debuild -uc -us -ui -jauto --lintian-opts --profile debian; \
fi && \
mkdir -p dpkg && \
for f in "$${output_files[@]}" ../scst_$(VERSION).orig.tar.xz; do\
mv $$f dpkg || true; \
done && \
echo "Output files:" && \
ls -l dpkg
release-archive:
$(MAKE) 2release
for m in $$(find -name Makefile | \
@@ -546,4 +602,5 @@ disable_proc: extraclean
scst_local scst_local_install scst_local_uninstall scst_local_clean scst_local_extraclean \
mvsas mvsas_install mvsas_uninstall mvsas_clean mvsas_extraclean \
fcst fcst_install fcst_uninstall fcst_clean fcst_extraclean \
scst-rpm scst-dkms-rpm dpkg \
2perf 2release 2debug enable_proc disable_proc
+8
View File
@@ -0,0 +1,8 @@
SCST source code
----------------
SCST source code is available at https://sourceforge.net/p/scst/svn/HEAD/tree/.
-- Bart Van Assche <bvanassche@acm.org> Fri, 12 Jan 2018 20:14:02 -0800
+5
View File
@@ -0,0 +1,5 @@
scst (%{scst_version}) unstable; urgency=medium
* Initial release.
-- Bart Van Assche <bvanassche@acm.org> Fri, 12 Jan 2018 20:14:02 -0800
+1
View File
@@ -0,0 +1 @@
9
+47
View File
@@ -0,0 +1,47 @@
Source: scst
Section: net
Priority: optional
Maintainer: Vladislav Bolkhovitin <vst@vlnb.net>
Build-Depends: debhelper (>= 9),
quilt,
dpkg-dev (>= 1.13.19)
Standards-Version: 4.1.1
Homepage: http://scst.sourceforge.net
Package: scst
Architecture: any
Depends: ${misc:Depends}
Conflicts: scst-dkms
Description: Generic SCSI target framework
SCST is a SCSI target framework that allows local block device data to be
accessed over a storage network via the iSCSI, FC, SRP or FCoE protocol.
This package contains the SCST kernel modules.
Package: scst-dkms
Architecture: all
Depends: ${misc:Depends}, dkms
Conflicts: scst
Description: Generic SCSI target framework
SCST is a SCSI target framework that allows local block device data to be
accessed over a storage network via the iSCSI, FC, SRP or FCoE protocol.
This package contains the source code of the SCST kernel modules. DKMS will
convert this source code into binary kernel modules.
Package: scst-dev
Architecture: all
Depends: ${misc:Depends}
Description: SCST development header and symbol files
Files needed to build out-of-tree SCST kernel modules.
Package: scstadmin
Architecture: any
Depends: ${misc:Depends}, lsb-base, perl
Description: SCST admininstration tool
scstadmin is a tool that uses the SCST sysfs interface to query and modify
SCST settings.
Package: iscsi-scst
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}
Description: iSCSI user space software for SCST
This package contains two executables, namely iscsi-scst-adm and iscsi-scstd.
+425
View File
@@ -0,0 +1,425 @@
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Upstream-Name: SCST
Source: <https://sourceforge.net/p/scst/svn/HEAD/tree/trunk/>
Files: *
Copyright: 2008-2017, Bart Van Assche <bvanassche@acm.org>
2004-2017, Vladislav Bolkhovitin <vst@vlnb.net>
License: GPL-2+
Files: Makefile
fcst/Makefile
fcst/fcst.h
fcst/ft_cmd.c
fcst/ft_scst.c
fcst/ft_sess.c
ibmvstgt/src/orig/2.6.35/scsi_transport_srp.c
ibmvstgt/src/orig/2.6.36/scsi_transport_srp.c
ibmvstgt/src/scsi_transport_srp.c
mpt/Makefile
mvsas_tgt/Makefile
mvsas_tgt/mv_64xx.c
mvsas_tgt/mv_64xx.h
mvsas_tgt/mv_94xx.c
mvsas_tgt/mv_94xx.h
mvsas_tgt/mv_chips.h
mvsas_tgt/mv_defs.h
mvsas_tgt/mv_init.c
mvsas_tgt/mv_sas.c
mvsas_tgt/mv_sas.h
mvsas_tgt/mv_spi.c
mvsas_tgt/mv_spi.h
mvsas_tgt/mv_tgt.c
mvsas_tgt/mv_tgt.h
qla2x00t/qla2x00-target/Makefile
qla2x00t/qla2x00-target/qla2x00t.c
qla2x00t/qla2x00-target/qla2x00t.h
scripts/blockdev-perftest
scripts/filter-trace-entry-exit
scripts/generate-kernel-patch
scripts/generate-patched-kernel
scripts/generate-scst-patch
scripts/list-double-blank-lines
scripts/monitor-memory-usage
scripts/rebuild-rhel-kernel-rpm
scripts/run-regression-tests
scripts/specialize-patch
scst-dkms.spec.in
scst.spec.in
usr/Makefile
usr/fileio/Makefile
usr/fileio/common.c
usr/fileio/common.h
usr/fileio/fileio.c
usr/include/*
Copyright: 2008-2017, Bart Van Assche <bvanassche@acm.org>
2012, Chetan Loke <loke.chetan@gmail.com>
2010, Cisco Systems, Inc
2007, FUJITA Tomonori <tomof@acm.org>
2006-2008, Jacky Feng <jfeng@marvell.com>
2004-2005, Leonid Stoljar
2008, Marvell <kewei@marvell.com>
2006, Nathaniel Clark <nate@misrule.us>
2007, Red Hat, Inc
2007-2017, SanDisk Corporation
2004-2017, Vladislav Bolkhovitin <vst@vlnb.net>
License: GPL-2
Files: ibmvstgt/src/SLES-10-SP3-ibmvscsis.c
ibmvstgt/src/ibmvscsi.h
ibmvstgt/src/ibmvstgt.c
ibmvstgt/src/libsrp.c
ibmvstgt/src/orig/2.6.35/ibmvstgt.c
ibmvstgt/src/orig/2.6.35/libsrp.c
ibmvstgt/src/orig/2.6.35/scsi_tgt_if.c
ibmvstgt/src/orig/2.6.35/scsi_tgt_if.h
ibmvstgt/src/orig/2.6.35/scsi_tgt_lib.c
ibmvstgt/src/orig/2.6.35/scsi_transport_fc.c
ibmvstgt/src/orig/2.6.36/ibmvstgt.c
ibmvstgt/src/orig/2.6.36/libsrp.c
ibmvstgt/src/orig/2.6.36/scsi_tgt_if.c
ibmvstgt/src/orig/2.6.36/scsi_tgt_if.h
ibmvstgt/src/orig/2.6.36/scsi_tgt_lib.c
ibmvstgt/src/orig/2.6.36/scsi_transport_fc.c
ibmvstgt/src/scsi_transport_fc.c
ibmvstgt/src/viosrp.h
mpt/mpt_scst.c
qla2x00t/qla2x_tgt.h
qla2x00t/qla2x_tgt_def.h
Copyright: 2010, Bart Van Assche <bvanassche@acm.org>
2005, Beijing Soul Technology Co., Ltd
2003-2005, Dave Boutcher (boutcher@us.ibm.com) IBM Corp
2005-2006, FUJITA Tomonori <tomof@acm.org>
1994-2003, IBM Corporation
2004-2007, James Smart, Emulex Corporation
2002-2004, LSI Logic Corporation
2004-2005, Leonid Stoljar
2005, Mike Christie <michaelc@cs.wisc.edu>
2006, Nathaniel Clark <nate@misrule.us>
2007-2017, SanDisk Corporation
2003, Silicon Graphics, Inc
2004-2017, Vladislav Bolkhovitin <vst@vlnb.net>
License: GPL-2+
Files: debian/*
Copyright: 2018, Bart Van Assche <bvanassche@acm.org>
License: GPL-2+
Files: iscsi-scst/*
Copyright: 2002-2003, Ardis Technologies <roman@ardistech.com>
2007-2014, Fusion-io, Inc
2001-2003, InterOperability Lab (IOL)
2012, Riccardo Bicelli
2012, Riccardo Bicelli <r.bicelli@gmail.com>
2007-2017, SanDisk Corporation
2007-2017, Vladislav Bolkhovitin
2004, Xiranet Communications GmbH <arne.redlich@xiranet.com>
License: GPL-2
Files: iscsi-scst/AskingQuestions
iscsi-scst/ChangeLog
iscsi-scst/Makefile
iscsi-scst/Makefile_user_space_only
iscsi-scst/README
iscsi-scst/README.iser
iscsi-scst/README.iser_ofed
iscsi-scst/README_in-tree
iscsi-scst/ToDo
iscsi-scst/doc/*
iscsi-scst/etc/*
iscsi-scst/include/iscsit_transport.h
iscsi-scst/include/isert_scst.h
iscsi-scst/kernel/Kconfig
iscsi-scst/kernel/Makefile.in-kernel
iscsi-scst/kernel/iscsit_transport.c
iscsi-scst/kernel/patches/put_page_callback-2.6.16.29.patch
iscsi-scst/kernel/patches/put_page_callback-2.6.18.1.patch
iscsi-scst/kernel/patches/put_page_callback-2.6.21.1.patch
iscsi-scst/kernel/patches/put_page_callback-2.6.22.patch
iscsi-scst/kernel/patches/put_page_callback-2.6.23.patch
iscsi-scst/kernel/patches/put_page_callback-2.6.24.patch
iscsi-scst/kernel/patches/put_page_callback-2.6.25.patch
iscsi-scst/kernel/patches/rhel/put_page_callback-2.6.18.patch
iscsi-scst/kernel/patches/rhel/put_page_callback-rhel5.patch
iscsi-scst/usr/sha1.h
Copyright: 2007-2017, Vladislav Bolkhovitin
License: GPL-2
Files: iscsi-scst/conftest/*
Copyright: 2015-2018, Bart Van Assche
License: GPL-2
Files: iscsi-scst/kernel/config.c
iscsi-scst/kernel/digest.c
iscsi-scst/kernel/digest.h
iscsi-scst/kernel/event.c
iscsi-scst/kernel/nthread.c
iscsi-scst/kernel/param.c
iscsi-scst/usr/config.c
iscsi-scst/usr/ctldev.c
iscsi-scst/usr/event.c
iscsi-scst/usr/iscsi_adm.c
iscsi-scst/usr/message.c
iscsi-scst/usr/param.c
iscsi-scst/usr/param.h
Copyright: 2004-2005, FUJITA Tomonori <tomof@acm.org>
2007-2017, SanDisk Corporation
2007-2017, Vladislav Bolkhovitin
2004-2006, Xiranet Communications GmbH
2004, Xiranet Communications GmbH <arne.redlich@xiranet.com>
License: GPL
Files: iscsi-scst/COPYING
iscsi-scst/usr/isns.c
iscsi-scst/usr/isns_proto.h
iscsi-scst/usr/md5.c
iscsi-scst/usr/sha1.c
Copyright: Alan Smithee
Andrew McDonald <andrew@mcdonald.org.uk>
Cryptoapi developers
2006, FUJITA Tomonori <tomof@acm.org>
1989-1991, Free Software Foundation, Inc
2002, James Morris <jmorris@intercode.com.au>
Jean-Francois Dive <jef@linuxbe.org>
2007-2017, SanDisk Corporation
2007-2017, Vladislav Bolkhovitin
License: GPL-2+
Files: iscsi-scst/kernel/isert-scst/Kconfig
iscsi-scst/kernel/isert-scst/Makefile.in-kernel
iscsi-scst/kernel/isert-scst/TODO
iscsi-scst/kernel/isert-scst/iser.h
iscsi-scst/kernel/isert-scst/iser_buf.c
iscsi-scst/kernel/isert-scst/iser_datamover.c
iscsi-scst/kernel/isert-scst/iser_datamover.h
iscsi-scst/kernel/isert-scst/iser_global.c
iscsi-scst/kernel/isert-scst/iser_hdr.h
iscsi-scst/kernel/isert-scst/iser_pdu.c
iscsi-scst/kernel/isert-scst/iser_rdma.c
iscsi-scst/kernel/isert-scst/isert.c
iscsi-scst/kernel/isert-scst/isert.h
iscsi-scst/kernel/isert-scst/isert_login.c
Copyright: 2013-2014, Mellanox Technologies
2013-2014, Yan Burman <yanb@mellanox.com>
License: GPL-2+
Files: iscsi-scst/usr/md5.h
Copyright: 1993, Colin Plumb
Ian Jackson
License: public-domain
Files: qla_isp/*
Copyright: 1997-2009, Matthew Jacob
2007-2008, Open-E Inc
2007, Stanislaw Gruszka
License: BSD-2-clause
Files: qla_isp/ChangeLog
qla_isp/FIRMWARE.readme
qla_isp/Makefile
qla_isp/README
qla_isp/README.scst
qla_isp/TAGS
qla_isp/linux-2.6/*
Copyright: 2006-2008, Matthew Jacob
License: BSD-2-clause
Files: qla_isp/firmware/asm_1000.h
qla_isp/firmware/asm_1040.h
qla_isp/firmware/asm_1080.h
qla_isp/firmware/asm_12160.h
qla_isp/firmware/asm_2100.h
qla_isp/firmware/asm_2200.h
qla_isp/firmware/asm_2300.h
qla_isp/firmware/asm_2322.h
qla_isp/firmware/asm_2400.h
qla_isp/firmware/asm_2500.h
Copyright: 1995-2008, Qlogic, Inc
License: BSD-3-clause
Files: qla_isp/linux/isp_linux.c
Copyright: 1997-2009, Matthew Jacob
License: BSD-2-clause or GPL
Files: scst/*
Copyright: 2013-2017, SanDisk Corporation
License: GPL-2+
Files: scst/Makefile
scst/include/backport.h
scst/include/scst.h
scst/include/scst_const.h
scst/include/scst_debug.h
scst/include/scst_sgv.h
scst/include/scst_user.h
scst/src/Makefile
scst/src/dev_handlers/Makefile
scst/src/dev_handlers/scst_cdrom.c
scst/src/dev_handlers/scst_changer.c
scst/src/dev_handlers/scst_disk.c
scst/src/dev_handlers/scst_modisk.c
scst/src/dev_handlers/scst_processor.c
scst/src/dev_handlers/scst_raid.c
scst/src/dev_handlers/scst_tape.c
scst/src/dev_handlers/scst_user.c
scst/src/dev_handlers/scst_vdisk.c
scst/src/scst_debug.c
scst/src/scst_dlm.c
scst/src/scst_dlm.h
scst/src/scst_lib.c
scst/src/scst_main.c
scst/src/scst_mem.c
scst/src/scst_mem.h
scst/src/scst_module.c
scst/src/scst_no_dlm.c
scst/src/scst_pres.c
scst/src/scst_pres.h
scst/src/scst_priv.h
scst/src/scst_proc.c
scst/src/scst_sysfs.c
scst/src/scst_targ.c
scst/src/scst_tg.c
Copyright: 2009-2010, Alexey Obitotskiy <alexeyo1@open-e.com>
2008-2017, Bart Van Assche <bvanassche@acm.org>
2009, Daniel Henrique Debonzi <debonzi@linux.vnet.ibm.com>
2013-2014, Fusion-io, Inc
2004-2005, Leonid Stoljar
2007, Ming Zhang <blackmagic02881@gmail.com>
2009-2010, Open-E, Inc
2007, Ross Walker <rswwalker@hotmail.com>
2007-2017, SanDisk Corporation
2004-2017, Vladislav Bolkhovitin <vst@vlnb.net>
License: GPL-2
Files: scst/COPYING
Copyright: 1989-1991, Free Software Foundation, Inc
License: GPL-2+
Files: scstadmin/*
Copyright: 2009-2011, Bart Van Assche <bvanassche@acm.org>
2008, Mark Buechler <mark.buechler@gmail.com>
License: GPL-2+
Files: scstadmin/scstadmin.procfs/scst-0.8.22/lib/*
scstadmin/scstadmin.procfs/scstadmin
scstadmin/scstadmin.spec.in
scstadmin/scstadmin.sysfs/scst-1.0.0/lib/*
scstadmin/scstadmin.sysfs/scstadmin
Copyright: 2011-2015, Bart Van Assche <bvanassche@acm.org>
2005-2011, Mark R. Buechler
License: GPL-2
Files: scstadmin/LICENSE
Copyright: 1989-1991, Free Software Foundation, Inc
License: GPL-2+
Files: srpt/*
Copyright: 2008-2017, Bart Van Assche <bvanassche@acm.org>
2013, Fusion-io, Inc
2006-2009, Mellanox Technology Inc
2008, Vladislav Bolkhovitin <vst@vlnb.net>
License: BSD-2-clause
Files: srpt/LICENSE
Copyright: OpenFabrics Alliance
License: BSD-2-clause
License: BSD-2-clause
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
License: BSD-3-clause
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
3. Neither the names of the contributors nor the names of the contributing
organizations may be used to endorse or promote products derived from
this software without specific prior written permission.
.
THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.
License: GPL
This package is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation.
.
This package is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
.
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>
.
On Debian systems, the complete text of the GNU General
Public License can be found in "/usr/share/common-licenses/GPL".
License: GPL-2
This package is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License.
.
This package is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
.
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>
.
On Debian systems, the complete text of the GNU General
Public License version 2 can be found in "/usr/share/common-licenses/GPL-2".
License: GPL-2+
This package is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
.
This package is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
.
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>
.
On Debian systems, the complete text of the GNU General
Public License version 2 can be found in "/usr/share/common-licenses/GPL-2".
License: public-domain
...
...
+5
View File
@@ -0,0 +1,5 @@
usr/share/man/man5/iscsi-scstd.conf.5
usr/share/man/man8/iscsi-scst-adm.8
usr/share/man/man8/iscsi-scstd.8
usr/sbin/iscsi-scst-adm
usr/sbin/iscsi-scstd
+105
View File
@@ -0,0 +1,105 @@
#!/usr/bin/make -f
# See debhelper(7) (uncomment to enable)
# output every command that modifies files on the build system.
export DH_VERBOSE = 1
# see FEATURE AREAS in dpkg-buildflags(1)
#export DEB_BUILD_MAINT_OPTIONS = hardening=+all
# see ENVIRONMENT in dpkg-buildflags(1)
# package maintainers to append CFLAGS
#export DEB_CFLAGS_MAINT_APPEND = -Wall -pedantic
# package maintainers to append LDFLAGS
#export DEB_LDFLAGS_MAINT_APPEND = -Wl,--as-needed
SUBDIRS=scst fcst iscsi-scst qla2x00t/qla2x00-target scst_local scstadmin srpt
DESTDIR=$(CURDIR)/debian/tmp
VERSION:=$(shell head -n1 debian/changelog | sed 's/.*(\([0-9.]*\).*).*/\1/')
%:
echo "*** dh $@ ***"
dh $@
clean:
dh_testdir && \
dh_prep -Xqla_isp/TAGS -Xdebian/changelog && \
scripts/clean-source-tree -x debian/changelog
build:
export BUILD_2X_MODULE=y && \
export CONFIG_SCSI_QLA_FC=y CONFIG_SCSI_QLA2XXX_TARGET=y && \
for d in $(SUBDIRS); do $(MAKE) -C $$d; done && \
{ \
echo dkms.conf && \
echo Makefile && \
for d in fcst iscsi-scst qla2x00t scst scst_local srpt; do\
echo $$d; \
done; \
} | sed "s,^,usr/src/scst-$(VERSION)/," >debian/scst-dkms.install
build-indep: build
build-arch: build
install:
[ -n "$(VERSION)" ] && \
dh_testdir && \
export PREFIX=/usr && \
export DESTDIR="$(DESTDIR)" && \
export BUILD_2X_MODULE=y && \
export CONFIG_SCSI_QLA_FC=y CONFIG_SCSI_QLA2XXX_TARGET=y && \
for d in $(SUBDIRS); do \
if [ $$d = scst ]; then \
{ $(MAKE) -C $$d install || break; } \
else \
{ INSTALL_MOD_PATH="$(DESTDIR)" $(MAKE) -C $$d install; } ||\
break; \
fi; \
done && \
rm -f "$(DESTDIR)"/lib/modules/*/[Mm]odule* && \
mkdir -p $(DESTDIR)/usr/src/scst-$(VERSION) && \
for f in scst.dkms scst-dkms.postinst scst-dkms.prerm; do \
sed "s/\$${PACKAGE_VERSION}/$(VERSION)/" \
< debian/$$f.in >debian/$$f || exit $?; \
done && \
cp debian/scst.dkms \
$(DESTDIR)/usr/src/scst-$(VERSION)/dkms.conf && \
scripts/list-source-files | \
grep -E '^Makefile$$|^(fcst|iscsi-scst|qla2x00t|scst|scst_local|srpt)/'|\
tar -T- -cf- | \
tar -C $(DESTDIR)/usr/src/scst-$(VERSION) -xf- && \
chmod -R 0644 $(DESTDIR)/usr/src/scst-$(VERSION) && \
chmod 0644 "$(DESTDIR)"/usr/lib/*/perl/*/auto/SCST_SCST/.packlist "$(DESTDIR)"/usr/share/perl/*/SCST/SCST.pm && \
chmod 0755 "$(DESTDIR)"/usr/lib/*/perl/*/auto/SCST_SCST && \
mkdir -p "$(DESTDIR)"/usr/share/man && \
{ tar -C "$(DESTDIR)"/usr/man -cf- . | \
tar -C "$(DESTDIR)"/usr/share/man -xf-; } && \
rm -rf "$(DESTDIR)"/usr/man && \
dh_strip && \
dh_compress && \
dh_install && \
dh_installdeb && \
dh_installman && \
dh_installchangelogs && \
dh_shlibdeps && \
dh_gencontrol && \
dh_md5sums && \
dh_builddeb
binary-indep: install
binary-arch: install
binary: binary-indep binary-arch
override_dh_installinit:
dh_installinit --onlyscripts
# dh_make generated override targets
# This is example for Cmake (See https://bugs.debian.org/641051 )
#override_dh_auto_configure:
# dh_auto_configure -- # -DCMAKE_LIBRARY_PATH=$(DEB_HOST_MULTIARCH)
.PHONY: clean binary binary-arch binary-indep build build-arch build-indep \
install
+8
View File
@@ -0,0 +1,8 @@
usr/include/scst/Module.symvers
usr/include/scst/backport.h
usr/include/scst/scst.h
usr/include/scst/scst_const.h
usr/include/scst/scst_debug.h
usr/include/scst/scst_itf_ver.h
usr/include/scst/scst_sgv.h
usr/include/scst/scst_user.h
+10
View File
@@ -0,0 +1,10 @@
#!/bin/sh
DKMS_NAME=scst
DKMS_VERSION=${PACKAGE_VERSION}
case "$1" in
configure)
/usr/lib/dkms/common.postinst "$DKMS_NAME" "$DKMS_VERSION"
;;
esac
+10
View File
@@ -0,0 +1,10 @@
#!/bin/sh
DKMS_NAME=scst
DKMS_VERSION=${PACKAGE_VERSION}
case "$1" in
upgrade|remove|deconfigure)
dkms remove -m "$DKMS_NAME" -v "$DKMS_VERSION" --all
;;
esac
+61
View File
@@ -0,0 +1,61 @@
PACKAGE_VERSION="${PACKAGE_VERSION}"
PACKAGE_NAME="scst"
AUTOINSTALL=yes
MAKE[0]="export KVER=${kernelver} KDIR=${kernel_source_dir} BUILD_2X_MODULE=y CONFIG_SCSI_QLA_FC=y CONFIG_SCSI_QLA2XXX_TARGET=y && make 2release && make -sC scst && make -sC fcst && make -sC iscsi-scst && make -sC qla2x00t/qla2x00-target && make -sC scst_local && make -sC srpt"
CLEAN="make clean"
# Remove any existing ib_srpt.ko kernel modules
PRE_INSTALL="find /lib/modules/${kernelver} -name ib_srpt.ko -exec rm {} \;"
# The SCST kernel module must be first because building the other kernel
# modules can only succeed after the SCST kernel module headers have been
# installed.
BUILT_MODULE_NAME[0]="scst"
BUILT_MODULE_LOCATION[0]="scst/src"
DEST_MODULE_LOCATION[0]="/extra"
BUILT_MODULE_NAME[1]="fcst"
BUILT_MODULE_LOCATION[1]="fcst"
DEST_MODULE_LOCATION[1]="/extra"
BUILT_MODULE_NAME[2]="iscsi-scst"
BUILT_MODULE_LOCATION[2]="iscsi-scst/kernel"
DEST_MODULE_LOCATION[2]="/extra"
BUILT_MODULE_NAME[3]="isert-scst"
BUILT_MODULE_LOCATION[3]="iscsi-scst/kernel/isert-scst"
DEST_MODULE_LOCATION[3]="/extra"
BUILT_MODULE_NAME[4]="qla2x00tgt"
BUILT_MODULE_LOCATION[4]="qla2x00t/qla2x00-target"
DEST_MODULE_LOCATION[4]="/extra"
BUILT_MODULE_NAME[5]="qla2xxx_scst"
BUILT_MODULE_LOCATION[5]="qla2x00t"
DEST_MODULE_LOCATION[5]="/extra"
BUILT_MODULE_NAME[6]="scst_cdrom"
BUILT_MODULE_LOCATION[6]="scst/src/dev_handlers"
DEST_MODULE_LOCATION[6]="/extra/dev_handlers"
BUILT_MODULE_NAME[7]="scst_changer"
BUILT_MODULE_LOCATION[7]="scst/src/dev_handlers"
DEST_MODULE_LOCATION[7]="/extra/dev_handlers"
BUILT_MODULE_NAME[8]="scst_disk"
BUILT_MODULE_LOCATION[8]="scst/src/dev_handlers"
DEST_MODULE_LOCATION[8]="/extra/dev_handlers"
BUILT_MODULE_NAME[9]="scst_modisk"
BUILT_MODULE_LOCATION[9]="scst/src/dev_handlers"
DEST_MODULE_LOCATION[9]="/extra/dev_handlers"
BUILT_MODULE_NAME[10]="scst_processor"
BUILT_MODULE_LOCATION[10]="scst/src/dev_handlers"
DEST_MODULE_LOCATION[10]="/extra/dev_handlers"
BUILT_MODULE_NAME[11]="scst_raid"
BUILT_MODULE_LOCATION[11]="scst/src/dev_handlers"
DEST_MODULE_LOCATION[11]="/extra/dev_handlers"
BUILT_MODULE_NAME[12]="scst_tape"
BUILT_MODULE_LOCATION[12]="scst/src/dev_handlers"
DEST_MODULE_LOCATION[12]="/extra/dev_handlers"
BUILT_MODULE_NAME[13]="scst_user"
BUILT_MODULE_LOCATION[13]="scst/src/dev_handlers"
DEST_MODULE_LOCATION[13]="/extra/dev_handlers"
BUILT_MODULE_NAME[14]="scst_vdisk"
BUILT_MODULE_LOCATION[14]="scst/src/dev_handlers"
DEST_MODULE_LOCATION[14]="/extra/dev_handlers"
BUILT_MODULE_NAME[15]="scst_local"
BUILT_MODULE_LOCATION[15]="scst_local"
DEST_MODULE_LOCATION[15]="/extra"
BUILT_MODULE_NAME[16]="ib_srpt"
BUILT_MODULE_LOCATION[16]="srpt/src"
DEST_MODULE_LOCATION[16]="/extra"
+1
View File
@@ -0,0 +1 @@
lib/modules/
+41
View File
@@ -0,0 +1,41 @@
#!/bin/sh
# postinst script for scst
#
# see: dh_installdeb(1)
set -e
# summary of how this script can be called:
# * <postinst> `configure' <most-recently-configured-version>
# * <old-postinst> `abort-upgrade' <new version>
# * <conflictor's-postinst> `abort-remove' `in-favour' <package>
# <new-version>
# * <postinst> `abort-remove'
# * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
# <failed-install-package> <version> `removing'
# <conflicting-package> <version>
# for details, see https://www.debian.org/doc/debian-policy/ or
# the debian-policy package
case "$1" in
configure)
mkdir -p /var/lib/scst/pr
mkdir -p /var/lib/scst/vdev_mode_pages
depmod;;
abort-upgrade|abort-remove|abort-deconfigure)
;;
*)
echo "postinst called with unknown argument \`$1'" >&2
exit 1
;;
esac
# dh_installdeb will replace this with shell code automatically
# generated by other debhelper scripts.
#DEBHELPER#
exit 0
+47
View File
@@ -0,0 +1,47 @@
#!/bin/sh
# preinst script for scst
#
# see: dh_installdeb(1)
set -e
# summary of how this script can be called:
# * <new-preinst> `install'
# * <new-preinst> `install' <old-version>
# * <new-preinst> `upgrade' <old-version>
# * <old-preinst> `abort-upgrade' <new-version>
# for details, see https://www.debian.org/doc/debian-policy/ or
# the debian-policy package
case "$1" in
install)
# Remove any existing ib_srpt.ko kernel modules
find "/lib/modules/$(uname -r)" -name ib_srpt.ko -exec rm {} \;
# Remove files installed by "make install"
rm -f /usr/local/man/man5/iscsi-scstd.conf.5
rm -f /usr/local/man/man8/iscsi-scst-adm.8
rm -f /usr/local/man/man8/iscsi-scstd.8
rm -f /usr/local/sbin/iscsi-scst-adm
rm -f /usr/local/sbin/iscsi-scstd
rm -rf /usr/local/include/scst
;;
upgrade)
;;
abort-upgrade)
;;
*)
echo "preinst called with unknown argument \`$1'" >&2
exit 1
;;
esac
# dh_installdeb will replace this with shell code automatically
# generated by other debhelper scripts.
#DEBHELPER#
exit 0
+8
View File
@@ -0,0 +1,8 @@
etc/init.d/scst
usr/sbin/scstadmin
usr/share/perl/*/SCST/SCST.pm
usr/lib/*/perl/*/auto/SCST_SCST
usr/share/man/man3/SCST::SCST.3pm*
usr/share/man/man1/scstadmin.1*
usr/share/man/man5/scst.5*
usr/share/man/man5/scst.conf.5*
+39
View File
@@ -0,0 +1,39 @@
#!/bin/sh
# postinst script for scstadmin
#
# see: dh_installdeb(1)
set -e
# summary of how this script can be called:
# * <postinst> `configure' <most-recently-configured-version>
# * <old-postinst> `abort-upgrade' <new version>
# * <conflictor's-postinst> `abort-remove' `in-favour' <package>
# <new-version>
# * <postinst> `abort-remove'
# * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
# <failed-install-package> <version> `removing'
# <conflicting-package> <version>
# for details, see https://www.debian.org/doc/debian-policy/ or
# the debian-policy package
case "$1" in
configure)
update-rc.d scst defaults;;
abort-upgrade|abort-remove|abort-deconfigure)
;;
*)
echo "postinst called with unknown argument \`$1'" >&2
exit 1
;;
esac
# dh_installdeb will replace this with shell code automatically
# generated by other debhelper scripts.
#DEBHELPER#
exit 0
+32
View File
@@ -0,0 +1,32 @@
#!/bin/sh
# prerm script for scst
#
# see: dh_installdeb(1)
# summary of how this script can be called:
# * <prerm> `remove'
# * <old-prerm> `upgrade' <new-version>
# * <new-prerm> `failed-upgrade' <old-version>
# * <conflictor's-prerm> `remove' `in-favour' <package> <new-version>
# * <deconfigured's-prerm> `deconfigure' `in-favour'
# <package-being-installed> <version> `removing'
# <conflicting-package> <version>
# for details, see https://www.debian.org/doc/debian-policy/ or
# the debian-policy package
case "$1" in
remove|upgrade|deconfigure)
update-rc.d scst remove;;
failed-upgrade)
;;
*)
echo "prerm called with unknown argument \`$1'" >&2
exit 1;;
esac
# dh_installdeb will replace this with shell code automatically
# generated by other debhelper scripts.
#DEBHELPER#
+1
View File
@@ -0,0 +1 @@
3.0 (quilt)
+33 -9
View File
@@ -2,6 +2,21 @@
shopt -s nullglob
usage() {
echo "Usage: $(basename "$0") [ -x <exclude> ]*"
exit 1
}
word_in_list() {
local a word=$1
shift
for a in "$@"; do
[ "$word" = "$a" ] && return 0
done
return 1
}
remove_empty_directories() {
find . -depth -type d |
sed 's|^\./||' |
@@ -16,11 +31,21 @@ remove_empty_directories() {
done
}
if [ $# = 0 ]; then
# shellcheck source=clean-source-tree
. "$0" .
else
for d in "$@"; do
exclude=("TAGS")
git_options=(-e TAGS)
while [ "${1#-}" != "$1" ]; do
case "$1" in
-x)
exclude+=("$2")
git_options+=(-e "$2")
shift; shift;;
*)
usage;;
esac
done
for d in "${@-.}"; do
(
if cd "$d"; then
if [ -e .svn ]; then
@@ -30,14 +55,14 @@ else
fi
"$(dirname "$0")"/list-non-source-files |
while read -r f; do
if [ "$f" != "TAGS" ]; then rm -rf -- "$f"; fi;
if ! word_in_list "$f" "${exclude[@]}"; then rm -rf -- "$f"; fi;
done
elif [ -e .git ] || [ -e ../.git ]; then
if ! type -p git >&/dev/null; then
echo "$0: git: not found."
exit 0
fi
git clean -f -d -x -e TAGS >/dev/null
git clean -f -d -x "${git_options[@]}" >/dev/null
remove_empty_directories
elif [ -e .hg ] || [ -e ../.hg ]; then
if ! type -p hg >&/dev/null; then
@@ -50,5 +75,4 @@ else
fi
fi
)
done
fi
done
+4
View File
@@ -363,6 +363,10 @@ in/out in Makefile and scst.h:
target attribute on the remote node. See below for more details.
Disabled by default for safety.
- CONFIG_SCST_NO_TOTAL_MEM_CHECKS - disables checks of allocated
memory, see scst_max_cmd_mem below. Allows to avoid 2 global
variables on the fast path, hence get better multi-queue performance.
HIGHMEM kernel configurations are fully supported, but not recommended
for performance reasons, except for scst_user, where they are not
supported, because this module deals with user supplied memory on a
+4
View File
@@ -253,6 +253,10 @@ your favorite kernel configuration Makefile target, e.g. "make xconfig":
target attribute on the remote node. See below for more details.
Disabled by default for safety.
- CONFIG_SCST_NO_TOTAL_MEM_CHECKS - disables checks of allocated
memory, see scst_max_cmd_mem below. Allows to avoid 2 global
variables on the fast path, hence get better multi-queue performance.
HIGHMEM kernel configurations are fully supported, but not recommended
for performance reasons.
+1
View File
@@ -30,6 +30,7 @@
/** See README for description of those conditional defines **/
#define CONFIG_SCST_DIF_INJECT_CORRUPTED_TAGS
/* #define CONFIG_SCST_FORWARD_MODE_PASS_THROUGH */
#define CONFIG_SCST_NO_TOTAL_MEM_CHECKS
#include <linux/types.h>
#ifndef INSIDE_KERNEL_TREE
+8
View File
@@ -6861,6 +6861,14 @@ int scst_cmp_wr_local(struct scst_cmd *cmd)
TRACE_ENTRY();
if (cmd->sess->sess_mq) {
PRINT_WARNING_ONCE("MQ session (%p) from initiator %s (tgt %s), "
"COMPARE AND WRITE not supported", cmd->sess,
cmd->sess->initiator_name, cmd->sess->tgt->tgt_name);
scst_set_cmd_error(cmd, SCST_LOAD_SENSE(scst_sense_invalid_opcode));
goto out_done;
}
/* COMPARE AND WRITE is SBC only command */
EXTRACHECKS_BUG_ON(cmd->dev->type != TYPE_DISK);
+5
View File
@@ -2741,9 +2741,14 @@ static int __init init_scst(void)
goto out_thread_free;
#endif
#ifdef CONFIG_SCST_NO_TOTAL_MEM_CHECKS
PRINT_INFO("SCST version %s loaded successfully (global max mem for commands "
"ignored, per device %dMB)", SCST_VERSION_STRING, scst_max_dev_cmd_mem);
#else
PRINT_INFO("SCST version %s loaded successfully (max mem for "
"commands %dMB, per device %dMB)", SCST_VERSION_STRING,
scst_max_cmd_mem, scst_max_dev_cmd_mem);
#endif
scst_print_config();
+28 -1
View File
@@ -56,7 +56,9 @@ static struct lockdep_map scst_pool_dep_map =
static struct sgv_pool *sgv_norm_clust_pool, *sgv_norm_pool, *sgv_dma_pool;
#ifndef CONFIG_SCST_NO_TOTAL_MEM_CHECKS
static atomic_t sgv_pages_total = ATOMIC_INIT(0);
#endif
/* Both read-only */
static int sgv_hi_wmk;
@@ -70,7 +72,9 @@ static DEFINE_MUTEX(sgv_pools_mutex);
static atomic_t sgv_releases_on_hiwmk = ATOMIC_INIT(0);
static atomic_t sgv_releases_on_hiwmk_failed = ATOMIC_INIT(0);
#ifndef CONFIG_SCST_NO_TOTAL_MEM_CHECKS
static atomic_t sgv_other_total_alloc = ATOMIC_INIT(0);
#endif
#if (LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 23))
static struct shrinker *sgv_shrinker;
@@ -182,7 +186,9 @@ static void __sgv_purge_from_cache(struct sgv_pool_obj *obj)
pool->inactive_cached_pages -= pages;
sgv_dec_cached_entries(pool, pages);
#ifndef CONFIG_SCST_NO_TOTAL_MEM_CHECKS
atomic_sub(pages, &sgv_pages_total);
#endif
return;
}
@@ -223,7 +229,11 @@ static int sgv_shrink_pool(struct sgv_pool *pool, int nr, int min_interval,
spin_lock_bh(&pool->sgv_pool_lock);
while (!list_empty(&pool->sorted_recycling_list) &&
#ifdef CONFIG_SCST_NO_TOTAL_MEM_CHECKS
true) {
#else
(atomic_read(&sgv_pages_total) > sgv_lo_wmk)) {
#endif
struct sgv_pool_obj *obj = list_first_entry(
&pool->sorted_recycling_list,
struct sgv_pool_obj, sorted_recycling_list_entry);
@@ -305,7 +315,9 @@ static unsigned long __sgv_can_be_shrunk(void)
spin_unlock_bh(&sgv_pools_lock);
res = max(0, inactive_pages - sgv_lo_wmk);
#ifndef CONFIG_SCST_NO_TOTAL_MEM_CHECKS
TRACE_MEM("Can free %ld (total %d)", res, atomic_read(&sgv_pages_total));
#endif
TRACE_EXIT_RES(res);
return res;
@@ -790,6 +802,7 @@ static void sgv_put_obj(struct sgv_pool_obj *obj)
static int sgv_hiwmk_check(int pages_to_alloc)
{
int res = 0;
#ifndef CONFIG_SCST_NO_TOTAL_MEM_CHECKS
int pages = pages_to_alloc;
pages += atomic_read(&sgv_pages_total);
@@ -820,16 +833,18 @@ static int sgv_hiwmk_check(int pages_to_alloc)
out_unlock:
TRACE_MEM("pages_to_alloc %d, new total %d", pages_to_alloc,
atomic_read(&sgv_pages_total));
#endif
return res;
}
/* No locks */
static void sgv_hiwmk_uncheck(int pages)
{
#ifndef CONFIG_SCST_NO_TOTAL_MEM_CHECKS
atomic_sub(pages, &sgv_pages_total);
TRACE_MEM("pages %d, new total %d", pages,
atomic_read(&sgv_pages_total));
#endif
return;
}
@@ -1246,7 +1261,9 @@ struct scatterlist *scst_alloc_sg(int size, gfp_t gfp_mask, int *count)
TRACE_ENTRY();
#ifndef CONFIG_SCST_NO_TOTAL_MEM_CHECKS
atomic_inc(&sgv_other_total_alloc);
#endif
if (unlikely(sgv_hiwmk_check(pages) != 0)) {
if (!no_fail) {
@@ -1949,6 +1966,7 @@ int sgv_procinfo_show(struct seq_file *seq, void *v)
}
spin_unlock_bh(&sgv_pools_lock);
#ifndef CONFIG_SCST_NO_TOTAL_MEM_CHECKS
seq_printf(seq, "%-42s %d/%d\n%-42s %d/%d\n%-42s %d/%d\n\n",
"Inactive/active pages", inactive_pages,
atomic_read(&sgv_pages_total) - inactive_pages,
@@ -1956,6 +1974,7 @@ int sgv_procinfo_show(struct seq_file *seq, void *v)
"Hi watermark releases/failures",
atomic_read(&sgv_releases_on_hiwmk),
atomic_read(&sgv_releases_on_hiwmk_failed));
#endif
seq_printf(seq, "%-30s %-11s %-11s %-11s %-11s", "Name", "Hit", "Total",
"% merged", "Cached (P/I/O)");
@@ -1966,8 +1985,10 @@ int sgv_procinfo_show(struct seq_file *seq, void *v)
}
mutex_unlock(&sgv_pools_mutex);
#ifndef CONFIG_SCST_NO_TOTAL_MEM_CHECKS
seq_printf(seq, "\n%-42s %-11d\n", "other",
atomic_read(&sgv_other_total_alloc));
#endif
TRACE_EXIT();
return 0;
@@ -2074,6 +2095,9 @@ static ssize_t sgv_sysfs_global_stat_show(struct kobject *kobj,
}
spin_unlock_bh(&sgv_pools_lock);
#ifdef CONFIG_SCST_NO_TOTAL_MEM_CHECKS
res = sprintf(buf, "%-42s %d\n", "Inactive pages", inactive_pages);
#else
res = sprintf(buf, "%-42s %d/%d\n%-42s %d/%d\n%-42s %d/%d\n"
"%-42s %-11d\n",
"Inactive/active pages", inactive_pages,
@@ -2083,6 +2107,7 @@ static ssize_t sgv_sysfs_global_stat_show(struct kobject *kobj,
atomic_read(&sgv_releases_on_hiwmk),
atomic_read(&sgv_releases_on_hiwmk_failed),
"Other allocs", atomic_read(&sgv_other_total_alloc));
#endif
TRACE_EXIT();
return res;
@@ -2095,7 +2120,9 @@ static ssize_t sgv_sysfs_global_stat_reset(struct kobject *kobj,
atomic_set(&sgv_releases_on_hiwmk, 0);
atomic_set(&sgv_releases_on_hiwmk_failed, 0);
#ifndef CONFIG_SCST_NO_TOTAL_MEM_CHECKS
atomic_set(&sgv_other_total_alloc, 0);
#endif
PRINT_INFO("%s", "Global SGV pool statistics reset");