For convenience, there is a lack of opportunity to build
the SCST dkms and scstadmin packages in a one command.
Introduce the 'make rpm-dkms' command that in similar way to 'make rpm'
builds SCST dkms rpm packages and then builds scstadmin rpm packages.
fileio_exec_async() for fileio devices with o_direct flag triggers
the following Linux direct_io datapath:
- fileio_exec_async() -- ... --> iomap_dio_bio_actor()
- iomap_dio_bio_actor() -- ... --> bio_iov_iter_get_pages()
- bio_iov_iter_get_pages() -- ... --> iov_iter_get_pages()
- iov_iter_get_pages() returns -EFAULT
iov_iter_get_pages() only handles iovec and bvec iterators.
Its kvec hanlding always return -EFAULT.
We cannot use iovec because calling iov_iter_init() from
the kernel context initializes iov_iter as ITER_KVEC.
Thus, use bvecs for fileio async direct IO.
Reported-by: Lu Chang
The line in /lib/modules/4.19.0-18-amd64/build/Makefile on Debian 10 with
the path to the header files is as follows:
MAKEARGS := -C /usr/src/linux-headers-4.19.0-18-common O=/usr/src/linux-headers-4.19.0-18-amd64
while on Debian 11 the contenst of /lib/modules/5.10.0-8-amd64/build/Makefile
is as follows:
include /usr/src/linux-headers-5.10.0-8-common/Makefile
Add support for extracting the header file directory path from the Debian
10 Makefile.
Fixes: https://github.com/bvanassche/scst/issues/52
Decide which SCSI header file to include based on a compile time check instead
of trying to derive that choice from the UEK kernel version.
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@9606 d57e44dd-8a1f-0410-8b47-8ef2f437770f
Since block_shift is unsigned, it can never be negative. See also commit
1e95312e49 ("Reenable block_shift calculation for tapes").
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@9605 d57e44dd-8a1f-0410-8b47-8ef2f437770f
Apparently the UEK 8 FC patches have been ported to UEK 7. Make fcst build
against the latest UEK7 and UEK 8 kernels. This patch breaks compatibility
with older UEK 7 5.4.17 kernels.
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@9603 d57e44dd-8a1f-0410-8b47-8ef2f437770f
r9586+r9587 added support for UEK 8 but broke support for UEK 7. Since as
far as I know no compile-time constants are available in UEK that allow to
tell the difference between the UEK 7 and UEK 8 5.4.17 kernels, extract the
UEK release number from the name of the directory with the kernel build
infrastructure.
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@9601 d57e44dd-8a1f-0410-8b47-8ef2f437770f
The scsi_done() function is new in kernel v5.16. Backport it to older
kernel versions.
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@9597 d57e44dd-8a1f-0410-8b47-8ef2f437770f
Instead of making vdev_open_fd() check the dev_active flag, let the callers
of this function check that flag. This patch does not change the behavior of
the scst_vdisk driver.
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@9596 d57e44dd-8a1f-0410-8b47-8ef2f437770f
scst_vdisk: Restore support for adding a block device with non-existent filename
This patch is a fix for commit df4c250b8d ("scst_vdisk: Port to Linux
kernel v5.11").
See also upstream commit 7fe1e79b59ba ("configfs: implement the .read_iter
and .write_iter methods"; v5.14).
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@9594 d57e44dd-8a1f-0410-8b47-8ef2f437770f