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 a66428d..072ee43 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 86a301c..3fae87e 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 2b2ca37..8aafbb7 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");
 }