Messages in this thread Patch in this message | | | Date | Thu, 5 Aug 1999 19:22:29 +0200 | From | Kurt Garloff <> | Subject | Re: 2.2.10-ac<x> / 2.2.11-pre<x> NFS client problem & bugfix |
| |
On Thu, Aug 05, 1999 at 03:33:59PM +0200, Trond Myklebust wrote: > With your test I see both the 30second delay (if you don't access the > parent directory in any way) and the 1 second delay. No persistent > negative dentries. > > If this is a major problem, I suggest rather that we fine-tune the > delays, not that we remove support for negative dentry caching. Linus' > typical example was an NFS-shared /usr/share partition (or any NFSroot > system): if you have several users searching for a file in such a > tree, turning off caching of negative dentries can lead to storms of > unnecessary NFS_LOOKUP calls.
What happens, is that the file is *NEVER* seen, which is clearly a bug. Don't argue on that, please. (Here: 2.2.10ac8 w/ knfsd-1.4.2).
How about _not_ resetting the timeout on a new lookup which is not performed actually?
This would not flood the network with unecessary NFS_LOOKUP calls, but with one every second, regardless whether in the meantime sb. made a cached neg. dentry lookup or not.
Patch appended. -- Kurt Garloff <garloff@suse.de> Wuppertal, FRG PGP2 key: See mail header, key servers Linux kernel development SuSE GmbH, Nürnberg, FRG SCSI drivers: tmscsim(DC390), DC395 --- linux/fs/nfs/dir.c.orig Sun Jul 4 23:12:23 1999 +++ linux/fs/nfs/dir.c Thu Aug 5 18:50:11 1999 @@ -438,7 +438,7 @@ if (!inode) { if (nfs_neg_need_reval(dentry)) goto out_bad; - goto out_valid; + goto out_norenew; } if (is_bad_inode(inode)) { @@ -491,6 +491,7 @@ out_valid: nfs_renew_times(dentry); +out_norenew: return 1; out_bad: if (dentry->d_parent->d_inode)[unhandled content-type:application/pgp-signature] | |