diff options
author | J.Bruce Fields <bfields@fieldses.org> | 2006-12-13 00:35:24 -0800 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.osdl.org> | 2006-12-13 09:05:54 -0800 |
commit | 021d3a72459191a76e8e482ee4937ba6bc9fd712 (patch) | |
tree | 91ce9262bac94a50f069016dae9ef8b4d88c8816 | |
parent | 6899320c2cefe5ae6b606f820ba8b762ba21f34a (diff) | |
download | op-kernel-dev-021d3a72459191a76e8e482ee4937ba6bc9fd712.zip op-kernel-dev-021d3a72459191a76e8e482ee4937ba6bc9fd712.tar.gz |
[PATCH] knfsd: nfsd4: handling more nfsd_cross_mnt errors in nfsd4 readdir
This patch on its own causes no change in behavior, since nfsd_cross_mnt()
only returns -EAGAIN; but in the future I'd like it to also be able to return
-ETIMEDOUT, so we may as well handle any possible error here.
Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu>
Signed-off-by: Neil Brown <neilb@suse.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-rw-r--r-- | fs/nfsd/nfs4xdr.c | 14 |
1 files changed, 5 insertions, 9 deletions
diff --git a/fs/nfsd/nfs4xdr.c b/fs/nfsd/nfs4xdr.c index f3f239d..fea4636 100644 --- a/fs/nfsd/nfs4xdr.c +++ b/fs/nfsd/nfs4xdr.c @@ -1845,15 +1845,11 @@ nfsd4_encode_dirent_fattr(struct nfsd4_readdir *cd, exp_get(exp); if (d_mountpoint(dentry)) { - if (nfsd_cross_mnt(cd->rd_rqstp, &dentry, &exp)) { - /* - * -EAGAIN is the only error returned from - * nfsd_cross_mnt() and it indicates that an - * up-call has been initiated to fill in the export - * options on exp. When the answer comes back, - * this call will be retried. - */ - nfserr = nfserr_dropit; + int err; + + err = nfsd_cross_mnt(cd->rd_rqstp, &dentry, &exp); + if (err) { + nfserr = nfserrno(err); goto out_put; } |