fs/nfsd/vfs.c in 2.3.99-pre7-1

From: Andrew Morton (andrewm@uow.edu.au)
Date: Sat Apr 29 2000 - 09:08:13 EST


Something very bad seems to have happened to it. NFS doesn't
work at all.

A hastily-tested fix is attached. Someone had better check the
assumptions about
errno type errors and nfs type errors.

-- 
-akpm-

--- linux-2.3.99-pre7-1/fs/nfsd/vfs.c Sat Apr 29 21:26:09 2000 +++ linux-akpm/fs/nfsd/vfs.c Sat Apr 29 23:56:49 2000 @@ -141,8 +141,8 @@ } else { dentry = lookup_one(name, dparent); err = PTR_ERR(dentry); - if (err) - goto out_nfserr; + if (IS_ERR(err)) + goto out; /* * check if we have crossed a mount point ... */ @@ -833,10 +833,10 @@ dchild = lookup_one(fname, dentry); err = PTR_ERR(dchild); if (IS_ERR(dchild)) - goto out_nfserr; + goto out; err = fh_compose(resfhp, fhp->fh_export, dchild); if (err) - goto out; + goto out_nfserr; } else { /* called from nfsd_proc_create */ dchild = resfhp->fh_dentry; @@ -955,8 +955,8 @@ */ dchild = lookup_one(fname, dentry); err = PTR_ERR(dchild); - if(IS_ERR(dchild)) - goto out_nfserr; + if (IS_ERR(dchild)) + goto out; err = fh_compose(resfhp, fhp->fh_export, dchild); if (err) @@ -1103,7 +1103,7 @@ dnew = lookup_one(fname, dentry); err = PTR_ERR(dnew); if (IS_ERR(dnew)) - goto out_nfserr; + goto out; err = vfs_symlink(dentry->d_inode, dnew, path); if (!err) { @@ -1168,7 +1168,7 @@ dnew = lookup_one(fname, ddir); err = PTR_ERR(dnew); if (IS_ERR(dnew)) - goto out_nfserr; + goto out; dold = tfhp->fh_dentry; dest = dold->d_inode; @@ -1233,7 +1233,7 @@ odentry = lookup_one(fname, fdentry); err = PTR_ERR(odentry); if (IS_ERR(odentry)) - goto out_nfserr; + goto out; err = -ENOENT; if (!odentry->d_inode) @@ -1269,8 +1269,6 @@ out_dput_old: dput(odentry); - if (err) - goto out_nfserr; out: return err; @@ -1305,7 +1303,7 @@ rdentry = lookup_one(fname, dentry); err = PTR_ERR(rdentry); if (IS_ERR(rdentry)) - goto out_nfserr; + goto out; if (!rdentry->d_inode) { dput(rdentry);

- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Sun Apr 30 2000 - 21:00:16 EST