While debugging the last cciss disk dump problem I experienced a new problem:
service diskdump start
echo c > /proc/sysrq-trigger
The systems gets to "start dumping" and hangs, with no dump created.
The pointers that are set up in diskdump/block_dump are no longer
valid when cciss is unloaded and then reloaded. The solution is to prevent the
cciss driver from being unloaded if it is being used by disk dump. This is
already done correctly in scsi_dump.
I tested this patch (as did HP). I confirmed the cciss usage count is
incremented when diskdump is started/stopped. The cciss module can not be
unloaded while the diskdump service is active on the cciss device. Dumps work as
This code is similar to what is in scsi_dump.c. An ACK from people familiar with
that code would be particularly helpful.
It would be reasonable to put this is U6, since the risk is low, and it is a fix
for functionality committed in U6. If it does not make it, then we will have to
release note the problem, and fix it in U7.
Created attachment 117924 [details]
A fix for this problem has just been committed to the RHEL3 U7
patch pool this evening (in kernel version 2.4.21-37.1.EL).
An advisory has been issued which should help the problem
described in this bug report. This report is therefore being
closed with a resolution of ERRATA. For more information
on the solution and/or where to find the updated files,
please follow the link below. You may reopen this bug report
if the solution does not work for you.