Source-Changes archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

CVS commit: src/sys/dev/iscsi

Module Name:    src
Committed By:   mhitch
Date:           Tue Jun  5 16:36:07 UTC 2012

Modified Files:
        src/sys/dev/iscsi: iscsi_rcv.c iscsi_send.c

Log Message:
Fix system freeze when trying to write to a raw iSCSI device with MAXPHYS
bytes.  Newfs does large writes when initializing the filesystem.
First, don't copy the head of a TAILQ to make a copy - the first entry will
still point back to the original head.  This caused the ccb list to link to
itself, resulting in a continous loop processing the same ccb and blocked
interrupts.  Use TAILQ_CONCAT() to copy the list.
Next, the ccb disposition was not set in the ccb when the ccb was throttled,
losing the CCBDISP_SCSIPI, so when a throttled ccb was resent, it failed to
call scscipi_done(), and left that I/O hanging.
I am now able to newfs an iSCSI device, was well as issued large writes
using dd.

To generate a diff of this commit:
cvs rdiff -u -r1.1 -r1.2 src/sys/dev/iscsi/iscsi_rcv.c \

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Home | Main Index | Thread Index | Old Index