I've found a patch that fixes this issue. Details are here: https://bugzilla.redhat.com/show_bug.cgi?id=465825
The patch: diff -p -u -r linux-2.6.18.x86_64.orig/drivers/md/dm-snap.c linux-2.6.18.x86_64/drivers/md/dm-snap.c --- linux-2.6.18.x86_64.orig/drivers/md/dm-snap.c 2008-10-14 00:45:00.000000000 +0200 +++ linux-2.6.18.x86_64/drivers/md/dm-snap.c 2008-10-14 16:18:27.000000000 +0200 @@ -826,8 +826,10 @@ static struct bio *put_pending_exception * the bios for the original write to the origin. */ if (primary_pe && - atomic_dec_and_test(&primary_pe->ref_count)) + atomic_dec_and_test(&primary_pe->ref_count)) { origin_bios = bio_list_get(&primary_pe->origin_bios); + free_pending_exception(primary_pe); + } /* * Free the pe if it's not linked to an origin write or if @@ -836,12 +838,6 @@ static struct bio *put_pending_exception if (!primary_pe || primary_pe != pe) free_pending_exception(pe); - /* - * Free the primary pe if nothing references it. - */ - if (primary_pe && !atomic_read(&primary_pe->ref_count)) - free_pending_exception(primary_pe); - return origin_bios; } I have verified it on my system and it seems to work. I can now create multiple snapshots and do lots of IO without my system going down. -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org