This prepares for upcoming checks in page freeing path.

Signed-off-by: Zi Yan <[email protected]>
Cc: Jens Axboe <[email protected]>
Cc: [email protected]
---
 block/blk-mq-tag.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/block/blk-mq-tag.c b/block/blk-mq-tag.c
index 33946cdb5716..2d4bdf8df51d 100644
--- a/block/blk-mq-tag.c
+++ b/block/blk-mq-tag.c
@@ -589,14 +589,18 @@ static void blk_mq_free_tags_callback(struct rcu_head 
*head)
        struct page *page;
 
        while (!list_empty(&tags->page_list)) {
+               int order;
+
                page = list_first_entry(&tags->page_list, struct page, lru);
                list_del_init(&page->lru);
+               order = page->private;
                /*
                 * Remove kmemleak object previously allocated in
                 * blk_mq_alloc_rqs().
                 */
                kmemleak_free(page_address(page));
-               __free_pages(page, page->private);
+               set_page_private(page, 0);
+               __free_pages(page, order);
        }
        kfree(tags);
 }
-- 
2.51.0

Reply via email to