From: Jeff Mahoney Date: Wed, 27 Apr 2011 20:22:20 +0000 (-0400) Subject: [SCSI] iterate over devices individually for /proc/scsi/scsi X-Git-Tag: v3.0-rc1~383^2~41 X-Git-Url: http://git.openpandora.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e37c4913c555bd149eba3af953fb5d3a1686dfbd;p=pandora-kernel.git [SCSI] iterate over devices individually for /proc/scsi/scsi On systems with very large numbers (> 1600 or so) of SCSI devices, cat /proc/scsi/scsi ends up failing with -ENOMEM. This is due to the show routine simply iterating over all of the devices with bus_for_each_dev(), and trying to dump all of them into the buffer at the same time. On my test system (using scsi_debug with 4064 devices), the output ends up being ~ 632k, far more than kmalloc will typically allow. This patch defines its own seq_file opreations to iterate over the scsi devices.The result is that each show() operation only dumps ~ 180 bytes into the buffer at a time so we don't run out of memory. If the "Attached devices" header isn't required, we can dump the sfile->private bit completely. Signed-off-by: Jeff Mahoney Signed-off-by: James Bottomley --- Reading git-diff-tree failed