[PATCH] knfsd: nfsd: make exp_rootfh handle exp_parent errors
authorJ.Bruce Fields <bfields@fieldses.org>
Wed, 13 Dec 2006 08:35:21 +0000 (00:35 -0800)
committerLinus Torvalds <torvalds@woody.osdl.org>
Wed, 13 Dec 2006 17:05:53 +0000 (09:05 -0800)
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>
fs/nfsd/export.c

index f37df46d2eaa5d13042a0557c79a27ff2d510873..0747bb5ffcf18a5b117b9ce453232eae18271039 100644 (file)
@@ -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;