diff options
author | Petr Rockai <prockai@redhat.com> | 2010-06-28 19:10:16 +0000 |
---|---|---|
committer | Petr Rockai <prockai@redhat.com> | 2010-06-28 19:10:16 +0000 |
commit | 0da9500f1321ef6f952b8a1f01a46d94136c1e15 (patch) | |
tree | 4656baf58c7babe4497e70e02a589fd20eb72258 /tools/lvchange.c | |
parent | 68c31a2a36adb0df642321a3bb4d4d9b1429185c (diff) | |
download | lvm2-0da9500f1321ef6f952b8a1f01a46d94136c1e15.tar.gz lvm2-0da9500f1321ef6f952b8a1f01a46d94136c1e15.tar.xz lvm2-0da9500f1321ef6f952b8a1f01a46d94136c1e15.zip |
Refactor the handles_missing_pv logic in lvchange.
Diffstat (limited to 'tools/lvchange.c')
-rw-r--r-- | tools/lvchange.c | 29 |
1 files changed, 14 insertions, 15 deletions
diff --git a/tools/lvchange.c b/tools/lvchange.c index 1376bf4c..126e61ae 100644 --- a/tools/lvchange.c +++ b/tools/lvchange.c @@ -714,32 +714,31 @@ static int lvchange_single(struct cmd_context *cmd, struct logical_volume *lv, int lvchange(struct cmd_context *cmd, int argc, char **argv) { - if (!arg_count(cmd, available_ARG) && !arg_count(cmd, contiguous_ARG) - && !arg_count(cmd, permission_ARG) && !arg_count(cmd, readahead_ARG) - && !arg_count(cmd, minor_ARG) && !arg_count(cmd, major_ARG) - && !arg_count(cmd, persistent_ARG) && !arg_count(cmd, addtag_ARG) - && !arg_count(cmd, deltag_ARG) && !arg_count(cmd, refresh_ARG) - && !arg_count(cmd, alloc_ARG) && !arg_count(cmd, monitor_ARG) - && !arg_count(cmd, poll_ARG) && !arg_count(cmd, resync_ARG)) { + int update = /* options other than -a, --refresh or --monitor */ + arg_count(cmd, contiguous_ARG) || arg_count(cmd, permission_ARG) || + arg_count(cmd, readahead_ARG) || arg_count(cmd, persistent_ARG) || + arg_count(cmd, addtag_ARG) || arg_count(cmd, deltag_ARG) || + arg_count(cmd, resync_ARG) || arg_count(cmd, alloc_ARG); + + if (!update && + !arg_count(cmd, available_ARG) && !arg_count(cmd, refresh_ARG) && + !arg_count(cmd, monitor_ARG) && !arg_count(cmd, poll_ARG) && + /* for persistent_ARG */ + !arg_count(cmd, minor_ARG) && !arg_count(cmd, major_ARG)) { log_error("Need 1 or more of -a, -C, -j, -m, -M, -p, -r, " "--resync, --refresh, --alloc, --addtag, --deltag, " "--monitor or --poll"); return EINVALID_CMD_LINE; } - int avail_only = /* i.e. only one of -a or --refresh is given */ - !(arg_count(cmd, contiguous_ARG) || arg_count(cmd, permission_ARG) || - arg_count(cmd, readahead_ARG) || arg_count(cmd, persistent_ARG) || - arg_count(cmd, addtag_ARG) || arg_count(cmd, deltag_ARG) || - arg_count(cmd, resync_ARG) || arg_count(cmd, alloc_ARG)); if ((arg_count(cmd, ignorelockingfailure_ARG) || - arg_count(cmd, sysinit_ARG)) && !avail_only) { + arg_count(cmd, sysinit_ARG)) && update) { log_error("Only -a permitted with --ignorelockingfailure and --sysinit"); return EINVALID_CMD_LINE; } - if (avail_only) + if (!update) cmd->handles_missing_pvs = 1; if (!argc) { @@ -769,6 +768,6 @@ int lvchange(struct cmd_context *cmd, int argc, char **argv) } return process_each_lv(cmd, argc, argv, - avail_only ? 0 : READ_FOR_UPDATE, NULL, + update ? READ_FOR_UPDATE : 0, NULL, &lvchange_single); } |