diff options
author | ps <ps@FreeBSD.org> | 2004-12-06 21:11:15 +0000 |
---|---|---|
committer | ps <ps@FreeBSD.org> | 2004-12-06 21:11:15 +0000 |
commit | eeccf3813d92c16c33f1985fb7edf26c7c20c808 (patch) | |
tree | 83e874ad8aa3b9b3120558628b84b3010046974d /sys/nfsclient/nfs.h | |
parent | 2b5157cd0d38228760370d2fcb197f915ce3b93d (diff) | |
download | FreeBSD-src-eeccf3813d92c16c33f1985fb7edf26c7c20c808.zip FreeBSD-src-eeccf3813d92c16c33f1985fb7edf26c7c20c808.tar.gz |
Rewrite of the NFS client's reply handling. We now have NFS socket
upcalls which do RPC header parsing and match up the reply with the
request. NFS calls now sleep on the nfsreq structure. This enables
us to eliminate the NFS recvlock.
Submitted by: Mohan Srinivasan mohans at yahoo-inc dot com
Diffstat (limited to 'sys/nfsclient/nfs.h')
-rw-r--r-- | sys/nfsclient/nfs.h | 22 |
1 files changed, 7 insertions, 15 deletions
diff --git a/sys/nfsclient/nfs.h b/sys/nfsclient/nfs.h index 648120b..4743ea2 100644 --- a/sys/nfsclient/nfs.h +++ b/sys/nfsclient/nfs.h @@ -90,8 +90,6 @@ #define NFSSTA_GOTFSINFO 0x00100000 /* Got the V3 fsinfo */ #define NFSSTA_SNDLOCK 0x01000000 /* Send socket lock */ #define NFSSTA_WANTSND 0x02000000 /* Want above */ -#define NFSSTA_RCVLOCK 0x04000000 /* Rcv socket lock */ -#define NFSSTA_WANTRCV 0x08000000 /* Want above */ #define NFSSTA_TIMEO 0x10000000 /* Experiencing a timeout */ @@ -151,19 +149,6 @@ struct vattr; struct nameidata; /* - * The set of signals that interrupt an I/O in progress for NFSMNT_INT mounts. - * What should be in this set is open to debate, but I believe that since - * I/O system calls on ufs are never interrupted by signals the set should - * be minimal. My reasoning is that many current programs that use signals - * such as SIGALRM will not expect file I/O system calls to be interrupted - * by them and break. - */ -#define NFSINT_SIGMASK(set) \ - (SIGISMEMBER(set, SIGINT) || SIGISMEMBER(set, SIGTERM) || \ - SIGISMEMBER(set, SIGHUP) || SIGISMEMBER(set, SIGKILL) || \ - SIGISMEMBER(set, SIGQUIT)) - -/* * Socket errors ignored for connectionless sockets?? * For now, ignore them all */ @@ -321,6 +306,13 @@ int nfs_fsinfo(struct nfsmount *, struct vnode *, struct ucred *, int nfs_meta_setsize (struct vnode *, struct ucred *, struct thread *, u_quad_t); +void nfs_set_sigmask __P((struct thread *td, sigset_t *oldset)); +void nfs_restore_sigmask __P((struct thread *td, sigset_t *set)); +int nfs_tsleep __P((struct thread *td, void *ident, int priority, char *wmesg, + int timo)); +int nfs_msleep __P((struct thread *td, void *ident, struct mtx *mtx, int priority, + char *wmesg, int timo)); + #endif /* _KERNEL */ #endif |