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

[PATCH] dm snapshot: make read and write exception functions void



read_exception() and write_exception() only return an error if supplied with
an out-of-range index.  If this ever happens it's the result of a bug in the
calling code so we handle this with an assertion and remove the error handling
in the callers.

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 f9cea4f7
Loading
Loading
Loading
Loading
+8 −24
Original line number Diff line number Diff line
@@ -296,42 +296,29 @@ static int write_header(struct pstore *ps)
 */
static struct disk_exception *get_exception(struct pstore *ps, uint32_t index)
{
	if (index >= ps->exceptions_per_area)
		return NULL;
	BUG_ON(index >= ps->exceptions_per_area);

	return ((struct disk_exception *) ps->area) + index;
}

static int read_exception(struct pstore *ps,
static void read_exception(struct pstore *ps,
			   uint32_t index, struct disk_exception *result)
{
	struct disk_exception *e;

	e = get_exception(ps, index);
	if (!e)
		return -EINVAL;
	struct disk_exception *e = get_exception(ps, index);

	/* copy it */
	result->old_chunk = le64_to_cpu(e->old_chunk);
	result->new_chunk = le64_to_cpu(e->new_chunk);

	return 0;
}

static int write_exception(struct pstore *ps,
static void write_exception(struct pstore *ps,
			    uint32_t index, struct disk_exception *de)
{
	struct disk_exception *e;

	e = get_exception(ps, index);
	if (!e)
		return -EINVAL;
	struct disk_exception *e = get_exception(ps, index);

	/* copy it */
	e->old_chunk = cpu_to_le64(de->old_chunk);
	e->new_chunk = cpu_to_le64(de->new_chunk);

	return 0;
}

/*
@@ -349,10 +336,7 @@ static int insert_exceptions(struct pstore *ps, int *full)
	*full = 1;

	for (i = 0; i < ps->exceptions_per_area; i++) {
		r = read_exception(ps, i, &de);

		if (r)
			return r;
		read_exception(ps, i, &de);

		/*
		 * If the new_chunk is pointing at the start of