quota: Cleanup list iteration in dqcache_shrink_scan()
diff mbox

Message ID 20180611102002.28488-1-jack@suse.cz
State New
Headers show

Commit Message

Jan Kara June 11, 2018, 10:20 a.m. UTC
Use list_first_entry() and list_empty() instead of opencoded variants.

Signed-off-by: Jan Kara <jack@suse.cz>
---
 fs/quota/dquot.c | 7 ++-----
 1 file changed, 2 insertions(+), 5 deletions(-)

I plan to add this patch to my tree. Review is welcome.

Comments

Matthew Wilcox June 11, 2018, 11:16 a.m. UTC | #1
On Mon, Jun 11, 2018 at 12:20:02PM +0200, Jan Kara wrote:
> Use list_first_entry() and list_empty() instead of opencoded variants.
> 
> Signed-off-by: Jan Kara <jack@suse.cz>

Reviewed-by: Matthew Wilcox <mawilcox@microsoft.com>
Jan Kara June 11, 2018, 11:27 a.m. UTC | #2
On Mon 11-06-18 04:16:58, Matthew Wilcox wrote:
> On Mon, Jun 11, 2018 at 12:20:02PM +0200, Jan Kara wrote:
> > Use list_first_entry() and list_empty() instead of opencoded variants.
> > 
> > Signed-off-by: Jan Kara <jack@suse.cz>
> 
> Reviewed-by: Matthew Wilcox <mawilcox@microsoft.com>

Thanks for review!

								Honza

Patch
diff mbox

diff --git a/fs/quota/dquot.c b/fs/quota/dquot.c
index 241b00f835b9..fc20e06c56ba 100644
--- a/fs/quota/dquot.c
+++ b/fs/quota/dquot.c
@@ -711,21 +711,18 @@  EXPORT_SYMBOL(dquot_quota_sync);
 static unsigned long
 dqcache_shrink_scan(struct shrinker *shrink, struct shrink_control *sc)
 {
-	struct list_head *head;
 	struct dquot *dquot;
 	unsigned long freed = 0;
 
 	spin_lock(&dq_list_lock);
-	head = free_dquots.next;
-	while (head != &free_dquots && sc->nr_to_scan) {
-		dquot = list_entry(head, struct dquot, dq_free);
+	while (!list_empty(&free_dquots) && sc->nr_to_scan) {
+		dquot = list_first_entry(&free_dquots, struct dquot, dq_free);
 		remove_dquot_hash(dquot);
 		remove_free_dquot(dquot);
 		remove_inuse(dquot);
 		do_destroy_dquot(dquot);
 		sc->nr_to_scan--;
 		freed++;
-		head = free_dquots.next;
 	}
 	spin_unlock(&dq_list_lock);
 	return freed;