r281 - in lvm2/trunk: doc lib/activate lib/metadata
Bastian Blank
waldi at costa.debian.org
Sun Feb 12 11:46:25 UTC 2006
Author: waldi
Date: Sun Feb 12 11:46:24 2006
New Revision: 281
Modified:
lvm2/trunk/doc/example.conf
lvm2/trunk/lib/activate/activate.c
lvm2/trunk/lib/activate/dev_manager.c
lvm2/trunk/lib/metadata/metadata.h
Log:
* doc/example.conf, lib/activate/activate.c, lib/activate/dev_manager.c,.
lib/metadata/metadata.h: Set device permissions.
Modified: lvm2/trunk/doc/example.conf
==============================================================================
--- lvm2/trunk/doc/example.conf (original)
+++ lvm2/trunk/doc/example.conf Sun Feb 12 11:46:24 2006
@@ -257,6 +257,9 @@
# "@*" matches if any tag defined on the host is also set in the LV or VG
#
# volume_list = [ "vg1", "vg2/lvol1", "@tag1", "@*" ]
+
+ # Permissions to use for new devices
+ # device_permissions = [ 0, 6, 0640 ]
}
Modified: lvm2/trunk/lib/activate/activate.c
==============================================================================
--- lvm2/trunk/lib/activate/activate.c (original)
+++ lvm2/trunk/lib/activate/activate.c Sun Feb 12 11:46:24 2006
@@ -778,6 +778,8 @@
static int _lv_activate(struct cmd_context *cmd, const char *lvid_s,
int exclusive, int filter)
{
+ const struct config_node *cn;
+ struct config_value *cv;
struct logical_volume *lv;
struct lvinfo info;
int r;
@@ -808,6 +810,27 @@
if (exclusive)
lv->status |= ACTIVATE_EXCL;
+ cn = find_config_node(cmd->cft->root, "activation/device_permissions");
+ if (cn) {
+ cv = cn->v;
+ if (cv->type != CFG_INT)
+ return 1;
+ lv->uid = cv->v.i;
+ cv = cv->next;
+ if (cv->type != CFG_INT)
+ return 1;
+ lv->gid = cv->v.i;
+ cv = cv->next;
+ if (cv->type != CFG_INT)
+ return 1;
+ lv->mode = cv->v.i;
+ }
+ else {
+ lv->uid = 0;
+ lv->gid = 0;
+ lv->mode = 0600;
+ }
+
memlock_inc();
r = _lv_activate_lv(lv);
memlock_dec();
Modified: lvm2/trunk/lib/activate/dev_manager.c
==============================================================================
--- lvm2/trunk/lib/activate/dev_manager.c (original)
+++ lvm2/trunk/lib/activate/dev_manager.c Sun Feb 12 11:46:24 2006
@@ -858,9 +858,10 @@
* existing inactive table left behind.
* Major/minor settings only apply to the visible layer.
*/
- if (!(dnode = dm_tree_add_new_dev(dtree, name, dlid,
+ if (!(dnode = _dm_tree_add_new_dev_mode(dtree, name, dlid,
layer ? lv->major : 0,
layer ? lv->minor : 0,
+ lv->uid, lv->gid, lv->mode,
_read_only_lv(lv),
lv->vg->status & PRECOMMITTED,
lvlayer)))
Modified: lvm2/trunk/lib/metadata/metadata.h
==============================================================================
--- lvm2/trunk/lib/metadata/metadata.h (original)
+++ lvm2/trunk/lib/metadata/metadata.h Sun Feb 12 11:46:24 2006
@@ -279,6 +279,9 @@
uint32_t read_ahead;
int32_t major;
int32_t minor;
+ uid_t uid;
+ gid_t gid;
+ mode_t mode;
uint64_t size;
uint32_t le_count;
More information about the pkg-lvm-commits
mailing list