Skip to content

Commit

Permalink
sunrpc/cache: avoid variable over-loading in cache_defer_req
Browse files Browse the repository at this point in the history
In cache_defer_req, 'dreq' is used for two significantly different
values that happen to be of the same type.

This is both confusing, and makes it hard to extend the range of one of
the values as we will in the next patch.
So introduce 'discard' to take one of the values.

Signed-off-by: NeilBrown <[email protected]>
Signed-off-by: J. Bruce Fields <[email protected]>
  • Loading branch information
neilbrown authored and J. Bruce Fields committed Sep 18, 2009
1 parent 67e7328 commit cd68c37
Showing 1 changed file with 9 additions and 9 deletions.
18 changes: 9 additions & 9 deletions net/sunrpc/cache.c
Original file line number Diff line number Diff line change
Expand Up @@ -500,7 +500,7 @@ static int cache_defer_cnt;

static int cache_defer_req(struct cache_req *req, struct cache_head *item)
{
struct cache_deferred_req *dreq;
struct cache_deferred_req *dreq, *discard;
int hash = DFR_HASH(item);

if (cache_defer_cnt >= DFR_MAX) {
Expand All @@ -525,20 +525,20 @@ static int cache_defer_req(struct cache_req *req, struct cache_head *item)
list_add(&dreq->hash, &cache_defer_hash[hash]);

/* it is in, now maybe clean up */
dreq = NULL;
discard = NULL;
if (++cache_defer_cnt > DFR_MAX) {
dreq = list_entry(cache_defer_list.prev,
struct cache_deferred_req, recent);
list_del_init(&dreq->recent);
list_del_init(&dreq->hash);
discard = list_entry(cache_defer_list.prev,
struct cache_deferred_req, recent);
list_del_init(&discard->recent);
list_del_init(&discard->hash);
cache_defer_cnt--;
}
spin_unlock(&cache_defer_lock);

if (dreq) {
if (discard)
/* there was one too many */
dreq->revisit(dreq, 1);
}
discard->revisit(discard, 1);

if (!test_bit(CACHE_PENDING, &item->flags)) {
/* must have just been validated... */
cache_revisit_request(item);
Expand Down

0 comments on commit cd68c37

Please sign in to comment.