[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: Mark McLoughlin <markmc@redhat.com> Signed-off-by: Alasdair G Kergon <agk@redhat.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
parent
4c7e3bf44d
commit
f9cea4f707
1 changed files with 5 additions and 12 deletions
|
@ -387,17 +387,6 @@ static inline ulong round_up(ulong n, ulong 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,
|
||||
char **error)
|
||||
{
|
||||
|
@ -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 */
|
||||
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 */
|
||||
/* Exceptions aren't triggered till snapshot_resume() is called */
|
||||
|
|
Loading…
Reference in a new issue