Module Name: src Committed By: oster Date: Tue Jul 27 03:01:48 UTC 2021
Modified Files: src/sys/dev/raidframe: rf_copyback.c rf_dagfuncs.c rf_diskqueue.c rf_diskqueue.h rf_reconstruct.c Log Message: rf_CreateDiskQueueData() no longer uses waitflag, and will always succeed. Cleanup the error path for the (no longer needed) PR_NOWAIT cases. To generate a diff of this commit: cvs rdiff -u -r1.54 -r1.55 src/sys/dev/raidframe/rf_copyback.c cvs rdiff -u -r1.32 -r1.33 src/sys/dev/raidframe/rf_dagfuncs.c cvs rdiff -u -r1.61 -r1.62 src/sys/dev/raidframe/rf_diskqueue.c cvs rdiff -u -r1.28 -r1.29 src/sys/dev/raidframe/rf_diskqueue.h cvs rdiff -u -r1.126 -r1.127 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_copyback.c diff -u src/sys/dev/raidframe/rf_copyback.c:1.54 src/sys/dev/raidframe/rf_copyback.c:1.55 --- src/sys/dev/raidframe/rf_copyback.c:1.54 Fri Jul 23 00:54:45 2021 +++ src/sys/dev/raidframe/rf_copyback.c Tue Jul 27 03:01:48 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: rf_copyback.c,v 1.54 2021/07/23 00:54:45 oster Exp $ */ +/* $NetBSD: rf_copyback.c,v 1.55 2021/07/27 03:01:48 oster Exp $ */ /* * Copyright (c) 1995 Carnegie-Mellon University. * All rights reserved. @@ -38,7 +38,7 @@ ****************************************************************************/ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: rf_copyback.c,v 1.54 2021/07/23 00:54:45 oster Exp $"); +__KERNEL_RCSID(0, "$NetBSD: rf_copyback.c,v 1.55 2021/07/27 03:01:48 oster Exp $"); #include <dev/raidframe/raidframevar.h> @@ -335,12 +335,10 @@ rf_CopybackOne(RF_CopybackDesc_t *desc, /* create reqs to read the old location & write the new */ desc->readreq = rf_CreateDiskQueueData(RF_IO_TYPE_READ, spOffs, sectPerSU, desc->databuf, 0L, 0, rf_CopybackReadDoneProc, desc, - NULL, (void *) raidPtr, RF_DISKQUEUE_DATA_FLAGS_NONE, NULL, - PR_WAITOK); + NULL, (void *) raidPtr, RF_DISKQUEUE_DATA_FLAGS_NONE, NULL); desc->writereq = rf_CreateDiskQueueData(RF_IO_TYPE_WRITE, testOffs, sectPerSU, desc->databuf, 0L, 0, rf_CopybackWriteDoneProc, desc, - NULL, (void *) raidPtr, RF_DISKQUEUE_DATA_FLAGS_NONE, NULL, - PR_WAITOK); + NULL, (void *) raidPtr, RF_DISKQUEUE_DATA_FLAGS_NONE, NULL); desc->fcol = testCol; /* enqueue the read. the write will go out as part of the callback on Index: src/sys/dev/raidframe/rf_dagfuncs.c diff -u src/sys/dev/raidframe/rf_dagfuncs.c:1.32 src/sys/dev/raidframe/rf_dagfuncs.c:1.33 --- src/sys/dev/raidframe/rf_dagfuncs.c:1.32 Fri Jun 19 19:29:39 2020 +++ src/sys/dev/raidframe/rf_dagfuncs.c Tue Jul 27 03:01:48 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: rf_dagfuncs.c,v 1.32 2020/06/19 19:29:39 jdolecek Exp $ */ +/* $NetBSD: rf_dagfuncs.c,v 1.33 2021/07/27 03:01:48 oster Exp $ */ /* * Copyright (c) 1995 Carnegie-Mellon University. * All rights reserved. @@ -48,7 +48,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: rf_dagfuncs.c,v 1.32 2020/06/19 19:29:39 jdolecek Exp $"); +__KERNEL_RCSID(0, "$NetBSD: rf_dagfuncs.c,v 1.33 2021/07/27 03:01:48 oster Exp $"); #include <sys/param.h> #include <sys/ioctl.h> @@ -280,13 +280,10 @@ rf_DiskReadFuncForThreads(RF_DagNode_t * #else NULL, #endif - (void *) (node->dagHdr->raidPtr), 0, node->dagHdr->bp, PR_NOWAIT); - if (!req) { - (node->wakeFunc) (node, ENOMEM); - } else { - node->dagFuncData = (void *) req; - rf_DiskIOEnqueue(&(dqs[pda->col]), req, priority); - } + (void *) (node->dagHdr->raidPtr), 0, node->dagHdr->bp); + + node->dagFuncData = (void *) req; + rf_DiskIOEnqueue(&(dqs[pda->col]), req, priority); } @@ -314,14 +311,10 @@ rf_DiskWriteFuncForThreads(RF_DagNode_t NULL, #endif (void *) (node->dagHdr->raidPtr), - 0, node->dagHdr->bp, PR_NOWAIT); + 0, node->dagHdr->bp); - if (!req) { - (node->wakeFunc) (node, ENOMEM); - } else { - node->dagFuncData = (void *) req; - rf_DiskIOEnqueue(&(dqs[pda->col]), req, priority); - } + node->dagFuncData = (void *) req; + rf_DiskIOEnqueue(&(dqs[pda->col]), req, priority); } /***************************************************************************** * the undo function for disk nodes @@ -343,13 +336,10 @@ rf_DiskUndoFunc(RF_DagNode_t *node) NULL, #endif (void *) (node->dagHdr->raidPtr), - 0, NULL, PR_NOWAIT); - if (!req) - (node->wakeFunc) (node, ENOMEM); - else { - node->dagFuncData = (void *) req; - rf_DiskIOEnqueue(&(dqs[pda->col]), req, RF_IO_NORMAL_PRIORITY); - } + 0, NULL); + + node->dagFuncData = (void *) req; + rf_DiskIOEnqueue(&(dqs[pda->col]), req, RF_IO_NORMAL_PRIORITY); } /***************************************************************************** Index: src/sys/dev/raidframe/rf_diskqueue.c diff -u src/sys/dev/raidframe/rf_diskqueue.c:1.61 src/sys/dev/raidframe/rf_diskqueue.c:1.62 --- src/sys/dev/raidframe/rf_diskqueue.c:1.61 Fri Jul 23 20:18:24 2021 +++ src/sys/dev/raidframe/rf_diskqueue.c Tue Jul 27 03:01:48 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: rf_diskqueue.c,v 1.61 2021/07/23 20:18:24 oster Exp $ */ +/* $NetBSD: rf_diskqueue.c,v 1.62 2021/07/27 03:01:48 oster Exp $ */ /* * Copyright (c) 1995 Carnegie-Mellon University. * All rights reserved. @@ -66,7 +66,7 @@ ****************************************************************************/ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: rf_diskqueue.c,v 1.61 2021/07/23 20:18:24 oster Exp $"); +__KERNEL_RCSID(0, "$NetBSD: rf_diskqueue.c,v 1.62 2021/07/27 03:01:48 oster Exp $"); #include <dev/raidframe/raidframevar.h> @@ -373,8 +373,7 @@ rf_CreateDiskQueueData(RF_IoType_t typ, RF_ReconUnitNum_t which_ru, void (*wakeF) (void *, int), void *arg, RF_AccTraceEntry_t *tracerec, RF_Raid_t *raidPtr, - RF_DiskQueueDataFlags_t flags, const struct buf *mbp, - int waitflag) + RF_DiskQueueDataFlags_t flags, const struct buf *mbp) { RF_DiskQueueData_t *p; Index: src/sys/dev/raidframe/rf_diskqueue.h diff -u src/sys/dev/raidframe/rf_diskqueue.h:1.28 src/sys/dev/raidframe/rf_diskqueue.h:1.29 --- src/sys/dev/raidframe/rf_diskqueue.h:1.28 Fri Jul 23 20:18:24 2021 +++ src/sys/dev/raidframe/rf_diskqueue.h Tue Jul 27 03:01:48 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: rf_diskqueue.h,v 1.28 2021/07/23 20:18:24 oster Exp $ */ +/* $NetBSD: rf_diskqueue.h,v 1.29 2021/07/27 03:01:48 oster Exp $ */ /* * Copyright (c) 1995 Carnegie-Mellon University. * All rights reserved. @@ -142,7 +142,7 @@ RF_DiskQueueData_t *rf_CreateDiskQueueDa void *, RF_AccTraceEntry_t *, RF_Raid_t *, RF_DiskQueueDataFlags_t, - const struct buf *, int); + const struct buf *); void rf_FreeDiskQueueData(RF_DiskQueueData_t *); int rf_ConfigureDiskQueue(RF_Raid_t *, RF_DiskQueue_t *, RF_RowCol_t, const RF_DiskQueueSW_t *, Index: src/sys/dev/raidframe/rf_reconstruct.c diff -u src/sys/dev/raidframe/rf_reconstruct.c:1.126 src/sys/dev/raidframe/rf_reconstruct.c:1.127 --- src/sys/dev/raidframe/rf_reconstruct.c:1.126 Fri Jul 23 00:54:45 2021 +++ src/sys/dev/raidframe/rf_reconstruct.c Tue Jul 27 03:01:48 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: rf_reconstruct.c,v 1.126 2021/07/23 00:54:45 oster Exp $ */ +/* $NetBSD: rf_reconstruct.c,v 1.127 2021/07/27 03:01:48 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.126 2021/07/23 00:54:45 oster Exp $"); +__KERNEL_RCSID(0, "$NetBSD: rf_reconstruct.c,v 1.127 2021/07/27 03:01:48 oster Exp $"); #include <sys/param.h> #include <sys/time.h> @@ -1313,7 +1313,7 @@ TryToRead(RF_Raid_t *raidPtr, RF_RowCol_ #else NULL, #endif - (void *) raidPtr, 0, NULL, PR_WAITOK); + (void *) raidPtr, 0, NULL); ctrl->rbuf->arg = (void *) req; rf_DiskIOEnqueue(&raidPtr->Queues[col], req, RF_IO_RECON_PRIORITY); @@ -1501,7 +1501,7 @@ IssueNextWriteRequest(RF_Raid_t *raidPtr #else NULL, #endif - (void *) raidPtr, 0, NULL, PR_WAITOK); + (void *) raidPtr, 0, NULL); rbuf->arg = (void *) req; rf_lock_mutex2(raidPtr->reconControl->rb_mutex); @@ -1827,7 +1827,7 @@ rf_ForceOrBlockRecon(RF_Raid_t *raidPtr, psid, which_ru, ForceReconReadDoneProc, (void *) new_rbuf, - NULL, (void *) raidPtr, 0, NULL, PR_WAITOK); + NULL, (void *) raidPtr, 0, NULL); new_rbuf->arg = req; rf_DiskIOEnqueue(&raidPtr->Queues[diskno], req, RF_IO_NORMAL_PRIORITY); /* enqueue the I/O */