[lvm-devel] master - tools: don't require --major to be specified when using -My option on kernels > 2.4
Peter Rajnoha
prajnoha at fedoraproject.org
Fri Apr 4 11:33:37 UTC 2014
Gitweb: http://git.fedorahosted.org/git/?p=lvm2.git;a=commitdiff;h=a7c930b18da8f8179312e395c49f72080edd687e
Commit: a7c930b18da8f8179312e395c49f72080edd687e
Parent: 4d0c3ed0f89ed25707c0a16049dfb9da647ed842
Author: Peter Rajnoha <prajnoha at redhat.com>
AuthorDate: Fri Apr 4 13:29:39 2014 +0200
Committer: Peter Rajnoha <prajnoha at redhat.com>
CommitterDate: Fri Apr 4 13:29:39 2014 +0200
tools: don't require --major to be specified when using -My option on kernels > 2.4
Since kernel > 2.4 have dynamically assigned major numbers.
[0] raw/~ $ lvcreate -l1 -My --minor 10 vg
Logical volume "lvol0" created
[0] raw/~ $ lvcreate -l1 -My --major 254 --minor 11 vg
Ignoring supplied major number - kernel assigns major numbers dynamically. Using major number 253 instead.
Logical volume "lvol1" created
[0] raw/~ $ lvs --profile out -o+major,minor
lvol0 vg -wima----- 4.00 253 10
lvol1 vg -wima----- 4.00 253 11
---
WHATS_NEW | 1 +
tools/lvcreate.c | 16 ++++++++++++----
2 files changed, 13 insertions(+), 4 deletions(-)
diff --git a/WHATS_NEW b/WHATS_NEW
index dd3b42f..1888cfd 100644
--- a/WHATS_NEW
+++ b/WHATS_NEW
@@ -1,5 +1,6 @@
Version 2.02.106 -
====================================
+ Don't require --major to be specified when using -My option on kernels > 2.4.
Add configure --disable-thin_check_needs_check to support old thin_check.
Use thin_check --clear-needs-check-flag by default.
Export lvm_even_rand() for controlled provision of random numbers.
diff --git a/tools/lvcreate.c b/tools/lvcreate.c
index ad00327..c612465 100644
--- a/tools/lvcreate.c
+++ b/tools/lvcreate.c
@@ -804,10 +804,18 @@ static int _read_activation_params(struct lvcreate_params *lp,
"--minor when using -My");
return 0;
}
- if (lp->major == -1) {
- log_error("Please specify major number with "
- "--major when using -My");
- return 0;
+ if (!strncmp(cmd->kernel_vsn, "2.4.", 4)) {
+ if (lp->major == -1) {
+ log_error("Please specify major number with "
+ "--major when using -My");
+ return 0;
+ }
+ } else {
+ if (lp->major >= 0)
+ log_warn("Ignoring supplied major number - kernel assigns "
+ "major numbers dynamically. Using major number %d instead.",
+ cmd->dev_types->device_mapper_major);
+ lp->major = cmd->dev_types->device_mapper_major;
}
if (!major_minor_valid(cmd, vg->fid->fmt, lp->major, lp->minor))
return 0;
More information about the lvm-devel
mailing list