[PATCH 3.16 44/83] dm space map metadata: fix missing store of apply_bops() return value

From: Ben Hutchings
Date: Wed Nov 20 2019 - 10:44:29 EST


3.16.78-rc1 review patch. If anyone has any objections, please let me know.

------------------

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")
Signed-off-by: ZhangXiaoxu <zhangxiaoxu5@xxxxxxxxxx>
Signed-off-by: Mike Snitzer <snitzer@xxxxxxxxxx>
Signed-off-by: Ben Hutchings <ben@xxxxxxxxxxxxxxx>
---
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--;