Commit d287483d authored by Alasdair G Kergon's avatar Alasdair G Kergon Committed by Linus Torvalds

[PATCH] dm: suspend: fix error path

If the device is already suspended, just return the error and skip the code
that would incorrectly wipe md->suspended_bdev.

(This isn't currently a problem because existing code avoids calling this
function if the device is already suspended.)
Signed-off-by: default avatarAlasdair G Kergon <agk@redhat.com>
Cc: <dm-devel@redhat.com>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent bfc5ecdf
...@@ -1285,7 +1285,7 @@ int dm_suspend(struct mapped_device *md, int do_lockfs) ...@@ -1285,7 +1285,7 @@ int dm_suspend(struct mapped_device *md, int do_lockfs)
down(&md->suspend_lock); down(&md->suspend_lock);
if (dm_suspended(md)) if (dm_suspended(md))
goto out; goto out_unlock;
map = dm_get_table(md); map = dm_get_table(md);
...@@ -1361,6 +1361,8 @@ int dm_suspend(struct mapped_device *md, int do_lockfs) ...@@ -1361,6 +1361,8 @@ int dm_suspend(struct mapped_device *md, int do_lockfs)
} }
dm_table_put(map); dm_table_put(map);
out_unlock:
up(&md->suspend_lock); up(&md->suspend_lock);
return r; return r;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment