forked from luck/tmp_suning_uos_patched
knfsd: fix reply cache memory corruption
Fix a regression in the reply cache introduced when the code was converted to use proper Linux lists. When a new entry needs to be inserted, the case where all the entries are currently being used by threads is not correctly detected. This can result in memory corruption and a crash. In the current code this is an extremely unlikely corner case; it would require the machine to have 1024 nfsd threads and all of them to be busy at the same time. However, upcoming reply cache changes make this more likely; a crash due to this problem was actually observed in field. Signed-off-by: Greg Banks <gnb@sgi.com> Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu>
This commit is contained in:
parent
fca4217c5b
commit
cf0a586cf4
|
@ -174,8 +174,8 @@ nfsd_cache_lookup(struct svc_rqst *rqstp, int type)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* This should not happen */
|
/* All entries on the LRU are in-progress. This should not happen */
|
||||||
if (rp == NULL) {
|
if (&rp->c_lru == &lru_head) {
|
||||||
static int complaints;
|
static int complaints;
|
||||||
|
|
||||||
printk(KERN_WARNING "nfsd: all repcache entries locked!\n");
|
printk(KERN_WARNING "nfsd: all repcache entries locked!\n");
|
||||||
|
|
Loading…
Reference in New Issue
Block a user