diff options
author | rmacklem <rmacklem@FreeBSD.org> | 2010-09-05 00:47:44 +0000 |
---|---|---|
committer | rmacklem <rmacklem@FreeBSD.org> | 2010-09-05 00:47:44 +0000 |
commit | c42ae211aa74d20de5b6e0d69dd441631b56fa8a (patch) | |
tree | 7288d865a717d1b44fb063a7e829b6e4a74c96a4 | |
parent | 9c22599a5bae6198aea511a7646915eeb3de8aea (diff) | |
download | FreeBSD-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.c | 5 |
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; |