You've already forked linux-apfs
mirror of
https://github.com/linux-apfs/linux-apfs.git
synced 2026-05-01 15:00:59 -07:00
cciss: Dynamically allocate the drive_info_struct for each logical drive.
cciss: Dynamically allocate the drive_info_struct for each logical drive. This reduces the size of the per-hba ctlr_info structure from 106936 bytes to 8132 bytes. That's on 32-bit systems. On 64-bit systems, the improvement is even bigger. Without this, the ctlr_info struct is so big that the driver won't even load on a 64 bit system if CISS_MAX_LUN was at it's current setting of 1024 logical drives. Signed-off-by: Stephen M. Cameron <scameron@beardog.cce.hp.com> Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
This commit is contained in:
committed by
Jens Axboe
parent
e272afecaf
commit
9cef0d2f4f
+164
-127
File diff suppressed because it is too large
Load Diff
@@ -45,13 +45,14 @@ typedef struct _drive_info_struct
|
||||
* to prevent it from being opened or it's
|
||||
* queue from being started.
|
||||
*/
|
||||
struct device *dev;
|
||||
struct device dev;
|
||||
__u8 serial_no[16]; /* from inquiry page 0x83,
|
||||
* not necc. null terminated.
|
||||
*/
|
||||
char vendor[VENDOR_LEN + 1]; /* SCSI vendor string */
|
||||
char model[MODEL_LEN + 1]; /* SCSI model string */
|
||||
char rev[REV_LEN + 1]; /* SCSI revision string */
|
||||
char device_initialized; /* indicates whether dev is initialized */
|
||||
} drive_info_struct;
|
||||
|
||||
struct ctlr_info
|
||||
@@ -87,7 +88,7 @@ struct ctlr_info
|
||||
BYTE cciss_read_capacity;
|
||||
|
||||
// information about each logical volume
|
||||
drive_info_struct drv[CISS_MAX_LUN];
|
||||
drive_info_struct *drv[CISS_MAX_LUN];
|
||||
|
||||
struct access_method access;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user