diff options
author | J.Bruce Fields <bfields@fieldses.org> | 2006-12-13 03:35:24 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.osdl.org> | 2006-12-13 12:05:54 -0500 |
commit | 021d3a72459191a76e8e482ee4937ba6bc9fd712 (patch) | |
tree | 91ce9262bac94a50f069016dae9ef8b4d88c8816 | |
parent | 6899320c2cefe5ae6b606f820ba8b762ba21f34a (diff) |
[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 f3f239db04bb..fea46368afb2 100644 --- a/fs/nfsd/nfs4xdr.c +++ b/fs/nfsd/nfs4xdr.c | |||
@@ -1845,15 +1845,11 @@ nfsd4_encode_dirent_fattr(struct nfsd4_readdir *cd, | |||
1845 | 1845 | ||
1846 | exp_get(exp); | 1846 | exp_get(exp); |
1847 | if (d_mountpoint(dentry)) { | 1847 | if (d_mountpoint(dentry)) { |
1848 | if (nfsd_cross_mnt(cd->rd_rqstp, &dentry, &exp)) { | 1848 | int err; |
1849 | /* | 1849 | |
1850 | * -EAGAIN is the only error returned from | 1850 | err = nfsd_cross_mnt(cd->rd_rqstp, &dentry, &exp); |
1851 | * nfsd_cross_mnt() and it indicates that an | 1851 | if (err) { |
1852 | * up-call has been initiated to fill in the export | 1852 | nfserr = nfserrno(err); |
1853 | * options on exp. When the answer comes back, | ||
1854 | * this call will be retried. | ||
1855 | */ | ||
1856 | nfserr = nfserr_dropit; | ||
1857 | goto out_put; | 1853 | goto out_put; |
1858 | } | 1854 | } |
1859 | 1855 | ||