Let's clean it up a bit, simplifying the exit paths.

Reviewed-by: Baoquan He <b...@redhat.com>
Reviewed-by: Pankaj Gupta <pankaj.gupta.li...@gmail.com>
Cc: Andrew Morton <a...@linux-foundation.org>
Cc: Michal Hocko <mho...@suse.com>
Cc: Michael S. Tsirkin <m...@redhat.com>
Cc: Mike Kravetz <mike.krav...@oracle.com>
Signed-off-by: David Hildenbrand <da...@redhat.com>
---
 mm/page_isolation.c | 17 +++++++----------
 1 file changed, 7 insertions(+), 10 deletions(-)

diff --git a/mm/page_isolation.c b/mm/page_isolation.c
index d099aac479601..e65fe5d770849 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,13 +48,13 @@ 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;
        }
 
        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.
@@ -65,7 +62,7 @@ static int set_migratetype_isolate(struct page *page, int 
migratetype, int isol_
                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