mirror of
git://sourceware.org/git/lvm2.git
synced 2024-12-21 13:34:40 +03:00
Add dmsetup --nolockfs support for suspend/reload.
Requires kernel patches to have any effect. Library version incremented.
This commit is contained in:
parent
9b02bdbce0
commit
72a444276f
@ -1,5 +1,6 @@
|
||||
Version 1.01.06 -
|
||||
=============================
|
||||
Add dmsetup --nolockfs support for suspend/reload.
|
||||
|
||||
Version 1.01.05 - 26 Sep 2005
|
||||
=============================
|
||||
|
@ -21,6 +21,7 @@ dm_task_set_sector
|
||||
dm_task_set_message
|
||||
dm_task_add_target
|
||||
dm_task_no_open_count
|
||||
dm_task_skip_lockfs
|
||||
dm_get_next_target
|
||||
dm_task_run
|
||||
dm_set_dev_dir
|
||||
|
@ -950,6 +950,13 @@ int dm_task_no_open_count(struct dm_task *dmt)
|
||||
return 1;
|
||||
}
|
||||
|
||||
int dm_task_skip_lockfs(struct dm_task *dmt)
|
||||
{
|
||||
dmt->skip_lockfs = 1;
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
int dm_task_set_event_nr(struct dm_task *dmt, uint32_t event_nr)
|
||||
{
|
||||
dmt->event_nr = event_nr;
|
||||
@ -1105,6 +1112,8 @@ static struct dm_ioctl *_flatten(struct dm_task *dmt, unsigned repeat_count)
|
||||
dmi->flags |= DM_SUSPEND_FLAG;
|
||||
if (dmt->read_only)
|
||||
dmi->flags |= DM_READONLY_FLAG;
|
||||
if (dmt->skip_lockfs)
|
||||
dmi->flags |= DM_SKIP_LOCKFS_FLAG;
|
||||
|
||||
if (dmt->minor >= 0) {
|
||||
if (dmt->major <= 0) {
|
||||
|
@ -52,6 +52,7 @@ struct dm_task {
|
||||
char *message;
|
||||
uint64_t sector;
|
||||
int no_open_count;
|
||||
int skip_lockfs;
|
||||
|
||||
char *uuid;
|
||||
};
|
||||
|
@ -135,6 +135,7 @@ int dm_task_set_event_nr(struct dm_task *dmt, uint32_t event_nr);
|
||||
int dm_task_set_message(struct dm_task *dmt, const char *message);
|
||||
int dm_task_set_sector(struct dm_task *dmt, uint64_t sector);
|
||||
int dm_task_no_open_count(struct dm_task *dmt);
|
||||
int dm_task_skip_lockfs(struct dm_task *dmt);
|
||||
|
||||
/*
|
||||
* Use these to prepare for a create or reload.
|
||||
|
@ -76,6 +76,7 @@ enum {
|
||||
MAJOR_ARG,
|
||||
MINOR_ARG,
|
||||
NOHEADINGS_ARG,
|
||||
NOLOCKFS_ARG,
|
||||
NOOPENCOUNT_ARG,
|
||||
NOTABLE_ARG,
|
||||
OPTIONS_ARG,
|
||||
@ -527,6 +528,9 @@ static int _simple(int task, const char *name, uint32_t event_nr, int display)
|
||||
if (_switches[NOOPENCOUNT_ARG] && !dm_task_no_open_count(dmt))
|
||||
goto out;
|
||||
|
||||
if (_switches[NOLOCKFS_ARG] && !dm_task_skip_lockfs(dmt))
|
||||
goto out;
|
||||
|
||||
r = dm_task_run(dmt);
|
||||
|
||||
if (r && display && _switches[VERBOSE_ARG])
|
||||
@ -1000,7 +1004,7 @@ static void _usage(FILE *out)
|
||||
|
||||
fprintf(out, "Usage:\n\n");
|
||||
fprintf(out, "dmsetup [--version] [-v|--verbose [-v|--verbose ...]]\n"
|
||||
" [-r|--readonly] [--noopencount]\n\n");
|
||||
" [-r|--readonly] [--noopencount] [--nolockfs]\n\n");
|
||||
for (i = 0; _commands[i].name; i++)
|
||||
fprintf(out, "\t%s %s\n", _commands[i].name, _commands[i].help);
|
||||
fprintf(out, "\n<device> may be device name or -u <uuid> or "
|
||||
@ -1034,6 +1038,7 @@ static int _process_switches(int *argc, char ***argv)
|
||||
{"major", 1, &ind, MAJOR_ARG},
|
||||
{"minor", 1, &ind, MINOR_ARG},
|
||||
{"noheadings", 0, &ind, NOHEADINGS_ARG},
|
||||
{"nolockfs", 0, &ind, NOLOCKFS_ARG},
|
||||
{"noopencount", 0, &ind, NOOPENCOUNT_ARG},
|
||||
{"notable", 0, &ind, NOTABLE_ARG},
|
||||
{"options", 1, &ind, OPTIONS_ARG},
|
||||
@ -1125,6 +1130,8 @@ static int _process_switches(int *argc, char ***argv)
|
||||
}
|
||||
if ((ind == NOHEADINGS_ARG))
|
||||
_switches[NOHEADINGS_ARG]++;
|
||||
if ((ind == NOLOCKFS_ARG))
|
||||
_switches[NOLOCKFS_ARG]++;
|
||||
if ((ind == NOOPENCOUNT_ARG))
|
||||
_switches[NOOPENCOUNT_ARG]++;
|
||||
if ((ind == VERSION_ARG))
|
||||
|
Loading…
Reference in New Issue
Block a user