]> git.kernelconcepts.de Git - karo-tx-linux.git/commitdiff
dm snapshot: flush disk cache when merging
authorMikulas Patocka <mpatocka@redhat.com>
Tue, 2 Aug 2011 11:32:00 +0000 (12:32 +0100)
committerGreg Kroah-Hartman <gregkh@suse.de>
Fri, 5 Aug 2011 04:58:42 +0000 (21:58 -0700)
commit 762a80d9fc9f690a3a35983f3b4619a220650808 upstream.

This patch makes dm-snapshot flush disk cache when writing metadata for
merging snapshot.

Without cache flushing the disk may reorder metadata write and other
data writes and there is a possibility of data corruption in case of
power fault.

Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
Signed-off-by: Alasdair G Kergon <agk@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/md/dm-snap-persistent.c

index 135c2f1fdbfcc95aefb0d842030e71a089e87d30..e4ecadf0548a72c8cca30b169c2feb80a06719b5 100644 (file)
@@ -753,7 +753,7 @@ static int persistent_commit_merge(struct dm_exception_store *store,
        for (i = 0; i < nr_merged; i++)
                clear_exception(ps, ps->current_committed - 1 - i);
 
-       r = area_io(ps, WRITE);
+       r = area_io(ps, WRITE_FLUSH_FUA);
        if (r < 0)
                return r;