Messages in this thread Patch in this message | | | Subject | Re: [PATCH 4/5] mm: Use radix_tree_iter_retry() | From | Vlastimil Babka <> | Date | Fri, 29 Jan 2016 15:45:59 +0100 |
| |
On 01/27/2016 10:17 PM, Matthew Wilcox wrote: > From: Matthew Wilcox <willy@linux.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@linux.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@suse.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@suse.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
| |