2006-12-05 15:11:54

by Milan Broz

[permalink] [raw]
Subject: [PATCH][STABLE 2.6.18] dm snapshot: fix freeing pending exception

Fix oops when removing full snapshot
kernel bugzilla bug 7040

If a snapshot became invalid (full) while there is outstanding
pending_exception, pending_complete() forgets to remove
the corresponding exception from its exception table before freeing it.

Already fixed in 2.6.19.

Signed-off-by: Milan Broz <[email protected]>

Index: linux-2.6.18.5/drivers/md/dm-snap.c
===================================================================
--- linux-2.6.18.5.orig/drivers/md/dm-snap.c 2006-12-02 01:13:05.000000000 +0100
+++ linux-2.6.18.5/drivers/md/dm-snap.c 2006-12-04 17:55:28.000000000 +0100
@@ -691,6 +691,7 @@ static void pending_complete(struct pend

free_exception(e);

+ remove_exception(&pe->e);
error_snapshot_bios(pe);
goto out;
}