Let's clean it up a bit, simplifying error handling and getting rid of
the label.

Cc: Andrew Morton <a...@linux-foundation.org>
Cc: Michal Hocko <mho...@suse.com>
Cc: Michael S. Tsirkin <m...@redhat.com>
Signed-off-by: David Hildenbrand <da...@redhat.com>
---
 mm/page_isolation.c | 18 +++++++-----------
 1 file changed, 7 insertions(+), 11 deletions(-)

diff --git a/mm/page_isolation.c b/mm/page_isolation.c
index 02a01bff6b219..5f869bef23fa4 100644
--- a/mm/page_isolation.c
+++ b/mm/page_isolation.c
@@ -17,12 +17,9 @@
 
 static int set_migratetype_isolate(struct page *page, int migratetype, int 
isol_flags)
 {
-       struct page *unmovable = NULL;
-       struct zone *zone;
+       struct zone *zone = page_zone(page);
+       struct page *unmovable;
        unsigned long flags;
-       int ret = -EBUSY;
-
-       zone = page_zone(page);
 
        spin_lock_irqsave(&zone->lock, flags);
 
@@ -51,21 +48,20 @@ static int set_migratetype_isolate(struct page *page, int 
migratetype, int isol_
                                                                        NULL);
 
                __mod_zone_freepage_state(zone, -nr_pages, mt);
-               ret = 0;
+               spin_unlock_irqrestore(&zone->lock, flags);
+               drain_all_pages(zone);
+               return 0;
        }
 
-out:
        spin_unlock_irqrestore(&zone->lock, flags);
-       if (!ret) {
-               drain_all_pages(zone);
-       } else if ((isol_flags & REPORT_FAILURE) && unmovable)
+       if (isol_flags & REPORT_FAILURE)
                /*
                 * printk() with zone->lock held will likely trigger a
                 * lockdep splat, so defer it here.
                 */
                dump_page(unmovable, "unmovable page");
 
-       return ret;
+       return -EBUSY;
 }
 
 static void unset_migratetype_isolate(struct page *page, unsigned migratetype)
-- 
2.26.2

_______________________________________________
Virtualization mailing list
Virtualization@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/virtualization

Reply via email to