mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
synced 2025-01-09 07:23:14 +00:00
[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
@ -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 New Issue
Block a user