Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6b3df0d7 authored by Jonathan Brassow's avatar Jonathan Brassow Committed by Alasdair G Kergon
Browse files

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: default avatarJonathan Brassow <jbrassow@redhat.com>
Signed-off-by: default avatarAlasdair G Kergon <agk@redhat.com>
parent fe97e2aa
Loading
Loading
Loading
Loading
+1 −1
Original line number Original line Diff line number Diff line
@@ -696,7 +696,7 @@ static struct dirty_log_type _disk_type = {
	.module = THIS_MODULE,
	.module = THIS_MODULE,
	.ctr = disk_ctr,
	.ctr = disk_ctr,
	.dtr = disk_dtr,
	.dtr = disk_dtr,
	.suspend = disk_flush,
	.postsuspend = disk_flush,
	.resume = disk_resume,
	.resume = disk_resume,
	.get_region_size = core_get_region_size,
	.get_region_size = core_get_region_size,
	.is_clean = core_is_clean,
	.is_clean = core_is_clean,
+2 −1
Original line number Original line Diff line number Diff line
@@ -32,7 +32,8 @@ struct dirty_log_type {
	 * There are times when we don't want the log to touch
	 * There are times when we don't want the log to touch
	 * the disk.
	 * 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);
	int (*resume)(struct dirty_log *log);


	/*
	/*
+1 −1
Original line number Original line Diff line number Diff line
@@ -1305,7 +1305,7 @@ static void mirror_postsuspend(struct dm_target *ti)
	wait_event(_kmirrord_recovery_stopped,
	wait_event(_kmirrord_recovery_stopped,
		   !atomic_read(&ms->rh.recovery_in_flight));
		   !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 */
		/* FIXME: need better error handling */
		DMWARN("log suspend failed");
		DMWARN("log suspend failed");
}
}