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

[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
Loading
Loading
Loading
Loading
+5 −12
Original line number Diff line number Diff line
@@ -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 */