]> git.kernelconcepts.de Git - karo-tx-linux.git/commitdiff
dm array: if resizing the array is a noop set the new root to the old one
authorJoe Thornber <ejt@redhat.com>
Mon, 24 Nov 2014 14:08:57 +0000 (14:08 +0000)
committerMike Snitzer <snitzer@redhat.com>
Mon, 1 Dec 2014 16:30:07 +0000 (11:30 -0500)
This could've been quite bad (to return success but not update the new
root to point at the old) but in practice the only known consumer of the
dm array code is the DM cache target.  And the DM cache target passes in
the same old root to array_resize() anyway.

Signed-off-by: Joe Thornber <ejt@redhat.com>
Signed-off-by: Mike Snitzer <snitzer@redhat.com>
drivers/md/persistent-data/dm-array.c

index 1d75b1dc1e2e2fcdd24a3be8cf9f0168efacd51e..e64b61ad0ef34fc42fdf8b8066bbe71965108493 100644 (file)
@@ -645,8 +645,10 @@ static int array_resize(struct dm_array_info *info, dm_block_t root,
        int r;
        struct resize resize;
 
-       if (old_size == new_size)
+       if (old_size == new_size) {
+               *new_root = root;
                return 0;
+       }
 
        resize.info = info;
        resize.root = root;