btrfs: use attach/detach_page_private
authorGuoqing Jiang <guoqing.jiang@cloud.ionos.com>
Tue, 2 Jun 2020 04:47:45 +0000 (21:47 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Tue, 2 Jun 2020 17:59:07 +0000 (10:59 -0700)
Since the new pair function is introduced, we can call them to clean the
code in btrfs.

Signed-off-by: Guoqing Jiang <guoqing.jiang@cloud.ionos.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Reviewed-by: Andrew Morton <akpm@linux-foundation.org>
Acked-by: David Sterba <dsterba@suse.com>
Cc: Chris Mason <clm@fb.com>
Cc: Josef Bacik <josef@toxicpanda.com>
Link: http://lkml.kernel.org/r/20200517214718.468-4-guoqing.jiang@cloud.ionos.com
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
fs/btrfs/disk-io.c
fs/btrfs/extent_io.c
fs/btrfs/inode.c

index d10c7be10f3b80158201c81707c116e9b9ab9e42..7278789ff8a78f4ef918c44ea0d39eee00bb0d81 100644 (file)
@@ -980,9 +980,7 @@ static void btree_invalidatepage(struct page *page, unsigned int offset,
                btrfs_warn(BTRFS_I(page->mapping->host)->root->fs_info,
                           "page private not zero on page %llu",
                           (unsigned long long)page_offset(page));
-               ClearPagePrivate(page);
-               set_page_private(page, 0);
-               put_page(page);
+               detach_page_private(page);
        }
 }
 
index fc46adf2f5bf7832aafd89890436d4bea9101685..e12eb32d9e178c2caaa934094fbf3d38f94a4d2b 100644 (file)
@@ -3076,22 +3076,16 @@ static int submit_extent_page(unsigned int opf,
 static void attach_extent_buffer_page(struct extent_buffer *eb,
                                      struct page *page)
 {
-       if (!PagePrivate(page)) {
-               SetPagePrivate(page);
-               get_page(page);
-               set_page_private(page, (unsigned long)eb);
-       } else {
+       if (!PagePrivate(page))
+               attach_page_private(page, eb);
+       else
                WARN_ON(page->private != (unsigned long)eb);
-       }
 }
 
 void set_page_extent_mapped(struct page *page)
 {
-       if (!PagePrivate(page)) {
-               SetPagePrivate(page);
-               get_page(page);
-               set_page_private(page, EXTENT_PAGE_PRIVATE);
-       }
+       if (!PagePrivate(page))
+               attach_page_private(page, (void *)EXTENT_PAGE_PRIVATE);
 }
 
 static struct extent_map *
@@ -4910,10 +4904,7 @@ static void btrfs_release_extent_buffer_pages(struct extent_buffer *eb)
                         * We need to make sure we haven't be attached
                         * to a new eb.
                         */
-                       ClearPagePrivate(page);
-                       set_page_private(page, 0);
-                       /* One for the page private */
-                       put_page(page);
+                       detach_page_private(page);
                }
 
                if (mapped)
index ba0aa8b4ad09d9a35f4596ebbbeba101c146cd09..8b3489f229c79cb6b34a2dc242058bb9fb36f280 100644 (file)
@@ -8301,11 +8301,8 @@ static void btrfs_readahead(struct readahead_control *rac)
 static int __btrfs_releasepage(struct page *page, gfp_t gfp_flags)
 {
        int ret = try_release_extent_mapping(page, gfp_flags);
-       if (ret == 1) {
-               ClearPagePrivate(page);
-               set_page_private(page, 0);
-               put_page(page);
-       }
+       if (ret == 1)
+               detach_page_private(page);
        return ret;
 }
 
@@ -8327,14 +8324,8 @@ static int btrfs_migratepage(struct address_space *mapping,
        if (ret != MIGRATEPAGE_SUCCESS)
                return ret;
 
-       if (page_has_private(page)) {
-               ClearPagePrivate(page);
-               get_page(newpage);
-               set_page_private(newpage, page_private(page));
-               set_page_private(page, 0);
-               put_page(page);
-               SetPagePrivate(newpage);
-       }
+       if (page_has_private(page))
+               attach_page_private(newpage, detach_page_private(page));
 
        if (PagePrivate2(page)) {
                ClearPagePrivate2(page);
@@ -8456,11 +8447,7 @@ again:
        }
 
        ClearPageChecked(page);
-       if (PagePrivate(page)) {
-               ClearPagePrivate(page);
-               set_page_private(page, 0);
-               put_page(page);
-       }
+       detach_page_private(page);
 }
 
 /*