--- configure.in | 20 ++++++++++++++++++++ lib/Makefile.in | 8 ++++++++ lib/multisnapshot/Makefile.in | 31 ------------------------------- libdm/libdm-deptree.c | 2 ++ tools/args.h | 1 + tools/commands.h | 2 +- tools/lvcreate.c | 12 ++++++++++-- 7 files changed, 42 insertions(+), 34 deletions(-) Index: LVM2.2.02.45/tools/args.h =================================================================== --- LVM2.2.02.45.orig/tools/args.h 2009-05-11 14:31:19.000000000 +0200 +++ LVM2.2.02.45/tools/args.h 2009-05-11 14:44:04.000000000 +0200 @@ -101,6 +101,7 @@ arg(merge_ARG, 'M', "merge", NULL, 0) arg(merge_origin_ARG, '\0', "nameorigin", NULL, 0) arg(merge_snapshot_ARG, '\0', "namesnapshot", NULL, 0) arg(merge_on_activate_ARG, '\0', "onactivate", NULL, 0) +arg(shared_store_ARG, 'S', "sharedstore", string_arg, 0) arg(major_ARG, 'j', "major", major_arg, 0) arg(mirrors_ARG, 'm', "mirrors", int_arg_with_sign, 0) arg(metadatatype_ARG, 'M', "metadatatype", metadatatype_arg, 0) Index: LVM2.2.02.45/tools/commands.h =================================================================== --- LVM2.2.02.45.orig/tools/commands.h 2009-05-11 14:34:31.000000000 +0200 +++ LVM2.2.02.45/tools/commands.h 2009-05-11 14:38:42.000000000 +0200 @@ -175,7 +175,7 @@ xx(lvcreate, corelog_ARG, extents_ARG, major_ARG, minor_ARG, mirrorlog_ARG, mirrors_ARG, name_ARG, nosync_ARG, permission_ARG, persistent_ARG, readahead_ARG, regionsize_ARG, size_ARG, snapshot_ARG, stripes_ARG, stripesize_ARG, - test_ARG, type_ARG, zero_ARG) + test_ARG, type_ARG, zero_ARG, shared_store_ARG) xx(lvdisplay, "Display information about a logical volume", Index: LVM2.2.02.45/tools/lvcreate.c =================================================================== --- LVM2.2.02.45.orig/tools/lvcreate.c 2009-05-11 14:36:18.000000000 +0200 +++ LVM2.2.02.45/tools/lvcreate.c 2009-05-11 15:13:26.000000000 +0200 @@ -31,6 +31,8 @@ struct lvcreate_params { const char *vg_name; const char *lv_name; + const char *shared_store; /* type of shared exception store */ + uint32_t stripes; uint32_t stripe_size; uint32_t chunk_size; @@ -346,8 +348,14 @@ static int _lvcreate_params(struct lvcre if (arg_count(cmd, stripes_ARG) && lp->stripes == 1) log_print("Redundant stripes argument: default is 1"); - if (arg_count(cmd, snapshot_ARG) || seg_is_snapshot(lp)) + if (arg_count(cmd, snapshot_ARG) || seg_is_snapshot(lp)) { lp->snapshot = 1; + if (arg_count(cmd, shared_store_ARG)) + lp->shared_store = arg_value(cmd, shared_store_ARG); + } else if (arg_count(cmd, shared_store_ARG)) { + log_error("Exception store supported only for snapshots"); + return 0; + } lp->mirrors = 1;