Module Name: src Committed By: oster Date: Mon Sep 25 21:59:39 UTC 2023
Modified Files: src/sbin/raidctl: raidctl.8 raidctl.c src/sys/dev/raidframe: files.raidframe rf_decluster.c rf_driver.c rf_netbsdkintf.c rf_paritymap.c rf_raid.h src/sys/modules/raid: Makefile src/sys/rump/dev/lib/libraidframe: Makefile Removed Files: src/sys/dev/raidframe: rf_copyback.c rf_copyback.h Log Message: We no longer need the deprecated copyback functionality now that incorporating a used spare is automatic. Copyback has always been an issue, as to do a copyback all IO to the array had to be suspended, and so was very, very unlikely to have been used in anything resembling a production system. To generate a diff of this commit: cvs rdiff -u -r1.81 -r1.82 src/sbin/raidctl/raidctl.8 \ src/sbin/raidctl/raidctl.c cvs rdiff -u -r1.10 -r1.11 src/sys/dev/raidframe/files.raidframe \ src/sys/dev/raidframe/rf_paritymap.c cvs rdiff -u -r1.55 -r0 src/sys/dev/raidframe/rf_copyback.c cvs rdiff -u -r1.6 -r0 src/sys/dev/raidframe/rf_copyback.h cvs rdiff -u -r1.26 -r1.27 src/sys/dev/raidframe/rf_decluster.c cvs rdiff -u -r1.141 -r1.142 src/sys/dev/raidframe/rf_driver.c cvs rdiff -u -r1.414 -r1.415 src/sys/dev/raidframe/rf_netbsdkintf.c cvs rdiff -u -r1.52 -r1.53 src/sys/dev/raidframe/rf_raid.h cvs rdiff -u -r1.6 -r1.7 src/sys/modules/raid/Makefile cvs rdiff -u -r1.13 -r1.14 src/sys/rump/dev/lib/libraidframe/Makefile Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sbin/raidctl/raidctl.8 diff -u src/sbin/raidctl/raidctl.8:1.81 src/sbin/raidctl/raidctl.8:1.82 --- src/sbin/raidctl/raidctl.8:1.81 Thu Sep 21 01:40:44 2023 +++ src/sbin/raidctl/raidctl.8 Mon Sep 25 21:59:38 2023 @@ -1,4 +1,4 @@ -.\" $NetBSD: raidctl.8,v 1.81 2023/09/21 01:40:44 oster Exp $ +.\" $NetBSD: raidctl.8,v 1.82 2023/09/25 21:59:38 oster Exp $ .\" .\" Copyright (c) 1998, 2002 The NetBSD Foundation, Inc. .\" All rights reserved. @@ -53,7 +53,7 @@ .\" any improvements or extensions that they make and grant Carnegie the .\" rights to redistribute these changes. .\" -.Dd September 20, 2023 +.Dd September 25, 2023 .Dt RAIDCTL 8 .Os .Sh NAME @@ -73,9 +73,6 @@ .Fl a Ar component Ar dev .Nm .Op Fl v -.Fl B Ar dev -.Nm -.Op Fl v .Fl C Ar config_file Ar dev .Nm .Op Fl v @@ -223,11 +220,6 @@ component within a particular RAID set) hot spare after it has been used and are not required for .Ar component before it is used. -.It Fl B Ar dev -Initiate a copyback of reconstructed data from a spare disk to -its original disk. -This is performed after a component has failed, -and the failed drive has been reconstructed onto a spare drive. .It Fl C Ar config_file Ar dev As for .Fl c , @@ -351,8 +343,7 @@ Remove the specified from the RAID. The component must be in the failed, spare, or spared state in order to be removed. .It Fl S Ar dev -Check the status of parity re-writing, component reconstruction, and -component copyback. +Check the status of parity re-writing and component reconstruction. The output indicates the amount of progress achieved in each of these areas. .It Fl s Ar dev @@ -374,9 +365,8 @@ Unconfigure the RAIDframe device. This does not remove any component labels or change any configuration settings (e.g. auto-configuration settings) for the RAID set. .It Fl v -Be more verbose. -For operations such as reconstructions, parity -re-writing, and copybacks, provide a progress indicator. +Be more verbose, and provide a progress indicator for operations such +as reconstructions and parity re-writing. .El .Pp The device used by @@ -965,7 +955,6 @@ Component label for /dev/sd3e: Parity status: clean Reconstruction is 100% complete. Parity Re-write is 100% complete. -Copyback is 100% complete. .Ed .Pp This indicates that all is well with the RAID set. @@ -1051,7 +1040,6 @@ Spares: Parity status: clean Reconstruction is 10% complete. Parity Re-write is 100% complete. -Copyback is 100% complete. .Ed .Pp This indicates that a reconstruction is in progress. @@ -1073,7 +1061,6 @@ No spares. Parity status: clean Reconstruction is 100% complete. Parity Re-write is 100% complete. -Copyback is 100% complete. .Ed .Pp as Index: src/sbin/raidctl/raidctl.c diff -u src/sbin/raidctl/raidctl.c:1.81 src/sbin/raidctl/raidctl.c:1.82 --- src/sbin/raidctl/raidctl.c:1.81 Thu Sep 21 01:48:41 2023 +++ src/sbin/raidctl/raidctl.c Mon Sep 25 21:59:38 2023 @@ -1,4 +1,4 @@ -/* $NetBSD: raidctl.c,v 1.81 2023/09/21 01:48:41 oster Exp $ */ +/* $NetBSD: raidctl.c,v 1.82 2023/09/25 21:59:38 oster Exp $ */ /*- * Copyright (c) 1996, 1997, 1998 The NetBSD Foundation, Inc. @@ -39,7 +39,7 @@ #include <sys/cdefs.h> #ifndef lint -__RCSID("$NetBSD: raidctl.c,v 1.81 2023/09/21 01:48:41 oster Exp $"); +__RCSID("$NetBSD: raidctl.c,v 1.82 2023/09/25 21:59:38 oster Exp $"); #endif @@ -191,10 +191,6 @@ main(int argc,char *argv[]) strlcpy(autoconf, optarg, sizeof(autoconf)); num_options++; break; - case 'B': - action = RAIDFRAME_COPYBACK; - num_options++; - break; case 'c': action = RAIDFRAME_CONFIGURE; strlcpy(config_filename, optarg, @@ -371,15 +367,6 @@ main(int argc,char *argv[]) case RAIDFRAME_SET_AUTOCONFIG: set_autoconfig(fd, raidID, autoconf); break; - case RAIDFRAME_COPYBACK: - printf("Copyback.\n"); - do_ioctl(fd, RAIDFRAME_COPYBACK, NULL, "RAIDFRAME_COPYBACK"); - if (verbose) { - sleep(3); /* XXX give the copyback a chance to start */ - printf("Copyback status:\n"); - do_meter(fd,RAIDFRAME_CHECK_COPYBACK_STATUS_EXT); - } - break; case RAIDFRAME_FAIL_DISK: rf_fail_disk(fd, component, do_recon); break; @@ -1059,7 +1046,6 @@ check_status(int fd, int meter) { int recon_percent_done = 0; int parity_percent_done = 0; - int copyback_percent_done = 0; do_ioctl(fd, RAIDFRAME_CHECK_RECON_STATUS, &recon_percent_done, "RAIDFRAME_CHECK_RECON_STATUS"); @@ -1068,9 +1054,6 @@ check_status(int fd, int meter) &parity_percent_done, "RAIDFRAME_CHECK_PARITYREWRITE_STATUS"); printf("Parity Re-write is %d%% complete.\n", parity_percent_done); - do_ioctl(fd, RAIDFRAME_CHECK_COPYBACK_STATUS, ©back_percent_done, - "RAIDFRAME_CHECK_COPYBACK_STATUS"); - printf("Copyback is %d%% complete.\n", copyback_percent_done); if (meter) { /* These 3 should be mutually exclusive at this point */ @@ -1080,9 +1063,6 @@ check_status(int fd, int meter) } else if (parity_percent_done < 100) { printf("Parity Re-write status:\n"); do_meter(fd,RAIDFRAME_CHECK_PARITYREWRITE_STATUS_EXT); - } else if (copyback_percent_done < 100) { - printf("Copyback status:\n"); - do_meter(fd,RAIDFRAME_CHECK_COPYBACK_STATUS_EXT); } } } Index: src/sys/dev/raidframe/files.raidframe diff -u src/sys/dev/raidframe/files.raidframe:1.10 src/sys/dev/raidframe/files.raidframe:1.11 --- src/sys/dev/raidframe/files.raidframe:1.10 Thu Jan 18 00:32:49 2018 +++ src/sys/dev/raidframe/files.raidframe Mon Sep 25 21:59:38 2023 @@ -1,4 +1,4 @@ -# $NetBSD: files.raidframe,v 1.10 2018/01/18 00:32:49 mrg Exp $ +# $NetBSD: files.raidframe,v 1.11 2023/09/25 21:59:38 oster Exp $ defflag RAID_AUTOCONFIG defflag RAID_DIAGNOSTIC @@ -10,7 +10,6 @@ file dev/raidframe/rf_alloclist.c raid file dev/raidframe/rf_aselect.c raid file dev/raidframe/rf_callback.c raid file dev/raidframe/rf_chaindecluster.c raid -file dev/raidframe/rf_copyback.c raid file dev/raidframe/rf_cvscan.c raid file dev/raidframe/rf_dagdegrd.c raid file dev/raidframe/rf_dagdegwr.c raid Index: src/sys/dev/raidframe/rf_paritymap.c diff -u src/sys/dev/raidframe/rf_paritymap.c:1.10 src/sys/dev/raidframe/rf_paritymap.c:1.11 --- src/sys/dev/raidframe/rf_paritymap.c:1.10 Sun Sep 27 21:39:08 2020 +++ src/sys/dev/raidframe/rf_paritymap.c Mon Sep 25 21:59:38 2023 @@ -1,4 +1,4 @@ -/* $NetBSD: rf_paritymap.c,v 1.10 2020/09/27 21:39:08 christos Exp $ */ +/* $NetBSD: rf_paritymap.c,v 1.11 2023/09/25 21:59:38 oster Exp $ */ /*- * Copyright (c) 2009 Jed Davis. @@ -27,7 +27,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: rf_paritymap.c,v 1.10 2020/09/27 21:39:08 christos Exp $"); +__KERNEL_RCSID(0, "$NetBSD: rf_paritymap.c,v 1.11 2023/09/25 21:59:38 oster Exp $"); #include <sys/param.h> #include <sys/callout.h> @@ -727,7 +727,7 @@ rf_paritymap_attach(RF_Raid_t *raidPtr, /* * For initializing the parity-map fields of a component label, both on - * initial creation and on reconstruct/copyback/etc. */ + * initial creation and on reconstruct. */ void rf_paritymap_init_label(struct rf_paritymap *pm, RF_ComponentLabel_t *clabel) { Index: src/sys/dev/raidframe/rf_decluster.c diff -u src/sys/dev/raidframe/rf_decluster.c:1.26 src/sys/dev/raidframe/rf_decluster.c:1.27 --- src/sys/dev/raidframe/rf_decluster.c:1.26 Sat Feb 9 03:34:00 2019 +++ src/sys/dev/raidframe/rf_decluster.c Mon Sep 25 21:59:38 2023 @@ -1,4 +1,4 @@ -/* $NetBSD: rf_decluster.c,v 1.26 2019/02/09 03:34:00 christos Exp $ */ +/* $NetBSD: rf_decluster.c,v 1.27 2023/09/25 21:59:38 oster Exp $ */ /* * Copyright (c) 1995 Carnegie-Mellon University. * All rights reserved. @@ -48,7 +48,7 @@ *--------------------------------------------------------------------*/ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: rf_decluster.c,v 1.26 2019/02/09 03:34:00 christos Exp $"); +__KERNEL_RCSID(0, "$NetBSD: rf_decluster.c,v 1.27 2023/09/25 21:59:38 oster Exp $"); #include <dev/raidframe/raidframevar.h> @@ -61,7 +61,6 @@ __KERNEL_RCSID(0, "$NetBSD: rf_decluster #include "rf_general.h" #include "rf_kintf.h" #include "rf_shutdown.h" -#include "rf_copyback.h" #if (RF_INCLUDE_PARITY_DECLUSTERING > 0) || (RF_INCLUDE_PARITY_DECLUSTERING_PQ > 0) @@ -350,8 +349,7 @@ rf_MapSectorDeclustered(RF_Raid_t *raidP /* remap to distributed spare space if indicated */ if (remap) { - RF_ASSERT(raidPtr->Disks[*col].status == rf_ds_reconstructing || raidPtr->Disks[*col].status == rf_ds_dist_spared || - (rf_copyback_in_progress && raidPtr->Disks[*col].status == rf_ds_optimal)); + RF_ASSERT(raidPtr->Disks[*col].status == rf_ds_reconstructing || raidPtr->Disks[*col].status == rf_ds_dist_spared); rf_remap_to_spare_space(layoutPtr, info, FullTableID, TableID, BlockID, (base_suid) ? 1 : 0, SpareRegion, col, &outSU); } else { @@ -411,8 +409,7 @@ rf_MapParityDeclustered(RF_Raid_t *raidP *col = info->LayoutTable[BlockID][RepIndex]; if (remap) { - RF_ASSERT(raidPtr->Disks[*col].status == rf_ds_reconstructing || raidPtr->Disks[*col].status == rf_ds_dist_spared || - (rf_copyback_in_progress && raidPtr->Disks[*col].status == rf_ds_optimal)); + RF_ASSERT(raidPtr->Disks[*col].status == rf_ds_reconstructing || raidPtr->Disks[*col].status == rf_ds_dist_spared); rf_remap_to_spare_space(layoutPtr, info, FullTableID, TableID, BlockID, (base_suid) ? 1 : 0, SpareRegion, col, &outSU); } else { Index: src/sys/dev/raidframe/rf_driver.c diff -u src/sys/dev/raidframe/rf_driver.c:1.141 src/sys/dev/raidframe/rf_driver.c:1.142 --- src/sys/dev/raidframe/rf_driver.c:1.141 Sun Sep 17 20:07:39 2023 +++ src/sys/dev/raidframe/rf_driver.c Mon Sep 25 21:59:38 2023 @@ -1,4 +1,4 @@ -/* $NetBSD: rf_driver.c,v 1.141 2023/09/17 20:07:39 oster Exp $ */ +/* $NetBSD: rf_driver.c,v 1.142 2023/09/25 21:59:38 oster Exp $ */ /*- * Copyright (c) 1999 The NetBSD Foundation, Inc. * All rights reserved. @@ -66,7 +66,7 @@ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: rf_driver.c,v 1.141 2023/09/17 20:07:39 oster Exp $"); +__KERNEL_RCSID(0, "$NetBSD: rf_driver.c,v 1.142 2023/09/25 21:59:38 oster Exp $"); #ifdef _KERNEL_OPT #include "opt_raid_diagnostic.h" @@ -104,7 +104,6 @@ __KERNEL_RCSID(0, "$NetBSD: rf_driver.c, #include "rf_engine.h" #include "rf_mcpair.h" #include "rf_nwayxor.h" -#include "rf_copyback.h" #include "rf_driver.h" #include "rf_options.h" #include "rf_shutdown.h" @@ -322,7 +321,6 @@ rf_Configure(RF_Raid_t *raidPtr, RF_Conf #endif DO_INIT_CONFIGURE(rf_ConfigureNWayXor); DO_INIT_CONFIGURE(rf_ConfigureDAGFuncs); - DO_INIT_CONFIGURE(rf_ConfigureCopyback); isconfigged = 1; } rf_unlock_mutex2(configureMutex); @@ -400,7 +398,6 @@ rf_Configure(RF_Raid_t *raidPtr, RF_Conf } #endif raidPtr->numNewFailures = 0; - raidPtr->copyback_in_progress = 0; raidPtr->parity_rewrite_in_progress = 0; raidPtr->changing_components = 0; raidPtr->recon_in_progress = 0; Index: src/sys/dev/raidframe/rf_netbsdkintf.c diff -u src/sys/dev/raidframe/rf_netbsdkintf.c:1.414 src/sys/dev/raidframe/rf_netbsdkintf.c:1.415 --- src/sys/dev/raidframe/rf_netbsdkintf.c:1.414 Sun Sep 17 20:07:39 2023 +++ src/sys/dev/raidframe/rf_netbsdkintf.c Mon Sep 25 21:59:38 2023 @@ -1,4 +1,4 @@ -/* $NetBSD: rf_netbsdkintf.c,v 1.414 2023/09/17 20:07:39 oster Exp $ */ +/* $NetBSD: rf_netbsdkintf.c,v 1.415 2023/09/25 21:59:38 oster Exp $ */ /*- * Copyright (c) 1996, 1997, 1998, 2008-2011 The NetBSD Foundation, Inc. @@ -101,7 +101,7 @@ ***********************************************************/ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: rf_netbsdkintf.c,v 1.414 2023/09/17 20:07:39 oster Exp $"); +__KERNEL_RCSID(0, "$NetBSD: rf_netbsdkintf.c,v 1.415 2023/09/25 21:59:38 oster Exp $"); #ifdef _KERNEL_OPT #include "opt_raid_autoconfig.h" @@ -136,7 +136,6 @@ __KERNEL_RCSID(0, "$NetBSD: rf_netbsdkin #include <dev/raidframe/rf_paritymap.h> #include "rf_raid.h" -#include "rf_copyback.h" #include "rf_dag.h" #include "rf_dagflags.h" #include "rf_desc.h" @@ -296,7 +295,6 @@ static void rf_set_geometry(struct raid_ static void rf_ReconThread(struct rf_recon_req_internal *); static void rf_RewriteParityThread(RF_Raid_t *raidPtr); -static void rf_CopybackThread(RF_Raid_t *raidPtr); static void rf_ReconstructInPlaceThread(struct rf_recon_req_internal *); static int rf_autoconfig(device_t); static int rf_rescan(void); @@ -1069,8 +1067,7 @@ raid_detach_unlocked(struct raid_softc * if (DK_BUSY(dksc, 0) || raidPtr->recon_in_progress != 0 || - raidPtr->parity_rewrite_in_progress != 0 || - raidPtr->copyback_in_progress != 0) + raidPtr->parity_rewrite_in_progress != 0) return EBUSY; if ((rs->sc_flags & RAIDF_INITED) == 0) @@ -1511,8 +1508,7 @@ raidioctl(dev_t dev, u_long cmd, void *d if (DK_BUSY(dksc, pmask) || raidPtr->recon_in_progress != 0 || - raidPtr->parity_rewrite_in_progress != 0 || - raidPtr->copyback_in_progress != 0) + raidPtr->parity_rewrite_in_progress != 0) retcode = EBUSY; else { /* detach and free on close */ @@ -1652,22 +1648,9 @@ raidioctl(dev_t dev, u_long cmd, void *d case RAIDFRAME_FAIL_DISK: return rf_fail_disk(raidPtr, data); - /* invoke a copyback operation after recon on whatever disk - * needs it, if any */ + /* copyback is no longer supported */ case RAIDFRAME_COPYBACK: - - if (raidPtr->Layout.map->faultsTolerated == 0) { - /* This makes no sense on a RAID 0!! */ - return EINVAL; - } - - if (raidPtr->copyback_in_progress == 1) { - /* Copyback is already in progress! */ - return EINVAL; - } - - return RF_CREATE_THREAD(raidPtr->copyback_thread, - rf_CopybackThread, raidPtr, "raid_copyback"); + return EINVAL; /* return the percentage completion of reconstruction */ case RAIDFRAME_CHECK_RECON_STATUS: @@ -1698,17 +1681,7 @@ raidioctl(dev_t dev, u_long cmd, void *d return 0; case RAIDFRAME_CHECK_COPYBACK_STATUS: - if (raidPtr->Layout.map->faultsTolerated == 0) { - /* This makes no sense on a RAID 0 */ - *(int *) data = 100; - return 0; - } - if (raidPtr->copyback_in_progress == 1) { - *(int *) data = 100 * raidPtr->copyback_stripes_done / - raidPtr->Layout.numStripe; - } else { - *(int *) data = 100; - } + *(int *) data = 100; return 0; case RAIDFRAME_CHECK_COPYBACK_STATUS_EXT: @@ -2791,23 +2764,6 @@ rf_RewriteParityThread(RF_Raid_t *raidPt kthread_exit(0); /* does not return */ } - -static void -rf_CopybackThread(RF_Raid_t *raidPtr) -{ - int s; - - raidPtr->copyback_in_progress = 1; - s = splbio(); - rf_CopybackReconstructedData(raidPtr); - splx(s); - raidPtr->copyback_in_progress = 0; - - /* That's all... */ - kthread_exit(0); /* does not return */ -} - - static void rf_ReconstructInPlaceThread(struct rf_recon_req_internal *req) { @@ -3900,16 +3856,9 @@ rf_check_copyback_status_ext(RF_Raid_t * { memset(info, 0, sizeof(*info)); - - if (raidPtr->copyback_in_progress == 1) { - info->total = raidPtr->Layout.numStripe; - info->completed = raidPtr->copyback_stripes_done; - info->remaining = info->total - info->completed; - } else { - info->remaining = 0; - info->completed = 100; - info->total = 100; - } + info->remaining = 0; + info->completed = 100; + info->total = 100; } /* Fill in config with the current info */ Index: src/sys/dev/raidframe/rf_raid.h diff -u src/sys/dev/raidframe/rf_raid.h:1.52 src/sys/dev/raidframe/rf_raid.h:1.53 --- src/sys/dev/raidframe/rf_raid.h:1.52 Sun Sep 17 20:07:39 2023 +++ src/sys/dev/raidframe/rf_raid.h Mon Sep 25 21:59:38 2023 @@ -1,4 +1,4 @@ -/* $NetBSD: rf_raid.h,v 1.52 2023/09/17 20:07:39 oster Exp $ */ +/* $NetBSD: rf_raid.h,v 1.53 2023/09/25 21:59:38 oster Exp $ */ /* * Copyright (c) 1995 Carnegie-Mellon University. * All rights reserved. @@ -209,11 +209,9 @@ struct RF_Raid_s { * Statistics */ RF_StripeCount_t parity_rewrite_stripes_done; - RF_StripeCount_t copyback_stripes_done; int recon_in_progress; int parity_rewrite_in_progress; - int copyback_in_progress; int changing_components; rf_declare_cond2(parity_rewrite_cv); @@ -226,7 +224,6 @@ struct RF_Raid_s { rf_declare_cond2(node_queue_cv); RF_DagNode_t *node_queue; RF_Thread_t parity_rewrite_thread; - RF_Thread_t copyback_thread; RF_Thread_t engine_thread; RF_Thread_t engine_helper_thread; RF_Thread_t recon_thread; Index: src/sys/modules/raid/Makefile diff -u src/sys/modules/raid/Makefile:1.6 src/sys/modules/raid/Makefile:1.7 --- src/sys/modules/raid/Makefile:1.6 Sun Feb 17 04:05:57 2019 +++ src/sys/modules/raid/Makefile Mon Sep 25 21:59:38 2023 @@ -1,4 +1,4 @@ -# $NetBSD: Makefile,v 1.6 2019/02/17 04:05:57 rin Exp $ +# $NetBSD: Makefile,v 1.7 2023/09/25 21:59:38 oster Exp $ .include "../Makefile.inc" @@ -9,7 +9,7 @@ IOCONF= raid.ioconf KMOD= raid SRCS+= rf_acctrace.c rf_alloclist.c rf_aselect.c -SRCS+= rf_callback.c rf_chaindecluster.c rf_copyback.c +SRCS+= rf_callback.c rf_chaindecluster.c SRCS+= rf_cvscan.c rf_dagdegrd.c rf_dagdegwr.c SRCS+= rf_dagffrd.c rf_dagffwr.c rf_dagfuncs.c SRCS+= rf_dagutils.c rf_debugMem.c rf_debugprint.c Index: src/sys/rump/dev/lib/libraidframe/Makefile diff -u src/sys/rump/dev/lib/libraidframe/Makefile:1.13 src/sys/rump/dev/lib/libraidframe/Makefile:1.14 --- src/sys/rump/dev/lib/libraidframe/Makefile:1.13 Wed Feb 6 23:00:56 2019 +++ src/sys/rump/dev/lib/libraidframe/Makefile Mon Sep 25 21:59:38 2023 @@ -1,4 +1,4 @@ -# $NetBSD: Makefile,v 1.13 2019/02/06 23:00:56 christos Exp $ +# $NetBSD: Makefile,v 1.14 2023/09/25 21:59:38 oster Exp $ # .PATH: ${.CURDIR}/../../../../dev/raidframe @@ -8,7 +8,7 @@ COMMENT=RAIDframe (software RAID) IOCONF= RAIDFRAME.ioconf SRCS= rf_acctrace.c rf_alloclist.c rf_aselect.c rf_callback.c \ - rf_chaindecluster.c rf_copyback.c rf_cvscan.c rf_dagdegrd.c \ + rf_chaindecluster.c rf_cvscan.c rf_dagdegrd.c \ rf_dagdegwr.c rf_dagffrd.c rf_dagffwr.c rf_dagfuncs.c \ rf_dagutils.c rf_debugMem.c rf_debugprint.c rf_decluster.c \ rf_declusterPQ.c rf_diskqueue.c rf_disks.c rf_driver.c \