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 */