Commit 1fbdd2b3 authored by Mike Snitzer's avatar Mike Snitzer Committed by Alasdair G Kergon

dm mpath: reduce size of struct multipath

Move multipath structure's 'lock' and 'queue_size' members to eliminate
two 4-byte holes.  Also use a bit within a single unsigned int for each
existing flag (saves 8-bytes).  This allows future flags to be added
without each consuming an unsigned int.
Signed-off-by: default avatarMike Snitzer <snitzer@redhat.com>
Acked-by: default avatarHannes Reinecke <hare@suse.de>
Signed-off-by: default avatarAlasdair G Kergon <agk@redhat.com>
parent 76e10d15
...@@ -61,11 +61,11 @@ struct multipath { ...@@ -61,11 +61,11 @@ struct multipath {
struct list_head list; struct list_head list;
struct dm_target *ti; struct dm_target *ti;
spinlock_t lock;
const char *hw_handler_name; const char *hw_handler_name;
char *hw_handler_params; char *hw_handler_params;
spinlock_t lock;
unsigned nr_priority_groups; unsigned nr_priority_groups;
struct list_head priority_groups; struct list_head priority_groups;
...@@ -81,16 +81,17 @@ struct multipath { ...@@ -81,16 +81,17 @@ struct multipath {
struct priority_group *next_pg; /* Switch to this PG if set */ struct priority_group *next_pg; /* Switch to this PG if set */
unsigned repeat_count; /* I/Os left before calling PS again */ unsigned repeat_count; /* I/Os left before calling PS again */
unsigned queue_io; /* Must we queue all I/O? */ unsigned queue_io:1; /* Must we queue all I/O? */
unsigned queue_if_no_path; /* Queue I/O if last path fails? */ unsigned queue_if_no_path:1; /* Queue I/O if last path fails? */
unsigned saved_queue_if_no_path;/* Saved state during suspension */ unsigned saved_queue_if_no_path:1; /* Saved state during suspension */
unsigned pg_init_retries; /* Number of times to retry pg_init */ unsigned pg_init_retries; /* Number of times to retry pg_init */
unsigned pg_init_count; /* Number of times pg_init called */ unsigned pg_init_count; /* Number of times pg_init called */
unsigned pg_init_delay_msecs; /* Number of msecs before pg_init retry */ unsigned pg_init_delay_msecs; /* Number of msecs before pg_init retry */
unsigned queue_size;
struct work_struct process_queued_ios; struct work_struct process_queued_ios;
struct list_head queued_ios; struct list_head queued_ios;
unsigned queue_size;
struct work_struct trigger_event; struct work_struct trigger_event;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment