dm log: split suspend
authorJonathan Brassow <jbrassow@redhat.com>
Fri, 19 Oct 2007 21:47:57 +0000 (22:47 +0100)
committerAlasdair G Kergon <agk@redhat.com>
Sat, 20 Oct 2007 01:01:21 +0000 (02:01 +0100)
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>
drivers/md/dm-log.c
drivers/md/dm-log.h
drivers/md/dm-raid1.c

index a66428d860fef830d3fddc6d8f48140d7a646a4b..072ee4353eab329620995aceee14b468a49584a4 100644 (file)
@@ -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 86a301c8daf15d5962afe2ca8ed6eee39e58d24e..3fae87eb59631bcaf77c82b0924e363716643b0c 100644 (file)
@@ -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 2b2ca371e20b9f66189b3ca5061fad2869575f68..8aafbb7ec574b702dd35c51900d204b5b7a906ce 100644 (file)
@@ -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");
 }