summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorgrog <grog@FreeBSD.org>1999-06-24 08:52:27 +0000
committergrog <grog@FreeBSD.org>1999-06-24 08:52:27 +0000
commit8d8bf4059a879c24b56b934d3b3efda655a32a7f (patch)
tree33c008b5e1a9d198ab7acad0b2e25e0bec9e417c
parent2dc95534a1633adba8c3af9f18fcd4877cb67e83 (diff)
downloadFreeBSD-src-8d8bf4059a879c24b56b934d3b3efda655a32a7f.zip
FreeBSD-src-8d8bf4059a879c24b56b934d3b3efda655a32a7f.tar.gz
Clarify some comments.
struct request: Add a daemon function to close drives when they go down.
-rw-r--r--sys/dev/vinum/request.h46
1 files changed, 26 insertions, 20 deletions
diff --git a/sys/dev/vinum/request.h b/sys/dev/vinum/request.h
index 93010e6..b070f85 100644
--- a/sys/dev/vinum/request.h
+++ b/sys/dev/vinum/request.h
@@ -20,7 +20,7 @@
* 4. Neither the name of the Company nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
- *
+ *
* This software is provided ``as is'', and any express or implied
* warranties, including, but not limited to, the implied warranties of
* merchantability and fitness for a particular purpose are disclaimed.
@@ -33,7 +33,7 @@
* otherwise) arising in any way out of the use of this software, even if
* advised of the possibility of such damage.
*
- * $Id: request.h,v 1.13 1999/01/14 05:46:22 grog Exp grog $
+ * $Id: request.h,v 1.14 1999/03/16 03:37:50 grog Exp grog $
*/
/* Information needed to set up a transfer */
@@ -66,16 +66,18 @@ enum xferinfo {
};
/*
- * Describe one low-level request, part
- * of a high-level request. This is an
- * extended struct buf buffer, and the first
- * element *must* be a struct buf. We pass this structure
- * to the I/O routines instead of a struct buf in oder
- * to be able to locate the high-level request when it
- * completes.
+ * Describe one low-level request, part of a
+ * high-level request. This is an extended
+ * struct buf buffer, and the first element
+ * *must* be a struct buf. We pass this
+ * structure to the I/O routines instead of a
+ * struct buf in order to be able to locate the
+ * high-level request when it completes.
*
- * All offsets and lengths are in "blocks", i.e. sectors
+ * All offsets and lengths are in "blocks",
+ * i.e. sectors.
*/
+
struct rqelement {
struct buf b; /* buf structure */
struct rqgroup *rqg; /* pointer to our group */
@@ -83,14 +85,16 @@ struct rqelement {
daddr_t sdoffset; /* offset in subdisk */
int useroffset; /* offset in user buffer of normal data */
/*
- * dataoffset and datalen refer to "individual"
- * data transfers (normal read, parityless write)
- * and also degraded write.
+ * dataoffset and datalen refer to
+ * "individual" data transfers which involve
+ * only this drive (normal read, parityless
+ * write) and also degraded write.
*
* groupoffset and grouplen refer to the other
- * "group" operations (normal write, recovery read)
- * Both the offsets are relative to the start of the
- * local buffer
+ * "group" operations (normal write, recovery
+ * read) which involve more than one drive.
+ * Both the offsets are relative to the start
+ * of the local buffer.
*/
int dataoffset; /* offset in buffer of the normal data */
int groupoffset; /* offset in buffer of group data */
@@ -105,7 +109,7 @@ struct rqelement {
/*
* A group of requests built to satisfy a certain
- * component of a user request
+ * component of a user request.
*/
struct rqgroup {
struct rqgroup *next; /* pointer to next group */
@@ -120,7 +124,7 @@ struct rqgroup {
/*
* Describe one high-level request and the
- * work we have to do to satisfy it
+ * work we have to do to satisfy it.
*/
struct request {
struct buf *bp; /* pointer to the high-level request */
@@ -140,7 +144,7 @@ struct request {
/*
* Extended buffer header for subdisk I/O. Includes
- * a pointer to the user I/O request.
+ * a pointer to the user I/O request.
*/
struct sdbuf {
struct buf b; /* our buffer */
@@ -153,7 +157,7 @@ struct sdbuf {
* Values returned by rqe and friends.
* Be careful with these: they are in order of increasing
* seriousness. Some routines check for > REQUEST_RECOVERED
- * to indicate a completely failed request.
+ * to indicate a completely failed request.
*/
enum requeststatus {
REQUEST_OK, /* request built OK */
@@ -206,6 +210,7 @@ enum daemonrq {
daemonrq_ping, /* show sign of life */
daemonrq_init, /* initialize a plex */
daemonrq_revive, /* revive a subdisk */
+ daemonrq_closedrive, /* close a drive */
};
/* info field for daemon requests */
@@ -213,6 +218,7 @@ union daemoninfo { /* and the request information */
struct request *rq; /* for daemonrq_ioerror */
struct sd *sd; /* for daemonrq_revive */
struct plex *plex; /* for daemonrq_init */
+ struct drive *drive; /* for daemonrq_closedrive */
int nothing; /* for passing NULL */
};
OpenPOWER on IntegriCloud