dm snapshot: fix on disk chunk size validation
commit0ce76a2beb6ee0b6eb3182f012c8dbce57f4b490
authorMikulas Patocka <mpatocka@redhat.com>
Fri, 4 Sep 2009 19:40:43 +0000 (4 20:40 +0100)
committerGreg Kroah-Hartman <gregkh@suse.de>
Tue, 15 Sep 2009 17:45:36 +0000 (15 10:45 -0700)
tree2ef9d9171f7ac839854381a95f3785bd6da97fa5
parentda8341635673d7cf46312c39e4c69912c2629a30
dm snapshot: fix on disk chunk size validation

commit ae0b7448e91353ea5f821601a055aca6b58042cd upstream.

Fix some problems seen in the chunk size processing when activating a
pre-existing snapshot.

For a new snapshot, the chunk size can either be supplied by the creator
or a default value can be used.  For an existing snapshot, the
chunk size in the snapshot header on disk should always be used.

If someone attempts to load an existing snapshot and has the 'default
chunk size' option set, the kernel uses its default value even when it
is incorrect for the snapshot being loaded.  This patch ensures the
correct on-disk value is always used.

Secondly, when the code does use the chunk size stored on the disk it is
prudent to revalidate it, so the code can exit cleanly if it got
corrupted as happened in
https://bugzilla.redhat.com/show_bug.cgi?id=461506 .

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-exception-store.c
drivers/md/dm-snap-persistent.c