dm thin metadata: fix bug when taking a metadata snapshot
authorJoe Thornber <ejt@redhat.com>
Wed, 9 Dec 2015 16:23:24 +0000 (16:23 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 3 Mar 2016 23:06:19 +0000 (15:06 -0800)
commit9bb86db161a368f423958981869d17c53ae5f395
tree73cc006a33e6d14bb1b5110ebf6ee71a5a3ea767
parent9ee0d9ad9309385fd877bf7f5a762d4d3b5a6462
dm thin metadata: fix bug when taking a metadata snapshot

commit 49e99fc717f624aa75ca755d6e7bc029efd3f0e9 upstream.

When you take a metadata snapshot the btree roots for the mapping and
details tree need to have their reference counts incremented so they
persist for the lifetime of the metadata snap.

The roots being incremented were those currently written in the
superblock, which could possibly be out of date if concurrent IO is
triggering new mappings, breaking of sharing, etc.

Fix this by performing a commit with the metadata lock held while taking
a metadata snapshot.

Signed-off-by: Joe Thornber <ejt@redhat.com>
Signed-off-by: Mike Snitzer <snitzer@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/md/dm-thin-metadata.c