diff options
author | J.Bruce Fields <bfields@fieldses.org> | 2006-12-13 00:35:21 -0800 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.osdl.org> | 2006-12-13 09:05:53 -0800 |
commit | 4b41bd85d5f93af37c2730df172aeb54280be7c3 (patch) | |
tree | 2560c8645658706c386dddb498c6a824cfa2345b | |
parent | e57101991156aaba97c630f38e880f0d4012edcd (diff) |
[PATCH] knfsd: nfsd: make exp_rootfh handle exp_parent errors
Since exp_parent can fail by returning an error (-EAGAIN) in addition to by
returning NULL, we should check for that case in exp_rootfh.
(TODO: we should check that userland handles these errors too.)
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/export.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/fs/nfsd/export.c b/fs/nfsd/export.c index f37df46d2eaa..0747bb5ffcf1 100644 --- a/fs/nfsd/export.c +++ b/fs/nfsd/export.c @@ -1104,6 +1104,10 @@ exp_rootfh(svc_client *clp, char *path, struct knfsd_fh *f, int maxsize) path, nd.dentry, clp->name, inode->i_sb->s_id, inode->i_ino); exp = exp_parent(clp, nd.mnt, nd.dentry, NULL); + if (IS_ERR(exp)) { + err = PTR_ERR(exp); + goto out; + } if (!exp) { dprintk("nfsd: exp_rootfh export not found.\n"); goto out; |