[lvm-devel] [PATCH 2 of 10] LVM: make log_area a list

Alasdair G Kergon agk at redhat.com
Thu Oct 15 23:18:09 UTC 2009


On Thu, Oct 08, 2009 at 04:18:36PM -0500, Jon Brassow wrote:
> -	struct alloced_area log_area;	/* Extent used for log */
> +	struct dm_list log_areas;	/* Extents used for logs */
>  	struct dm_list alloced_areas[0];	/* Lists of areas in each stripe */

Rather than storing the log areas differently (in a list) from the other areas
(in an array), I'd prefer them all to be stored the same way.

I.e. In a simple contiguous 2-leg mirror plus mirrored log, you'd get
  leg1 as first item on alloced_areas[0] list,
  leg2 as first item on alloced_areas[1] list,
  log leg1 as first item on log_areas list, 
  log leg2 as second item on log_areas list.

I'd prefer to see:
  leg1 as first item on alloced_areas[0] list,
  leg2 as first item on alloced_areas[1] list,
  log leg1 as first item on log_areas[0] list, 
  log leg2 as first item on log_areas[1] list.
and of course log_areas[0] can be the same as alloced_areas[2].

This should be both simpler (logs are less of a special case and 
like any other area may include more than 1 segment) and more general
(we're asking to allocate several parallel areas, with different lengths
but sorted largest first and with different allocation constraints
applying to some of them).

Alasdair




More information about the lvm-devel mailing list