dm: return correct error code in dm_resume()'s retry loop
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")
Cc: stable@vger.kernel.org # 3.19+
Signed-off-by: Minfei Huang <mnghuan@gmail.com>
Signed-off-by: Mike Snitzer <snitzer@redhat.com>
This commit is contained in:
committed by
Mike Snitzer
parent
2849450ad3
commit
8dc23658b7
@@ -2249,10 +2249,11 @@ static int __dm_resume(struct mapped_device *md, struct dm_table *map)
|
|||||||
|
|
||||||
int dm_resume(struct mapped_device *md)
|
int dm_resume(struct mapped_device *md)
|
||||||
{
|
{
|
||||||
int r = -EINVAL;
|
int r;
|
||||||
struct dm_table *map = NULL;
|
struct dm_table *map = NULL;
|
||||||
|
|
||||||
retry:
|
retry:
|
||||||
|
r = -EINVAL;
|
||||||
mutex_lock_nested(&md->suspend_lock, SINGLE_DEPTH_NESTING);
|
mutex_lock_nested(&md->suspend_lock, SINGLE_DEPTH_NESTING);
|
||||||
|
|
||||||
if (!dm_suspended_md(md))
|
if (!dm_suspended_md(md))
|
||||||
@@ -2276,8 +2277,6 @@ retry:
|
|||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
clear_bit(DMF_SUSPENDED, &md->flags);
|
clear_bit(DMF_SUSPENDED, &md->flags);
|
||||||
|
|
||||||
r = 0;
|
|
||||||
out:
|
out:
|
||||||
mutex_unlock(&md->suspend_lock);
|
mutex_unlock(&md->suspend_lock);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user