mirror of https://gitee.com/openkylin/linux.git
[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:
parent
6899320c2c
commit
021d3a7245
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue