diff options
Diffstat (limited to 'drivers/md/raid10.h')
| -rw-r--r-- | drivers/md/raid10.h | 34 | 
1 files changed, 23 insertions, 11 deletions
diff --git a/drivers/md/raid10.h b/drivers/md/raid10.h index 7c615613c38..135b1b0a155 100644 --- a/drivers/md/raid10.h +++ b/drivers/md/raid10.h @@ -14,32 +14,38 @@ struct mirror_info {  struct r10conf {  	struct mddev		*mddev;  	struct mirror_info	*mirrors; -	int			raid_disks; +	struct mirror_info	*mirrors_new, *mirrors_old;  	spinlock_t		device_lock;  	/* geometry */ -	int			near_copies;  /* number of copies laid out +	struct geom { +		int		raid_disks; +		int		near_copies;  /* number of copies laid out  					       * raid0 style */ -	int 			far_copies;   /* number of copies laid out +		int		far_copies;   /* number of copies laid out  					       * at large strides across drives  					       */ -	int			far_offset;   /* far_copies are offset by 1 +		int		far_offset;   /* far_copies are offset by 1  					       * stripe instead of many  					       */ -	int			copies;	      /* near_copies * far_copies. -					       * must be <= raid_disks -					       */ -	sector_t		stride;	      /* distance between far copies. +		sector_t	stride;	      /* distance between far copies.  					       * This is size / far_copies unless  					       * far_offset, in which case it is  					       * 1 stripe.  					       */ +		int		chunk_shift; /* shift from chunks to sectors */ +		sector_t	chunk_mask; +	} prev, geo; +	int			copies;	      /* near_copies * far_copies. +					       * must be <= raid_disks +					       */  	sector_t		dev_sectors;  /* temp copy of  					       * mddev->dev_sectors */ - -	int			chunk_shift; /* shift from chunks to sectors */ -	sector_t		chunk_mask; +	sector_t		reshape_progress; +	sector_t		reshape_safe; +	unsigned long		reshape_checkpoint; +	sector_t		offset_diff;  	struct list_head	retry_list;  	/* queue pending writes and submit them on unplug */ @@ -136,6 +142,7 @@ enum r10bio_state {  	R10BIO_Uptodate,  	R10BIO_IsSync,  	R10BIO_IsRecover, +	R10BIO_IsReshape,  	R10BIO_Degraded,  /* Set ReadError on bios that experience a read error   * so that raid10d knows what to do with them. @@ -146,5 +153,10 @@ enum r10bio_state {   */  	R10BIO_MadeGood,  	R10BIO_WriteError, +/* During a reshape we might be performing IO on the + * 'previous' part of the array, in which case this + * flag is set + */ +	R10BIO_Previous,  };  #endif  |