With the SRP protocol all RDMA operations are initiated by the target.
Since no RDMA operations are initiated by the initiator, do not grant
the initiator permission to submit RDMA reads or writes to the target.
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5423 d57e44dd-8a1f-0410-8b47-8ef2f437770f
Avoid that checkpatch reports the following message:
ERROR: space required before the open parenthesis '('
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5421 d57e44dd-8a1f-0410-8b47-8ef2f437770f
Since the block layer has no way to specify bio as HQ, there's no
choice, but to use every measure to approximate it as close as possible.
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5416 d57e44dd-8a1f-0410-8b47-8ef2f437770f
The COMPARE AND WRITE implementation has been tested as follows against
an SCST vdisk_blockio device:
lba=7
bdev=$bdev
for ((i=0;i<4;i++)); do dd if=/dev/urandom of=b$i bs=8k count=1; done
for p in "0 1" "1 2" "2 3" "3 0"; do set $p; cat b$1 b$2 >b$1$2; done
dd if=/dev/urandom of=$bdev
dd if=b0 of=$bdev seek=$lba
md5sum $bdev
for ((i=0;i<10000;i++)); do for f in b01 b12 b23 b30; do sg_compare_and_write -l $lba -i $f -n 16 -x 16384 $bdev; done; done
md5sum $bdev
Signed-off-by: Bart Van Assche <bvanassche@acm.org>
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5412 d57e44dd-8a1f-0410-8b47-8ef2f437770f
Using READ_SYNC instead of READ increases the priority of read requests.
Using WRITE_SYNC instead of REQ_WRITE increases the priority of write
requests and avoids that the CFQ scheduler queues such writes waiting
for further write requests.
Signed-off-by: Bart Van Assche <bvanassche@acm.org>
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5411 d57e44dd-8a1f-0410-8b47-8ef2f437770f
Avoid that checkpatch reports the following error message:
ERROR: return is not a function, parentheses are not required
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5398 d57e44dd-8a1f-0410-8b47-8ef2f437770f
Avoid that checkpatch reports the following error message:
ERROR: "(foo*)" should be "(foo *)"
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5397 d57e44dd-8a1f-0410-8b47-8ef2f437770f
Complain if srpt_abort_cmd() is called for an I/O context that is
being processed by SCST and not by the HCA.
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5393 d57e44dd-8a1f-0410-8b47-8ef2f437770f
Only complain about a missing completion for I/O contexts that are
in a state where the ib_srpt driver is waiting for the HCA.
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5392 d57e44dd-8a1f-0410-8b47-8ef2f437770f
The comment above scst_nexus_loss() is somewhat confusing so change
it into something that is more clear.
Signed-off-by: Bart Van Assche <bvanassche@acm.org>
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5387 d57e44dd-8a1f-0410-8b47-8ef2f437770f
The to_scst_lcl_sess() macro is based on container_of() and hence never
returns NULL. Hence remove the two tests that compare the result of that
macro against NULL.
Signed-off-by: Bart Van Assche <bvanassche@acm.org>
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5385 d57e44dd-8a1f-0410-8b47-8ef2f437770f
Scst_mutex intentially used directly in the sysfs handler, because
comming sysfs improvements will allow that.
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5382 d57e44dd-8a1f-0410-8b47-8ef2f437770f
Apparently with mlx4 firmware up to and including 2.30.8000 it is not
guaranteed that for a QP associated with an SRQ error completions are
generated for all pending work requests. Avoid triggering
srpt_pending_cmd_timeout() for missing error completions.
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5370 d57e44dd-8a1f-0410-8b47-8ef2f437770f
Invoking srpt_zerolength_write() before the queue pair has reached
the error state is a bug, so complain loudly if that happens.
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5369 d57e44dd-8a1f-0410-8b47-8ef2f437770f
The overhead of atomic_add_return() is lower than that of a
spin_lock() / spin_unlock() pair, hence switch to the former.
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5367 d57e44dd-8a1f-0410-8b47-8ef2f437770f
All callers guarantee that the completion queue is empty so it is
not necessary to invoke ib_poll_cq() from inside this function.
git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5366 d57e44dd-8a1f-0410-8b47-8ef2f437770f