From: Alasdair Kergon Date: Wed, 2 Apr 2003 19:02:59 +0000 (+0000) Subject: Allow device major to be set too. X-Git-Tag: beta8~32 X-Git-Url: https://sourceware.org/git/?a=commitdiff_plain;h=1994b7d41c90cc54c63ada80041bb34c43aa1932;p=dm.git Allow device major to be set too. --- diff --git a/VERSION b/VERSION index 1b3d735..f255e3a 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.96.09-cvs (2003-03-28) +0.97.01-cvs (2003-04-02) diff --git a/lib/.export.sym b/lib/.export.sym index d68a048..ed14d5a 100644 --- a/lib/.export.sym +++ b/lib/.export.sym @@ -13,6 +13,7 @@ Base { dm_task_get_uuid; dm_task_set_ro; dm_task_set_newname; + dm_task_set_major; dm_task_set_minor; dm_task_add_target; dm_get_next_target; diff --git a/lib/ioctl/libdevmapper.c b/lib/ioctl/libdevmapper.c index 75804b8..263ed61 100644 --- a/lib/ioctl/libdevmapper.c +++ b/lib/ioctl/libdevmapper.c @@ -238,7 +238,7 @@ static struct dm_ioctl_v1 *_flatten_v1(struct dm_task *dmt) if (dmt->minor >= 0) { dmi->flags |= DM_PERSISTENT_DEV_FLAG; - dmi->dev = MKDEV(0, dmt->minor); + dmi->dev = MKDEV((dmt->major >= 0) ? : 0, dmt->minor); } if (dmt->uuid) diff --git a/lib/ioctl/libdm-targets.h b/lib/ioctl/libdm-targets.h index 210b69d..96f25c4 100644 --- a/lib/ioctl/libdm-targets.h +++ b/lib/ioctl/libdm-targets.h @@ -28,6 +28,7 @@ struct dm_task { struct target *head, *tail; int read_only; + int major; int minor; union { struct dm_ioctl *v3; diff --git a/lib/libdevmapper.h b/lib/libdevmapper.h index 56beb94..1a865c4 100644 --- a/lib/libdevmapper.h +++ b/lib/libdevmapper.h @@ -89,6 +89,7 @@ struct dm_deps *dm_task_get_deps(struct dm_task *dmt); int dm_task_set_ro(struct dm_task *dmt); int dm_task_set_newname(struct dm_task *dmt, const char *newname); int dm_task_set_minor(struct dm_task *dmt, int minor); +int dm_task_set_major(struct dm_task *dmt, int major); /* * Use these to prepare for a create or reload. diff --git a/lib/libdm-common.c b/lib/libdm-common.c index 654e5e5..5b39c0e 100644 --- a/lib/libdm-common.c +++ b/lib/libdm-common.c @@ -94,6 +94,7 @@ struct dm_task *dm_task_create(int type) dmt->type = type; dmt->minor = -1; + dmt->major = -1; return dmt; } @@ -148,6 +149,14 @@ int dm_task_set_uuid(struct dm_task *dmt, const char *uuid) return 1; } +int dm_task_set_major(struct dm_task *dmt, int major) +{ + dmt->major = major; + log_debug("Setting major: %d", dmt->major); + + return 1; +} + int dm_task_set_minor(struct dm_task *dmt, int minor) { dmt->minor = minor;