summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMinfei Huang <mnghuan@gmail.com>2016-09-06 16:00:29 +0800
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2016-10-28 03:01:27 -0400
commitbf74a108c67947a2c72d16786338b89d75119a48 (patch)
treeadc1e0d82991495f094f43bcfc84a9de36b5da6f
parent90be7f1538fb0ab22582f018e42115f18315eb8d (diff)
dm: return correct error code in dm_resume()'s retry loop
commit 8dc23658b7aaa8b6b0609c81c8ad75e98b612801 upstream. dm_resume() will return success (0) rather than -EINVAL if !dm_suspended_md() upon retry within dm_resume(). Reset the error code at the start of dm_resume()'s retry loop. Also, remove a useless assignment at the end of dm_resume(). Fixes: ffcc393641 ("dm: enhance internal suspend and resume interface") Signed-off-by: Minfei Huang <mnghuan@gmail.com> Signed-off-by: Mike Snitzer <snitzer@redhat.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r--drivers/md/dm.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/drivers/md/dm.c b/drivers/md/dm.c
index 0efc3d60e6b7..84aa8b1d0480 100644
--- a/drivers/md/dm.c
+++ b/drivers/md/dm.c
@@ -3250,10 +3250,11 @@ static int __dm_resume(struct mapped_device *md, struct dm_table *map)
int dm_resume(struct mapped_device *md)
{
- int r = -EINVAL;
+ int r;
struct dm_table *map = NULL;
retry:
+ r = -EINVAL;
mutex_lock_nested(&md->suspend_lock, SINGLE_DEPTH_NESTING);
if (!dm_suspended_md(md))
@@ -3277,8 +3278,6 @@ retry:
goto out;
clear_bit(DMF_SUSPENDED, &md->flags);
-
- r = 0;
out:
mutex_unlock(&md->suspend_lock);