From 8c207f38fb1e4104c22912d0e1344cd8be8ce6aa Mon Sep 17 00:00:00 2001 From: Mr NeilBrown Date: Thu, 27 Feb 2020 13:47:38 +1100 Subject: [PATCH] LU-12511 fld: use list_last_entry in fld_cache_shrink fld_cache_shrink can be substantially simplified by using list_last_entry(). Test-Parameters: trivial Signed-off-by: Mr NeilBrown Change-Id: I0dcbd8ffefbd113786f422b7662298605020687d Reviewed-on: https://review.whamcloud.com/37739 Tested-by: jenkins Tested-by: Maloo Reviewed-by: Andreas Dilger Reviewed-by: James Simmons Reviewed-by: Oleg Drokin --- lustre/fld/fld_cache.c | 35 +++++++++++++++++------------------ 1 file changed, 17 insertions(+), 18 deletions(-) diff --git a/lustre/fld/fld_cache.c b/lustre/fld/fld_cache.c index c2e59f3..41aae69 100644 --- a/lustre/fld/fld_cache.c +++ b/lustre/fld/fld_cache.c @@ -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); } /** -- 1.8.3.1