[2.6.24 PATCH 24/25] dm log: split suspend

From: Alasdair G Kergon
Date: Fri Oct 12 2007 - 13:26:39 EST


From: Jonathan Brassow <jbrassow@xxxxxxxxxx>

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@xxxxxxxxxx>
Signed-off-by: Alasdair G Kergon <agk@xxxxxxxxxx>

---
drivers/md/dm-log.c | 2 +-
drivers/md/dm-log.h | 3 ++-
drivers/md/dm-raid1.c | 2 +-
3 files changed, 4 insertions(+), 3 deletions(-)

Index: linux-2.6.23/drivers/md/dm-log.c
===================================================================
--- linux-2.6.23.orig/drivers/md/dm-log.c 2007-10-12 12:36:13.000000000 +0100
+++ linux-2.6.23/drivers/md/dm-log.c 2007-10-12 15:03:32.000000000 +0100
@@ -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,
Index: linux-2.6.23/drivers/md/dm-log.h
===================================================================
--- linux-2.6.23.orig/drivers/md/dm-log.h 2007-10-12 12:36:13.000000000 +0100
+++ linux-2.6.23/drivers/md/dm-log.h 2007-10-12 15:03:32.000000000 +0100
@@ -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);

/*
Index: linux-2.6.23/drivers/md/dm-raid1.c
===================================================================
--- linux-2.6.23.orig/drivers/md/dm-raid1.c 2007-10-12 13:15:36.000000000 +0100
+++ linux-2.6.23/drivers/md/dm-raid1.c 2007-10-12 15:03:32.000000000 +0100
@@ -1305,7 +1305,7 @@ static void mirror_postsuspend(struct dm
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");
}
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/