Commit f9cea4f7 authored by Mark McLoughlin's avatar Mark McLoughlin Committed by Linus Torvalds

[PATCH] dm snapshot: fix metadata error handling

Fix the error handling when store.read_metadata is called: the error should be
returned immediately.
Signed-off-by: default avatarMark McLoughlin <markmc@redhat.com>
Signed-off-by: default avatarAlasdair G Kergon <agk@redhat.com>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent 4c7e3bf4
...@@ -387,17 +387,6 @@ static inline ulong round_up(ulong n, ulong size) ...@@ -387,17 +387,6 @@ static inline ulong round_up(ulong n, ulong size)
return (n + size) & ~size; return (n + size) & ~size;
} }
static void read_snapshot_metadata(struct dm_snapshot *s)
{
if (s->store.read_metadata(&s->store)) {
down_write(&s->lock);
s->valid = 0;
up_write(&s->lock);
dm_table_event(s->table);
}
}
static int set_chunk_size(struct dm_snapshot *s, const char *chunk_size_arg, static int set_chunk_size(struct dm_snapshot *s, const char *chunk_size_arg,
char **error) char **error)
{ {
...@@ -528,7 +517,11 @@ static int snapshot_ctr(struct dm_target *ti, unsigned int argc, char **argv) ...@@ -528,7 +517,11 @@ static int snapshot_ctr(struct dm_target *ti, unsigned int argc, char **argv)
} }
/* Metadata must only be loaded into one table at once */ /* Metadata must only be loaded into one table at once */
read_snapshot_metadata(s); r = s->store.read_metadata(&s->store);
if (r) {
ti->error = "Failed to read snapshot metadata";
goto bad6;
}
/* Add snapshot to the list of snapshots for this origin */ /* Add snapshot to the list of snapshots for this origin */
/* Exceptions aren't triggered till snapshot_resume() is called */ /* Exceptions aren't triggered till snapshot_resume() is called */
......
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