The snapshot destructor shouldn't be triggering an event, this code must date from before the reference counting of tables was put in. --- diff/drivers/md/dm-snap.c 2004-02-18 09:16:19.000000000 +0000 +++ source/drivers/md/dm-snap.c 2004-02-18 09:16:41.000000000 +0000 @@ -546,8 +546,6 @@ { struct dm_snapshot *s = (struct dm_snapshot *) ti->private; - dm_table_event(ti->table); - unregister_snapshot(s); exit_exception_table(&s->pending, pending_cache);