|
@@ -394,7 +394,6 @@ nfsd_cache_lookup(struct svc_rqst *rqstp)
|
|
__wsum csum;
|
|
__wsum csum;
|
|
u32 hash = nfsd_cache_hash(xid);
|
|
u32 hash = nfsd_cache_hash(xid);
|
|
struct nfsd_drc_bucket *b = &drc_hashtbl[hash];
|
|
struct nfsd_drc_bucket *b = &drc_hashtbl[hash];
|
|
- unsigned long age;
|
|
|
|
int type = rqstp->rq_cachetype;
|
|
int type = rqstp->rq_cachetype;
|
|
int rtn = RC_DOIT;
|
|
int rtn = RC_DOIT;
|
|
|
|
|
|
@@ -461,12 +460,11 @@ nfsd_cache_lookup(struct svc_rqst *rqstp)
|
|
found_entry:
|
|
found_entry:
|
|
nfsdstats.rchits++;
|
|
nfsdstats.rchits++;
|
|
/* We found a matching entry which is either in progress or done. */
|
|
/* We found a matching entry which is either in progress or done. */
|
|
- age = jiffies - rp->c_timestamp;
|
|
|
|
lru_put_end(b, rp);
|
|
lru_put_end(b, rp);
|
|
|
|
|
|
rtn = RC_DROPIT;
|
|
rtn = RC_DROPIT;
|
|
- /* Request being processed or excessive rexmits */
|
|
|
|
- if (rp->c_state == RC_INPROG || age < RC_DELAY)
|
|
|
|
|
|
+ /* Request being processed */
|
|
|
|
+ if (rp->c_state == RC_INPROG)
|
|
goto out;
|
|
goto out;
|
|
|
|
|
|
/* From the hall of fame of impractical attacks:
|
|
/* From the hall of fame of impractical attacks:
|