summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorrmacklem <rmacklem@FreeBSD.org>2010-09-05 00:47:44 +0000
committerrmacklem <rmacklem@FreeBSD.org>2010-09-05 00:47:44 +0000
commitc42ae211aa74d20de5b6e0d69dd441631b56fa8a (patch)
tree7288d865a717d1b44fb063a7e829b6e4a74c96a4
parent9c22599a5bae6198aea511a7646915eeb3de8aea (diff)
downloadFreeBSD-src-c42ae211aa74d20de5b6e0d69dd441631b56fa8a.zip
FreeBSD-src-c42ae211aa74d20de5b6e0d69dd441631b56fa8a.tar.gz
Change the code in ncl_bioread() in the experimental NFS
client to return an error when rabp is not set, so it behaves the same way as the regular NFS client for this case. It does not affect NFSv4, since nfs_getcacheblk() only fails for "intr" mounts and NFSv4 can't use the "intr" mount option. MFC after: 2 weeks
-rw-r--r--sys/fs/nfsclient/nfs_clbio.c5
1 files changed, 1 insertions, 4 deletions
diff --git a/sys/fs/nfsclient/nfs_clbio.c b/sys/fs/nfsclient/nfs_clbio.c
index a98172f..98363e8 100644
--- a/sys/fs/nfsclient/nfs_clbio.c
+++ b/sys/fs/nfsclient/nfs_clbio.c
@@ -510,10 +510,7 @@ ncl_bioread(struct vnode *vp, struct uio *uio, int ioflag, struct ucred *cred)
rabp = nfs_getcacheblk(vp, rabn, biosize, td);
if (!rabp) {
error = newnfs_sigintr(nmp, td);
- if (error)
- return (error);
- else
- break;
+ return (error ? error : EINTR);
}
if ((rabp->b_flags & (B_CACHE|B_DELWRI)) == 0) {
rabp->b_flags |= B_ASYNC;
OpenPOWER on IntegriCloud