summaryrefslogtreecommitdiffstats
path: root/sys/dev
diff options
context:
space:
mode:
authorgrog <grog@FreeBSD.org>1999-08-24 02:23:21 +0000
committergrog <grog@FreeBSD.org>1999-08-24 02:23:21 +0000
commita7b84f6d056a53296ed549087422521cc2feeea3 (patch)
tree6f4a6a587ca841e6c1006066dac3b1de8f317a7b /sys/dev
parent9e831b88aa6cc24fc8f081b60a9b9d646f85e56c (diff)
downloadFreeBSD-src-a7b84f6d056a53296ed549087422521cc2feeea3.zip
FreeBSD-src-a7b84f6d056a53296ed549087422521cc2feeea3.tar.gz
Change parameters of unlockrange to allow calling from revive_block,
which doesn't use request groups.
Diffstat (limited to 'sys/dev')
-rw-r--r--sys/dev/vinum/vinuminterrupt.c22
-rw-r--r--sys/dev/vinum/vinumlock.c30
2 files changed, 26 insertions, 26 deletions
diff --git a/sys/dev/vinum/vinuminterrupt.c b/sys/dev/vinum/vinuminterrupt.c
index fcaa168..e497d6c 100644
--- a/sys/dev/vinum/vinuminterrupt.c
+++ b/sys/dev/vinum/vinuminterrupt.c
@@ -39,7 +39,7 @@
* otherwise) arising in any way out of the use of this software, even if
* advised of the possibility of such damage.
*
- * $Id: vinuminterrupt.c,v 1.15 1999/08/14 06:25:52 grog Exp $
+ * $Id: vinuminterrupt.c,v 1.6 1999/06/18 00:50:53 grog Exp grog $
*/
#include <dev/vinum/vinumhdr.h>
@@ -58,7 +58,7 @@ void sdio_done(struct buf *bp);
* The bp parameter is in fact a struct rqelement, which
* includes a couple of extras at the end.
*/
-void
+void
complete_rqe(struct buf *bp)
{
struct rqelement *rqe;
@@ -132,7 +132,7 @@ complete_rqe(struct buf *bp)
* In a normal read, we will normally read directly
* into the user buffer. This doesn't work if
* we're also doing a recovery, so we have to
- * copy it
+ * copy it
*/
if (rqe->flags & XFR_NORMAL_READ) { /* normal read as well, */
char *src = &rqe->b.b_data[rqe->dataoffset << DEV_BSHIFT]; /* read data is here */
@@ -172,7 +172,7 @@ complete_rqe(struct buf *bp)
}
/* Free a request block and anything hanging off it */
-void
+void
freerq(struct request *rq)
{
struct rqgroup *rqg;
@@ -181,7 +181,7 @@ freerq(struct request *rq)
for (rqg = rq->rqg; rqg != NULL; rqg = nrqg) { /* through the whole request chain */
if (rqg->lock) /* got a lock? */
- unlockrange(rqg); /* yes, free it */
+ unlockrange(rqg->plexno, rqg->lock); /* yes, free it */
for (rqno = 0; rqno < rqg->count; rqno++)
if ((rqg->rqe[rqno].flags & XFR_MALLOCED) /* data buffer was malloced, */
&&rqg->rqe[rqno].b.b_data) /* and the allocation succeeded */
@@ -193,7 +193,7 @@ freerq(struct request *rq)
}
/* I/O on subdisk completed */
-void
+void
sdio_done(struct buf *bp)
{
struct sdbuf *sbp;
@@ -221,7 +221,7 @@ sdio_done(struct buf *bp)
}
/* Start the second phase of a RAID5 group write operation. */
-void
+void
complete_raid5_write(struct rqelement *rqe)
{
int *sdata; /* source */
@@ -247,7 +247,7 @@ complete_raid5_write(struct rqelement *rqe)
* the same thing in each case: we perform an
* exclusive or to the parity block. The only
* difference is the origin of the data and the
- * address range.
+ * address range.
*/
if (rqe->flags & XFR_DEGRADED_WRITE) { /* do the degraded write stuff */
@@ -260,7 +260,7 @@ complete_raid5_write(struct rqelement *rqe)
* This can do with improvement. If we're doing
* both a degraded and a normal write, we don't
* need to xor (nor to read) the part of the block
- * that we're going to overwrite. FIXME XXX
+ * that we're going to overwrite. FIXME XXX
*/
rqe = &rqg->rqe[rqno]; /* this request */
sdata = (int *) (&rqe->b.b_data[rqe->groupoffset << DEV_BSHIFT]); /* old data */
@@ -271,7 +271,7 @@ complete_raid5_write(struct rqelement *rqe)
* we started the request, we zeroed the parity
* block, so the result of adding all the other
* blocks and the block we want to write will be
- * the correct parity block.
+ * the correct parity block.
*/
for (count = 0; count < length; count++)
pdata[count] ^= sdata[count];
@@ -294,7 +294,7 @@ complete_raid5_write(struct rqelement *rqe)
length = rqe->datalen << (DEV_BSHIFT - 2); /* and count involved */
/*
* "remove" the old data block
- * from the parity block
+ * from the parity block
*/
if ((pdata < ((int *) prqe->b.b_data))
|| (&pdata[length] > ((int *) (prqe->b.b_data + prqe->b.b_bcount)))
diff --git a/sys/dev/vinum/vinumlock.c b/sys/dev/vinum/vinumlock.c
index c524f3b..9daf64d 100644
--- a/sys/dev/vinum/vinumlock.c
+++ b/sys/dev/vinum/vinumlock.c
@@ -51,10 +51,10 @@
/* Lock a drive, wait if it's in use */
#if VINUMDEBUG
-int
+int
lockdrive(struct drive *drive, char *file, int line)
#else
-int
+int
lockdrive(struct drive *drive)
#endif
{
@@ -103,7 +103,7 @@ lockdrive(struct drive *drive)
}
/* Unlock a drive and let the next one at it */
-void
+void
unlockdrive(struct drive *drive)
{
drive->flags &= ~VF_LOCKED;
@@ -112,7 +112,7 @@ unlockdrive(struct drive *drive)
}
/* Lock a volume, wait if it's in use */
-int
+int
lockvol(struct volume *vol)
{
int error;
@@ -136,7 +136,7 @@ lockvol(struct volume *vol)
}
/* Unlock a volume and let the next one at it */
-void
+void
unlockvol(struct volume *vol)
{
vol->flags &= ~VF_LOCKED;
@@ -147,7 +147,7 @@ unlockvol(struct volume *vol)
}
/* Lock a plex, wait if it's in use */
-int
+int
lockplex(struct plex *plex)
{
int error;
@@ -171,7 +171,7 @@ lockplex(struct plex *plex)
}
/* Unlock a plex and let the next one at it */
-void
+void
unlockplex(struct plex *plex)
{
plex->flags &= ~VF_LOCKED;
@@ -286,23 +286,23 @@ lockrange(daddr_t stripe, struct buf *bp, struct plex *plex)
}
/* Unlock a volume and let the next one at it */
-void
-unlockrange(struct rqgroup *rqg)
+void
+unlockrange(int plexno, struct rangelock *lock)
{
daddr_t lockaddr;
#ifdef VINUMDEBUG
if (debug & DEBUG_LASTREQS)
- logrq(loginfo_unlock, (union rqinfou) rqg->lock, rqg->lock->bp);
+ logrq(loginfo_unlock, (union rqinfou) lock, lock->bp);
#endif
- lockaddr = rqg->lock->stripe;
- rqg->lock->stripe = 0; /* no longer used */
- PLEX[rqg->plexno].usedlocks--; /* one less lock */
+ lockaddr = lock->stripe;
+ lock->stripe = 0; /* no longer used */
+ PLEX[plexno].usedlocks--; /* one less lock */
wakeup((void *) lockaddr);
}
/* Get a lock for the global config, wait if it's not available */
-int
+int
lock_config(void)
{
int error;
@@ -317,7 +317,7 @@ lock_config(void)
}
/* Unlock and wake up any waiters */
-void
+void
unlock_config(void)
{
vinum_conf.flags &= ~VF_LOCKED;
OpenPOWER on IntegriCloud