[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <56AB7B27.3090805@suse.cz>
Date: Fri, 29 Jan 2016 15:45:59 +0100
From: Vlastimil Babka <vbabka@...e.cz>
To: Matthew Wilcox <matthew.r.wilcox@...el.com>,
Andrew Morton <akpm@...ux-foundation.org>,
Hugh Dickins <hughd@...gle.com>
Cc: Matthew Wilcox <willy@...ux.intel.com>,
Konstantin Khlebnikov <khlebnikov@...nvz.org>,
linux-kernel@...r.kernel.org, linux-fsdevel@...r.kernel.org,
linux-mm@...ck.org
Subject: Re: [PATCH 4/5] mm: Use radix_tree_iter_retry()
On 01/27/2016 10:17 PM, Matthew Wilcox wrote:
> From: Matthew Wilcox <willy@...ux.intel.com>
>
> Instead of a 'goto restart', we can now use radix_tree_iter_retry()
> to restart from our current position. This will make a difference
> when there are more ways to happen across an indirect pointer. And it
> eliminates some confusing gotos.
>
> Signed-off-by: Matthew Wilcox <willy@...ux.intel.com>
[...]
> diff --git a/mm/shmem.c b/mm/shmem.c
> index fa2ceb2d2655..6ec14b70d82d 100644
> --- a/mm/shmem.c
> +++ b/mm/shmem.c
> @@ -388,8 +388,10 @@ restart:
> * don't need to reset the counter, nor do we risk infinite
> * restarts.
> */
> - if (radix_tree_deref_retry(page))
> - goto restart;
> + if (radix_tree_deref_retry(page)) {
> + slot = radix_tree_iter_retry(&iter);
> + continue;
> + }
>
> if (radix_tree_exceptional_entry(page))
> swapped++;
This should be applied on top. There are no restarts anymore.
----8<----
>From 3b0bdd370b57fb6d83b213e140cd1fb0e8962af8 Mon Sep 17 00:00:00 2001
From: Vlastimil Babka <vbabka@...e.cz>
Date: Fri, 29 Jan 2016 15:41:31 +0100
Subject: [PATCH] mm: Use radix_tree_iter_retry()-fix
Remove now-obsolete-and-misleading comment.
Signed-off-by: Vlastimil Babka <vbabka@...e.cz>
---
mm/shmem.c | 5 -----
1 file changed, 5 deletions(-)
diff --git a/mm/shmem.c b/mm/shmem.c
index 8f89abd4eaee..4d758938340c 100644
--- a/mm/shmem.c
+++ b/mm/shmem.c
@@ -382,11 +382,6 @@ unsigned long shmem_partial_swap_usage(struct address_space *mapping,
page = radix_tree_deref_slot(slot);
- /*
- * This should only be possible to happen at index 0, so we
- * don't need to reset the counter, nor do we risk infinite
- * restarts.
- */
if (radix_tree_deref_retry(page)) {
slot = radix_tree_iter_retry(&iter);
continue;
--
2.7.0
Powered by blists - more mailing lists