mirror of
git://sourceware.org/git/lvm2.git
synced 2025-01-03 05:18:29 +03:00
o dev_manager_suspend, untested.
This commit is contained in:
parent
6eb746e187
commit
d8e7d77316
@ -584,6 +584,40 @@ int dev_manager_info(struct dev_manager *dm, struct logical_volume *lv,
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int dev_manager_suspend(struct dev_manager *dm, struct logical_volume *lv)
|
||||||
|
{
|
||||||
|
char *name;
|
||||||
|
struct dm_info info;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Build a name for the top layer.
|
||||||
|
*/
|
||||||
|
if (!(name = _build_name(dm->mem, lv->vg->name, lv->name, NULL))) {
|
||||||
|
stack;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Try and get some info on this device.
|
||||||
|
*/
|
||||||
|
if (!_info(name, &info)) {
|
||||||
|
stack;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!info.exists) {
|
||||||
|
log_warn("No such device '%s'.", lv->name);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!info.suspended && !_suspend_or_resume(name, 1)) {
|
||||||
|
stack;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
static struct dev_layer *_create_dev(struct pool *mem,
|
static struct dev_layer *_create_dev(struct pool *mem,
|
||||||
char *name,
|
char *name,
|
||||||
struct logical_volume *lv)
|
struct logical_volume *lv)
|
||||||
|
@ -27,7 +27,7 @@ void dev_manager_destroy(struct dev_manager *dm);
|
|||||||
*/
|
*/
|
||||||
int dev_manager_info(struct dev_manager *dm, struct logical_volume *lv,
|
int dev_manager_info(struct dev_manager *dm, struct logical_volume *lv,
|
||||||
struct dm_info *info);
|
struct dm_info *info);
|
||||||
|
int dev_manager_suspend(struct dev_manager *dm, struct logical_volume *lv);
|
||||||
int dev_manager_activate(struct dev_manager *dm, struct logical_volume *lv);
|
int dev_manager_activate(struct dev_manager *dm, struct logical_volume *lv);
|
||||||
int dev_manager_deactivate(struct dev_manager *dm, struct logical_volume *lv);
|
int dev_manager_deactivate(struct dev_manager *dm, struct logical_volume *lv);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user