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-09 15:34:15.000000000 +0000 +++ source/drivers/md/dm-snap.c 2004-02-12 17:14: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);