[PATCH 4.4 31/77] dm space map metadata: fix missing store of apply_bops() return value

From: Greg Kroah-Hartman
Date: Wed Sep 04 2019 - 14:27:24 EST


From: ZhangXiaoxu <zhangxiaoxu5@xxxxxxxxxx>

commit ae148243d3f0816b37477106c05a2ec7d5f32614 upstream.

In commit 6096d91af0b6 ("dm space map metadata: fix occasional leak
of a metadata block on resize"), we refactor the commit logic to a new
function 'apply_bops'. But when that logic was replaced in out() the
return value was not stored. This may lead out() returning a wrong
value to the caller.

Fixes: 6096d91af0b6 ("dm space map metadata: fix occasional leak of a metadata block on resize")
Cc: stable@xxxxxxxxxxxxxxx
Signed-off-by: ZhangXiaoxu <zhangxiaoxu5@xxxxxxxxxx>
Signed-off-by: Mike Snitzer <snitzer@xxxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>

---
drivers/md/persistent-data/dm-space-map-metadata.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

--- a/drivers/md/persistent-data/dm-space-map-metadata.c
+++ b/drivers/md/persistent-data/dm-space-map-metadata.c
@@ -248,7 +248,7 @@ static int out(struct sm_metadata *smm)
}

if (smm->recursion_count == 1)
- apply_bops(smm);
+ r = apply_bops(smm);

smm->recursion_count--;