2015-08-19 14:05:52

by Jeff Layton

[permalink] [raw]
Subject: [PATCH] list_lru: don't call list_lru_from_kmem if the list_head is empty

If the list_head is empty then we'll have called list_lru_from_kmem
for nothing. Move that call inside of the list_empty if block.

Cc: Vladimir Davydov <[email protected]>
Signed-off-by: Jeff Layton <[email protected]>
---
mm/list_lru.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/mm/list_lru.c b/mm/list_lru.c
index 909eca2c820e..e1da19fac1b3 100644
--- a/mm/list_lru.c
+++ b/mm/list_lru.c
@@ -99,8 +99,8 @@ bool list_lru_add(struct list_lru *lru, struct list_head *item)
struct list_lru_one *l;

spin_lock(&nlru->lock);
- l = list_lru_from_kmem(nlru, item);
if (list_empty(item)) {
+ l = list_lru_from_kmem(nlru, item);
list_add_tail(item, &l->list);
l->nr_items++;
spin_unlock(&nlru->lock);
@@ -118,8 +118,8 @@ bool list_lru_del(struct list_lru *lru, struct list_head *item)
struct list_lru_one *l;

spin_lock(&nlru->lock);
- l = list_lru_from_kmem(nlru, item);
if (!list_empty(item)) {
+ l = list_lru_from_kmem(nlru, item);
list_del_init(item);
l->nr_items--;
spin_unlock(&nlru->lock);
--
2.4.3


2015-08-19 14:25:49

by Vladimir Davydov

[permalink] [raw]
Subject: Re: [PATCH] list_lru: don't call list_lru_from_kmem if the list_head is empty

On Wed, Aug 19, 2015 at 10:05:40AM -0400, Jeff Layton wrote:
> If the list_head is empty then we'll have called list_lru_from_kmem
> for nothing. Move that call inside of the list_empty if block.
>
> Cc: Vladimir Davydov <[email protected]>
> Signed-off-by: Jeff Layton <[email protected]>

Reviewed-by: Vladimir Davydov <[email protected]>

> ---
> mm/list_lru.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/mm/list_lru.c b/mm/list_lru.c
> index 909eca2c820e..e1da19fac1b3 100644
> --- a/mm/list_lru.c
> +++ b/mm/list_lru.c
> @@ -99,8 +99,8 @@ bool list_lru_add(struct list_lru *lru, struct list_head *item)
> struct list_lru_one *l;
>
> spin_lock(&nlru->lock);
> - l = list_lru_from_kmem(nlru, item);
> if (list_empty(item)) {
> + l = list_lru_from_kmem(nlru, item);
> list_add_tail(item, &l->list);
> l->nr_items++;
> spin_unlock(&nlru->lock);
> @@ -118,8 +118,8 @@ bool list_lru_del(struct list_lru *lru, struct list_head *item)
> struct list_lru_one *l;
>
> spin_lock(&nlru->lock);
> - l = list_lru_from_kmem(nlru, item);
> if (!list_empty(item)) {
> + l = list_lru_from_kmem(nlru, item);
> list_del_init(item);
> l->nr_items--;
> spin_unlock(&nlru->lock);