dm-log.c:disk_log() was freeing the log by calling core_dtr(), then using it. [AJ Lewis] --- diff/drivers/md/dm-log.c 2003-12-30 15:54:24.000000000 +0000 +++ source/drivers/md/dm-log.c 2004-01-05 15:58:39.000000000 +0000 @@ -419,10 +419,10 @@ static void disk_dtr(struct dirty_log *log) { struct log_c *lc = (struct log_c *) log->context; - core_dtr(log); dm_put_device(lc->ti, lc->log_dev); vfree(lc->disk_header); vfree(lc->disk_bits); + core_dtr(log); } static int disk_resume(struct dirty_log *log)