diff options
| author | Greg Lehey <grog@FreeBSD.org> | 1999-08-14 06:21:45 +0000 |
|---|---|---|
| committer | Greg Lehey <grog@FreeBSD.org> | 1999-08-14 06:21:45 +0000 |
| commit | 98256dfef8a1e789e23497062c839d83ef7c216e (patch) | |
| tree | 44b6ce986b202810599a8183bd176b977a1f00b6 | |
| parent | 43b967dbef57c23f3f58611c298e4a32642d1c1f (diff) | |
Notes
| -rw-r--r-- | sys/dev/vinum/request.h | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/sys/dev/vinum/request.h b/sys/dev/vinum/request.h index 66e004cf6a72..334de787c6c6 100644 --- a/sys/dev/vinum/request.h +++ b/sys/dev/vinum/request.h @@ -74,8 +74,7 @@ enum xferinfo { * 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 sectors. */ struct rqelement { @@ -118,6 +117,7 @@ struct rqgroup { int badsdno; /* index of bad subdisk or -1 */ enum xferinfo flags; /* description of transfer */ struct rqelement rqe[0]; /* and the elements of this request */ + struct rangelock *lock; /* lock for this transfer */ }; /* @@ -175,12 +175,16 @@ enum rqinfo_type { loginfo_rqe, /* user RQE */ loginfo_iodone, /* iodone */ loginfo_raid5_data, /* write RAID-5 data block */ - loginfo_raid5_parity /* write RAID-5 parity block */ + loginfo_raid5_parity, /* write RAID-5 parity block */ + loginfo_lockwait, /* wait for range lock */ + loginfo_lock, /* lock range */ + loginfo_unlock, /* unlock range */ }; union rqinfou { /* info to pass to logrq */ struct buf *bp; struct rqelement *rqe; /* address of request, for correlation */ + struct rangelock *lockinfo; }; struct rqinfo { @@ -192,6 +196,7 @@ struct rqinfo { union { struct buf b; /* yup, the *whole* buffer header */ struct rqelement rqe; /* and the whole rqe */ + struct rangelock lockinfo; } info; }; @@ -238,3 +243,9 @@ enum daemon_option { daemon_stopped = 2, daemon_noupdate = 4, /* don't update the disk config, for recovery */ }; + +void freerq(struct request *rq); +void unlockrange(struct rqgroup *rqg); +/* Local Variables: */ +/* fill-column: 50 */ +/* End: */ |
