Module Name: src Committed By: oster Date: Fri Sep 8 22:55:32 UTC 2023
Modified Files: src/sys/dev/raidframe: rf_reconstruct.c Log Message: Revision 1.104 actually fixed the issues that were preventing us from freeing the ReconControl structures. So free them and thus also prevent a panic on shutdown due to items not being correctly returned to the pool. Thanks to manu@ for report of the panic, and for initial testing of the changes. XXX pullup-9 XXX pullup-10 To generate a diff of this commit: cvs rdiff -u -r1.127 -r1.128 src/sys/dev/raidframe/rf_reconstruct.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/dev/raidframe/rf_reconstruct.c diff -u src/sys/dev/raidframe/rf_reconstruct.c:1.127 src/sys/dev/raidframe/rf_reconstruct.c:1.128 --- src/sys/dev/raidframe/rf_reconstruct.c:1.127 Tue Jul 27 03:01:48 2021 +++ src/sys/dev/raidframe/rf_reconstruct.c Fri Sep 8 22:55:32 2023 @@ -1,4 +1,4 @@ -/* $NetBSD: rf_reconstruct.c,v 1.127 2021/07/27 03:01:48 oster Exp $ */ +/* $NetBSD: rf_reconstruct.c,v 1.128 2023/09/08 22:55:32 oster Exp $ */ /* * Copyright (c) 1995 Carnegie-Mellon University. * All rights reserved. @@ -33,7 +33,7 @@ ************************************************************/ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: rf_reconstruct.c,v 1.127 2021/07/27 03:01:48 oster Exp $"); +__KERNEL_RCSID(0, "$NetBSD: rf_reconstruct.c,v 1.128 2023/09/08 22:55:32 oster Exp $"); #include <sys/param.h> #include <sys/time.h> @@ -897,24 +897,11 @@ rf_ContinueReconstructFailedDisk(RF_Raid rf_DrainReconEventQueue(reconDesc); - /* XXX As much as we'd like to free the recon control structure - and the reconDesc, we have no way of knowing if/when those will - be touched by IO that has yet to occur. It is rather poor to be - basically causing a 'memory leak' here, but there doesn't seem to be - a cleaner alternative at this time. Perhaps when the reconstruct code - gets a makeover this problem will go away. - */ -#if 0 rf_FreeReconControl(raidPtr); -#endif - #if RF_ACC_TRACE > 0 RF_Free(raidPtr->recon_tracerecs, raidPtr->numCol * sizeof(RF_AccTraceEntry_t)); #endif - /* XXX see comment above */ -#if 0 FreeReconDesc(reconDesc); -#endif return (1); }