diff options
author | Zdenek Kabelac <zkabelac@redhat.com> | 2012-06-28 14:47:34 +0200 |
---|---|---|
committer | Zdenek Kabelac <zkabelac@redhat.com> | 2012-07-18 14:36:57 +0200 |
commit | ebbf7d8e68f37c1a1e448a07676cca0a6e7f1430 (patch) | |
tree | 323db958763100efbf951dd619c78b18f1b3d3a7 /tools | |
parent | 260e8f24768d7a6e7c6a8018b5c2b08e7a35e35c (diff) | |
download | lvm2-ebbf7d8e68f37c1a1e448a07676cca0a6e7f1430.tar.gz lvm2-ebbf7d8e68f37c1a1e448a07676cca0a6e7f1430.tar.xz lvm2-ebbf7d8e68f37c1a1e448a07676cca0a6e7f1430.zip |
thin: add discard support for thin pool
Add arg support for discard.
Add discard ignore, nopassdown, passdown (=default) support.
Flags could be set per pool.
lvcreate [--discard {ignore|no_passdown|passdown}] vg/thinlv
Diffstat (limited to 'tools')
-rw-r--r-- | tools/args.h | 1 | ||||
-rw-r--r-- | tools/commands.h | 6 | ||||
-rw-r--r-- | tools/lvmcmdline.c | 13 | ||||
-rw-r--r-- | tools/tools.h | 1 |
4 files changed, 20 insertions, 1 deletions
diff --git a/tools/args.h b/tools/args.h index 2ce3c36a..4909f9ed 100644 --- a/tools/args.h +++ b/tools/args.h @@ -72,6 +72,7 @@ arg(virtualoriginsize_ARG, '\0', "virtualoriginsize", size_mb_arg, 0) arg(noudevsync_ARG, '\0', "noudevsync", NULL, 0) arg(poll_ARG, '\0', "poll", yes_no_arg, 0) arg(poolmetadatasize_ARG, '\0', "poolmetadatasize", size_mb_arg, 0) +arg(discard_ARG, '\0', "discard", discard_arg, 0) arg(stripes_long_ARG, '\0', "stripes", int_arg, 0) arg(sysinit_ARG, '\0', "sysinit", NULL, 0) arg(thinpool_ARG, '\0', "thinpool", string_arg, 0) diff --git a/tools/commands.h b/tools/commands.h index 3454951a..fe7403da 100644 --- a/tools/commands.h +++ b/tools/commands.h @@ -177,6 +177,10 @@ xx(lvcreate, "\t[-p|--permission {r|rw}]\n" "\t[-r|--readahead ReadAheadSectors|auto|none]\n" "\t[-R|--regionsize MirrorLogRegionSize]\n" + "\t[-T|--thin [-c|--chunksize ChunkSize]\n" + "\t [--discard {ignore|nopassdown|passdown}]\n" + "\t [--poolmetadatasize MetadataSize[bBsSkKmMgG]]]\n" + "\t[--thinpool ThinPoolLogicalVolume{Name|Path}]\n" "\t[-t|--test]\n" "\t[--type VolumeType]\n" "\t[-v|--verbose]\n" @@ -215,7 +219,7 @@ xx(lvcreate, "\t[PhysicalVolumePath...]\n\n", addtag_ARG, alloc_ARG, autobackup_ARG, activate_ARG, available_ARG, - chunksize_ARG, contiguous_ARG, corelog_ARG, extents_ARG, + chunksize_ARG, contiguous_ARG, corelog_ARG, extents_ARG, discard_ARG, ignoremonitoring_ARG, major_ARG, minor_ARG, mirrorlog_ARG, mirrors_ARG, monitor_ARG, name_ARG, nosync_ARG, noudevsync_ARG, permission_ARG, persistent_ARG, readahead_ARG, regionsize_ARG, size_ARG, snapshot_ARG, diff --git a/tools/lvmcmdline.c b/tools/lvmcmdline.c index 16e15a18..0e6a51c5 100644 --- a/tools/lvmcmdline.c +++ b/tools/lvmcmdline.c @@ -216,6 +216,19 @@ int activation_arg(struct cmd_context *cmd __attribute__((unused)), struct arg_v return 1; } +int discard_arg(struct cmd_context *cmd __attribute__((unused)), struct arg_values *av) +{ + thin_discard_t discard; + + if (!get_pool_discard(av->value, &discard)) + return_0; + + av->i_value = discard; + av->ui_value = discard; + + return 1; +} + int metadatatype_arg(struct cmd_context *cmd, struct arg_values *av) { return get_format_by_name(cmd, av->value) ? 1 : 0; diff --git a/tools/tools.h b/tools/tools.h index 7a446510..f92abd5c 100644 --- a/tools/tools.h +++ b/tools/tools.h @@ -139,6 +139,7 @@ void usage(const char *name); /* the argument verify/normalise functions */ int yes_no_arg(struct cmd_context *cmd, struct arg_values *av); int activation_arg(struct cmd_context *cmd, struct arg_values *av); +int discard_arg(struct cmd_context *cmd, struct arg_values *av); int size_kb_arg(struct cmd_context *cmd, struct arg_values *av); int size_mb_arg(struct cmd_context *cmd, struct arg_values *av); int int_arg(struct cmd_context *cmd, struct arg_values *av); |