diff options
Diffstat (limited to 'fs/nfsd/filecache.c')
| -rw-r--r-- | fs/nfsd/filecache.c | 9 | 
1 files changed, 5 insertions, 4 deletions
diff --git a/fs/nfsd/filecache.c b/fs/nfsd/filecache.c index f172412447f5..9cb2d590c036 100644 --- a/fs/nfsd/filecache.c +++ b/fs/nfsd/filecache.c @@ -309,11 +309,12 @@ nfsd_file_put(struct nfsd_file *nf)  	if (test_bit(NFSD_FILE_HASHED, &nf->nf_flags) == 0) {  		nfsd_file_flush(nf);  		nfsd_file_put_noref(nf); -	} else { +	} else if (nf->nf_file) {  		nfsd_file_put_noref(nf); -		if (nf->nf_file) -			nfsd_file_schedule_laundrette(); -	} +		nfsd_file_schedule_laundrette(); +	} else +		nfsd_file_put_noref(nf); +  	if (atomic_long_read(&nfsd_filecache_count) >= NFSD_FILE_LRU_LIMIT)  		nfsd_file_gc();  }  | 
