Whamcloud - gitweb
LU-12511 fld: use list_last_entry in fld_cache_shrink 39/37739/2
authorMr NeilBrown <neilb@suse.de>
Thu, 27 Feb 2020 02:47:38 +0000 (13:47 +1100)
committerOleg Drokin <green@whamcloud.com>
Tue, 24 Mar 2020 05:16:01 +0000 (05:16 +0000)
fld_cache_shrink can be substantially simplified by using
list_last_entry().

Test-Parameters: trivial
Signed-off-by: Mr NeilBrown <neilb@suse.de>
Change-Id: I0dcbd8ffefbd113786f422b7662298605020687d
Reviewed-on: https://review.whamcloud.com/37739
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
Reviewed-by: James Simmons <jsimmons@infradead.org>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
lustre/fld/fld_cache.c

index c2e59f3..41aae69 100644 (file)
@@ -197,31 +197,30 @@ static inline void fld_cache_entry_add(struct fld_cache *cache,
  */
 static int fld_cache_shrink(struct fld_cache *cache)
 {
-        struct fld_cache_entry *flde;
-       struct list_head *curr;
-        int num = 0;
-        ENTRY;
+       int num = 0;
 
-        LASSERT(cache != NULL);
+       ENTRY;
 
-        if (cache->fci_cache_count < cache->fci_cache_size)
-                RETURN(0);
+       LASSERT(cache != NULL);
 
-        curr = cache->fci_lru.prev;
+       if (cache->fci_cache_count < cache->fci_cache_size)
+               RETURN(0);
 
-        while (cache->fci_cache_count + cache->fci_threshold >
-               cache->fci_cache_size && curr != &cache->fci_lru) {
+       while (cache->fci_cache_count + cache->fci_threshold >
+              cache->fci_cache_size &&
+              !list_empty(&cache->fci_lru)) {
+               struct fld_cache_entry *flde =
+                       list_last_entry(&cache->fci_lru, struct fld_cache_entry,
+                                       fce_lru);
 
-               flde = list_entry(curr, struct fld_cache_entry, fce_lru);
-                curr = curr->prev;
-                fld_cache_entry_delete(cache, flde);
-                num++;
-        }
+               fld_cache_entry_delete(cache, flde);
+               num++;
+       }
 
-        CDEBUG(D_INFO, "%s: FLD cache - Shrunk by "
-               "%d entries\n", cache->fci_name, num);
+       CDEBUG(D_INFO, "%s: FLD cache - Shrunk by "
+              "%d entries\n", cache->fci_name, num);
 
-        RETURN(0);
+       RETURN(0);
 }
 
 /**