patch-2.4.19 linux-2.4.19/fs/nfsd/nfsfh.c
Next file: linux-2.4.19/fs/nfsd/nfssvc.c
Previous file: linux-2.4.19/fs/nfsd/nfsctl.c
Back to the patch index
Back to the overall index
- Lines: 45
- Date:
Fri Aug 2 17:39:45 2002
- Orig file:
linux-2.4.18/fs/nfsd/nfsfh.c
- Orig date:
Wed Oct 3 22:59:22 2001
diff -urN linux-2.4.18/fs/nfsd/nfsfh.c linux-2.4.19/fs/nfsd/nfsfh.c
@@ -576,11 +576,9 @@
error = nfserr_stale;
exp = exp_get(rqstp->rq_client, xdev, xino);
- if (!exp) {
+ if (!exp)
/* export entry revoked */
- nfsdstats.fh_stale++;
goto out;
- }
/* Check if the request originated from a secure port. */
error = nfserr_perm;
@@ -657,7 +655,7 @@
* write call).
*/
- /* When is type ever negative? */
+ /* Type can be negative to e.g. exclude directories from linking */
if (type > 0 && (inode->i_mode & S_IFMT) != type) {
error = (type == S_IFDIR)? nfserr_notdir : nfserr_isdir;
goto out;
@@ -690,13 +688,11 @@
&& !(tdentry->d_inode->i_mode & S_IXOTH)
) {
error = nfserr_stale;
- nfsdstats.fh_stale++;
dprintk("fh_verify: no root_squashed access.\n");
}
} while ((tdentry != tdentry->d_parent));
if (exp->ex_dentry != tdentry) {
error = nfserr_stale;
- nfsdstats.fh_stale++;
printk("nfsd Security: %s/%s bad export.\n",
dentry->d_parent->d_name.name,
dentry->d_name.name);
@@ -716,6 +712,8 @@
}
#endif
out:
+ if (error == nfserr_stale)
+ nfsdstats.fh_stale++;
return error;
}
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)