diff --git a/WHATS_NEW b/WHATS_NEW index c3bac479c..008506d53 100644 --- a/WHATS_NEW +++ b/WHATS_NEW @@ -1,5 +1,6 @@ Version 2.02.96 - ================================ + Fix warn msg for thin pool chunk size and update man for chunksize (2.02.89). Version 2.02.95 - 6th March 2012 ================================ diff --git a/man/lvcreate.8.in b/man/lvcreate.8.in index e8520d99f..1090a1e76 100644 --- a/man/lvcreate.8.in +++ b/man/lvcreate.8.in @@ -120,11 +120,14 @@ If clustered locking is enabled, \fB-a\fIey\fR will activate exclusively on one node and \fB-a\fIly\fR will activate only on the local node. .TP .BR \-c ", " \-\-chunksize " " \fIChunkSize -Power of 2 chunk size in sector units (512b). -For snapshot logical volume the value must be between 8 (4KB) and 1024 (512KB) -and the default value is 8. -For thin pool logical volume the value must be between 128 (64KB) and -2097152 (1MB) and the default value is 128. +Gives the size of chunk for snapshot and thin pool logical volumes. +For snapshots the value must be power of 2 between 4KiB and 512KiB +and the default value is 4. +For thin pools the value must be power of 2 between 64KiB and +1048576KiB and the default value starts with 64 and scales +up to fit the pool metadata size within 128MB, +if the poolmetadata size is not specified. +Default unit is in kilobytes. .TP .BR \-C ", " \-\-contiguous " {" \fIy | \fIn } Sets or resets the contiguous allocation policy for diff --git a/tools/lvcreate.c b/tools/lvcreate.c index def36b975..aa2d80753 100644 --- a/tools/lvcreate.c +++ b/tools/lvcreate.c @@ -772,13 +772,15 @@ static int _lvcreate_params(struct lvcreate_params *lp, return 0; } } else { - lp->chunk_size = arg_uint_value(cmd, chunksize_ARG, DM_THIN_MIN_DATA_BLOCK_SIZE); + lp->chunk_size = arg_uint_value(cmd, chunksize_ARG, + DM_THIN_MIN_DATA_BLOCK_SIZE); if ((lp->chunk_size < DM_THIN_MIN_DATA_BLOCK_SIZE) || (lp->chunk_size > DM_THIN_MAX_DATA_BLOCK_SIZE) || (lp->chunk_size & (lp->chunk_size - 1))) { log_error("Chunk size must be a power of 2 in the " - "range %uK to %uK", (DM_THIN_MIN_DATA_BLOCK_SIZE / 2), - (DM_THIN_MIN_DATA_BLOCK_SIZE / 2)); + "range %uK to %uK", + (DM_THIN_MIN_DATA_BLOCK_SIZE / 2), + (DM_THIN_MAX_DATA_BLOCK_SIZE / 2)); return 0; } }