dm log: split suspend
There are now two phases to a suspend in device-mapper - presuspend and postsuspend. This patch removes the single 'suspend' in the logging API and replaces it with 'presuspend' and 'postsuspend' functions to align it better with core device-mapper. A subsequent patch will make use of 'presuspend'. Signed-off-by: Jonathan Brassow <jbrassow@redhat.com> Signed-off-by: Alasdair G Kergon <agk@redhat.com>
This commit is contained in:
Родитель
fe97e2aa05
Коммит
6b3df0d7a5
|
@ -696,7 +696,7 @@ static struct dirty_log_type _disk_type = {
|
|||
.module = THIS_MODULE,
|
||||
.ctr = disk_ctr,
|
||||
.dtr = disk_dtr,
|
||||
.suspend = disk_flush,
|
||||
.postsuspend = disk_flush,
|
||||
.resume = disk_resume,
|
||||
.get_region_size = core_get_region_size,
|
||||
.is_clean = core_is_clean,
|
||||
|
|
|
@ -32,7 +32,8 @@ struct dirty_log_type {
|
|||
* There are times when we don't want the log to touch
|
||||
* the disk.
|
||||
*/
|
||||
int (*suspend)(struct dirty_log *log);
|
||||
int (*presuspend)(struct dirty_log *log);
|
||||
int (*postsuspend)(struct dirty_log *log);
|
||||
int (*resume)(struct dirty_log *log);
|
||||
|
||||
/*
|
||||
|
|
|
@ -1305,7 +1305,7 @@ static void mirror_postsuspend(struct dm_target *ti)
|
|||
wait_event(_kmirrord_recovery_stopped,
|
||||
!atomic_read(&ms->rh.recovery_in_flight));
|
||||
|
||||
if (log->type->suspend && log->type->suspend(log))
|
||||
if (log->type->postsuspend && log->type->postsuspend(log))
|
||||
/* FIXME: need better error handling */
|
||||
DMWARN("log suspend failed");
|
||||
}
|
||||
|
|
Загрузка…
Ссылка в новой задаче