sunrpc/cache: fix recent breakage of cache_clean_deferred
authorNeilBrown <neilb@suse.de>
Wed, 22 Sep 2010 02:55:06 +0000 (12:55 +1000)
committerJ. Bruce Fields <bfields@redhat.com>
Wed, 22 Sep 2010 19:33:12 +0000 (15:33 -0400)
commit 6610f720e9e8103c22d1f1ccf8fbb695550a571f
broke cache_clean_deferred as entries are no longer added to the
pending list for subsequent revisiting.

So put those requests back on the pending list.

Signed-off-by: NeilBrown <neilb@suse.de>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
net/sunrpc/cache.c

index ac2c6e6abe65d5c7c9d49451c8b830b518b8defc..ff733dfef3b82c7b0e1013f1f4012ea6011cd7ed 100644 (file)
@@ -671,8 +671,10 @@ void cache_clean_deferred(void *owner)
        spin_lock(&cache_defer_lock);
 
        list_for_each_entry_safe(dreq, tmp, &cache_defer_list, recent) {
-               if (dreq->owner == owner)
+               if (dreq->owner == owner) {
                        __unhash_deferred_req(dreq);
+                       list_add(&dreq->recent, &pending);
+               }
        }
        spin_unlock(&cache_defer_lock);