]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
btrfs: Use folio_next_pos()
authorMatthew Wilcox (Oracle) <willy@infradead.org>
Fri, 24 Oct 2025 17:08:10 +0000 (18:08 +0100)
committerChristian Brauner <brauner@kernel.org>
Fri, 31 Oct 2025 12:11:37 +0000 (13:11 +0100)
btrfs defined its own variant of folio_next_pos() called folio_end().
This is an ambiguous name as 'end' might be exclusive or inclusive.
Switch to the new folio_next_pos().

Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org>
Link: https://patch.msgid.link/20251024170822.1427218-3-willy@infradead.org
Acked-by: David Sterba <dsterba@suse.com>
Cc: Chris Mason <clm@fb.com>
Cc: David Sterba <dsterba@suse.com>
Cc: linux-btrfs@vger.kernel.org
Signed-off-by: Christian Brauner <brauner@kernel.org>
fs/btrfs/compression.h
fs/btrfs/defrag.c
fs/btrfs/extent_io.c
fs/btrfs/file.c
fs/btrfs/inode.c
fs/btrfs/misc.h
fs/btrfs/ordered-data.c
fs/btrfs/subpage.c

index eba188a9e3bb58987acbd9d693eb59bc76c3f91a..aee1fd21cdd626d4a78bcab9fa1a4c2a12893838 100644 (file)
@@ -85,8 +85,8 @@ static inline u32 btrfs_calc_input_length(struct folio *folio, u64 range_end, u6
 {
        /* @cur must be inside the folio. */
        ASSERT(folio_pos(folio) <= cur);
-       ASSERT(cur < folio_end(folio));
-       return min(range_end, folio_end(folio)) - cur;
+       ASSERT(cur < folio_next_pos(folio));
+       return umin(range_end, folio_next_pos(folio)) - cur;
 }
 
 int btrfs_alloc_compress_wsm(struct btrfs_fs_info *fs_info);
index 7b277934f66f9229bf8bd55b23a525791128670f..8fb353feacc9a2f4e83cecc3e3decc198aad7a3c 100644 (file)
@@ -886,7 +886,7 @@ again:
        }
 
        lock_start = folio_pos(folio);
-       lock_end = folio_end(folio) - 1;
+       lock_end = folio_next_pos(folio) - 1;
        /* Wait for any existing ordered extent in the range */
        while (1) {
                struct btrfs_ordered_extent *ordered;
@@ -1178,7 +1178,8 @@ static int defrag_one_locked_target(struct btrfs_inode *inode,
 
                if (!folio)
                        break;
-               if (start >= folio_end(folio) || start + len <= folio_pos(folio))
+               if (start >= folio_next_pos(folio) ||
+                   start + len <= folio_pos(folio))
                        continue;
                btrfs_folio_clamp_clear_checked(fs_info, folio, start, len);
                btrfs_folio_clamp_set_dirty(fs_info, folio, start, len);
@@ -1219,7 +1220,7 @@ static int defrag_one_range(struct btrfs_inode *inode, u64 start, u32 len,
                        folios[i] = NULL;
                        goto free_folios;
                }
-               cur = folio_end(folios[i]);
+               cur = folio_next_pos(folios[i]);
        }
        for (int i = 0; i < nr_pages; i++) {
                if (!folios[i])
index c123a3ef154ae5fb5575b78c55608a8f9ac78fc7..d808465163a5a344bb29b881ee69b4e5c4b4cff9 100644 (file)
@@ -333,7 +333,7 @@ static noinline int lock_delalloc_folios(struct inode *inode,
                                goto out;
                        }
                        range_start = max_t(u64, folio_pos(folio), start);
-                       range_len = min_t(u64, folio_end(folio), end + 1) - range_start;
+                       range_len = min_t(u64, folio_next_pos(folio), end + 1) - range_start;
                        btrfs_folio_set_lock(fs_info, folio, range_start, range_len);
 
                        processed_end = range_start + range_len - 1;
@@ -387,7 +387,7 @@ noinline_for_stack bool find_lock_delalloc_range(struct inode *inode,
        ASSERT(orig_end > orig_start);
 
        /* The range should at least cover part of the folio */
-       ASSERT(!(orig_start >= folio_end(locked_folio) ||
+       ASSERT(!(orig_start >= folio_next_pos(locked_folio) ||
                 orig_end <= folio_pos(locked_folio)));
 again:
        /* step one, find a bunch of delalloc bytes starting at start */
@@ -493,7 +493,7 @@ static void end_folio_read(struct folio *folio, bool uptodate, u64 start, u32 le
        struct btrfs_fs_info *fs_info = folio_to_fs_info(folio);
 
        ASSERT(folio_pos(folio) <= start &&
-              start + len <= folio_end(folio));
+              start + len <= folio_next_pos(folio));
 
        if (uptodate && btrfs_verify_folio(folio, start, len))
                btrfs_folio_set_uptodate(fs_info, folio, start, len);
@@ -1201,7 +1201,7 @@ static bool can_skip_one_ordered_range(struct btrfs_inode *inode,
         * finished our folio read and unlocked the folio.
         */
        if (btrfs_folio_test_dirty(fs_info, folio, cur, blocksize)) {
-               u64 range_len = min(folio_end(folio),
+               u64 range_len = umin(folio_next_pos(folio),
                                    ordered->file_offset + ordered->num_bytes) - cur;
 
                ret = true;
@@ -1223,7 +1223,7 @@ static bool can_skip_one_ordered_range(struct btrfs_inode *inode,
         * So we return true and update @next_ret to the OE/folio boundary.
         */
        if (btrfs_folio_test_uptodate(fs_info, folio, cur, blocksize)) {
-               u64 range_len = min(folio_end(folio),
+               u64 range_len = umin(folio_next_pos(folio),
                                    ordered->file_offset + ordered->num_bytes) - cur;
 
                /*
@@ -2215,7 +2215,7 @@ static noinline_for_stack void write_one_eb(struct extent_buffer *eb,
        for (int i = 0; i < num_extent_folios(eb); i++) {
                struct folio *folio = eb->folios[i];
                u64 range_start = max_t(u64, eb->start, folio_pos(folio));
-               u32 range_len = min_t(u64, folio_end(folio),
+               u32 range_len = min_t(u64, folio_next_pos(folio),
                                      eb->start + eb->len) - range_start;
 
                folio_lock(folio);
@@ -2619,7 +2619,7 @@ void extent_write_locked_range(struct inode *inode, const struct folio *locked_f
                        continue;
                }
 
-               cur_end = min_t(u64, folio_end(folio) - 1, end);
+               cur_end = min_t(u64, folio_next_pos(folio) - 1, end);
                cur_len = cur_end + 1 - cur;
 
                ASSERT(folio_test_locked(folio));
@@ -3860,7 +3860,7 @@ int read_extent_buffer_pages_nowait(struct extent_buffer *eb, int mirror_num,
        for (int i = 0; i < num_extent_folios(eb); i++) {
                struct folio *folio = eb->folios[i];
                u64 range_start = max_t(u64, eb->start, folio_pos(folio));
-               u32 range_len = min_t(u64, folio_end(folio),
+               u32 range_len = min_t(u64, folio_next_pos(folio),
                                      eb->start + eb->len) - range_start;
 
                bio_add_folio_nofail(&bbio->bio, folio, range_len,
index 7efd1f8a19121f4f42f79b25158107e1423b9f1d..977931cfa71eef84591a5c19fa81aaa8f6f97019 100644 (file)
@@ -89,7 +89,8 @@ int btrfs_dirty_folio(struct btrfs_inode *inode, struct folio *folio, loff_t pos
        num_bytes = round_up(write_bytes + pos - start_pos,
                             fs_info->sectorsize);
        ASSERT(num_bytes <= U32_MAX);
-       ASSERT(folio_pos(folio) <= pos && folio_end(folio) >= pos + write_bytes);
+       ASSERT(folio_pos(folio) <= pos &&
+              folio_next_pos(folio) >= pos + write_bytes);
 
        end_of_last_block = start_pos + num_bytes - 1;
 
@@ -799,7 +800,7 @@ static int prepare_uptodate_folio(struct inode *inode, struct folio *folio, u64
                                  u64 len)
 {
        u64 clamp_start = max_t(u64, pos, folio_pos(folio));
-       u64 clamp_end = min_t(u64, pos + len, folio_end(folio));
+       u64 clamp_end = min_t(u64, pos + len, folio_next_pos(folio));
        const u32 blocksize = inode_to_fs_info(inode)->sectorsize;
        int ret = 0;
 
@@ -1254,8 +1255,8 @@ again:
         * The reserved range goes beyond the current folio, shrink the reserved
         * space to the folio boundary.
         */
-       if (reserved_start + reserved_len > folio_end(folio)) {
-               const u64 last_block = folio_end(folio);
+       if (reserved_start + reserved_len > folio_next_pos(folio)) {
+               const u64 last_block = folio_next_pos(folio);
 
                shrink_reserved_space(inode, *data_reserved, reserved_start,
                                      reserved_len, last_block - reserved_start,
index 3b1b3a0553eea06229255ad0284d76074bdb958a..b7b498fffa4f7d67508b06dabb351355afdee5b8 100644 (file)
@@ -409,7 +409,7 @@ static inline void btrfs_cleanup_ordered_extents(struct btrfs_inode *inode,
                        continue;
                }
 
-               index = folio_end(folio) >> PAGE_SHIFT;
+               index = folio_next_index(folio);
                /*
                 * Here we just clear all Ordered bits for every page in the
                 * range, then btrfs_mark_ordered_io_finished() will handle
@@ -2336,7 +2336,8 @@ int btrfs_run_delalloc_range(struct btrfs_inode *inode, struct folio *locked_fol
         * The range must cover part of the @locked_folio, or a return of 1
         * can confuse the caller.
         */
-       ASSERT(!(end <= folio_pos(locked_folio) || start >= folio_end(locked_folio)));
+       ASSERT(!(end <= folio_pos(locked_folio) ||
+                start >= folio_next_pos(locked_folio)));
 
        if (should_nocow(inode, start, end)) {
                ret = run_delalloc_nocow(inode, locked_folio, start, end);
@@ -2743,7 +2744,7 @@ static void btrfs_writepage_fixup_worker(struct btrfs_work *work)
        struct btrfs_inode *inode = fixup->inode;
        struct btrfs_fs_info *fs_info = inode->root->fs_info;
        u64 page_start = folio_pos(folio);
-       u64 page_end = folio_end(folio) - 1;
+       u64 page_end = folio_next_pos(folio) - 1;
        int ret = 0;
        bool free_delalloc_space = true;
 
@@ -4855,7 +4856,7 @@ again:
         */
 
        zero_start = max_t(u64, folio_pos(folio), start);
-       zero_end = folio_end(folio);
+       zero_end = folio_next_pos(folio);
        folio_zero_range(folio, zero_start - folio_pos(folio),
                         zero_end - zero_start);
 
@@ -5038,7 +5039,7 @@ again:
                 * not reach disk, it still affects our page caches.
                 */
                zero_start = max_t(u64, folio_pos(folio), start);
-               zero_end = min_t(u64, folio_end(folio) - 1, end);
+               zero_end = min_t(u64, folio_next_pos(folio) - 1, end);
        } else {
                zero_start = max_t(u64, block_start, start);
                zero_end = min_t(u64, block_end, end);
index 60f9b000d644bb33344433eb5627153648566009..17b71e1285e5c1ef6be577fdb0791b76424474ad 100644 (file)
@@ -209,9 +209,4 @@ static inline bool bitmap_test_range_all_zero(const unsigned long *addr,
        return (found_set == start + nbits);
 }
 
-static inline u64 folio_end(struct folio *folio)
-{
-       return folio_pos(folio) + folio_size(folio);
-}
-
 #endif
index 2829f20d7bb59de71d2ecb19b5c966b7e1f08c2e..7fedebbee5580a08e2daeb17393a73ae09291c3c 100644 (file)
@@ -359,7 +359,7 @@ static bool can_finish_ordered_extent(struct btrfs_ordered_extent *ordered,
        if (folio) {
                ASSERT(folio->mapping);
                ASSERT(folio_pos(folio) <= file_offset);
-               ASSERT(file_offset + len <= folio_end(folio));
+               ASSERT(file_offset + len <= folio_next_pos(folio));
 
                /*
                 * Ordered flag indicates whether we still have
index 5ca8d4db67220c1645d40859b3cc1c07dd11963b..a7ba868e9372df7d9db4473cc08aa411c1d9f487 100644 (file)
@@ -186,7 +186,8 @@ static void btrfs_subpage_assert(const struct btrfs_fs_info *fs_info,
         * unmapped page like dummy extent buffer pages.
         */
        if (folio->mapping)
-               ASSERT(folio_pos(folio) <= start && start + len <= folio_end(folio),
+               ASSERT(folio_pos(folio) <= start &&
+                      start + len <= folio_next_pos(folio),
                       "start=%llu len=%u folio_pos=%llu folio_size=%zu",
                       start, len, folio_pos(folio), folio_size(folio));
 }
@@ -217,7 +218,7 @@ static void btrfs_subpage_clamp_range(struct folio *folio, u64 *start, u32 *len)
        if (folio_pos(folio) >= orig_start + orig_len)
                *len = 0;
        else
-               *len = min_t(u64, folio_end(folio), orig_start + orig_len) - *start;
+               *len = min_t(u64, folio_next_pos(folio), orig_start + orig_len) - *start;
 }
 
 static bool btrfs_subpage_end_and_test_lock(const struct btrfs_fs_info *fs_info,