[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>
This commit is contained in:
J.Bruce Fields 2006-12-13 00:35:24 -08:00 committed by Linus Torvalds
parent 6899320c2c
commit 021d3a7245
1 changed files with 5 additions and 9 deletions

View File

@ -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;
}