Skip to content

Commit edd3e3b

Browse files
Brian Fosterbrauner
authored andcommitted
iomap: rename iomap_iter processed field to status
The iter.processed field name is no longer appropriate now that iomap operations do not return the number of bytes processed. Rename the field to iter.status to reflect that a success or error code is expected. Also change the type to int as there is no longer a need for an s64. This reduces the size of iomap_iter by 8 bytes due to a combination of smaller type and reduction in structure padding. While here, fix up the return types of various _iter() helpers to reflect the type change. Signed-off-by: Brian Foster <bfoster@redhat.com> Link: https://lore.kernel.org/r/20250224144757.237706-12-bfoster@redhat.com Reviewed-by: Christoph Hellwig <hch@lst.de> Reviewed-by: "Darrick J. Wong" <djwong@kernel.org> Signed-off-by: Christian Brauner <brauner@kernel.org>
1 parent 469739f commit edd3e3b

File tree

9 files changed

+54
-55
lines changed

9 files changed

+54
-55
lines changed

fs/dax.c

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1258,7 +1258,7 @@ static vm_fault_t dax_pmd_load_hole(struct xa_state *xas, struct vm_fault *vmf,
12581258
}
12591259
#endif /* CONFIG_FS_DAX_PMD */
12601260

1261-
static s64 dax_unshare_iter(struct iomap_iter *iter)
1261+
static int dax_unshare_iter(struct iomap_iter *iter)
12621262
{
12631263
struct iomap *iomap = &iter->iomap;
12641264
const struct iomap *srcmap = iomap_iter_srcmap(iter);
@@ -1328,7 +1328,7 @@ int dax_file_unshare(struct inode *inode, loff_t pos, loff_t len,
13281328

13291329
iter.len = min(len, size - pos);
13301330
while ((ret = iomap_iter(&iter, ops)) > 0)
1331-
iter.processed = dax_unshare_iter(&iter);
1331+
iter.status = dax_unshare_iter(&iter);
13321332
return ret;
13331333
}
13341334
EXPORT_SYMBOL_GPL(dax_file_unshare);
@@ -1356,12 +1356,12 @@ static int dax_memzero(struct iomap_iter *iter, loff_t pos, size_t size)
13561356
return ret;
13571357
}
13581358

1359-
static s64 dax_zero_iter(struct iomap_iter *iter, bool *did_zero)
1359+
static int dax_zero_iter(struct iomap_iter *iter, bool *did_zero)
13601360
{
13611361
const struct iomap *iomap = &iter->iomap;
13621362
const struct iomap *srcmap = iomap_iter_srcmap(iter);
13631363
u64 length = iomap_length(iter);
1364-
s64 ret;
1364+
int ret;
13651365

13661366
/* already zeroed? we're done. */
13671367
if (srcmap->type == IOMAP_HOLE || srcmap->type == IOMAP_UNWRITTEN)
@@ -1416,7 +1416,7 @@ int dax_zero_range(struct inode *inode, loff_t pos, loff_t len, bool *did_zero,
14161416
int ret;
14171417

14181418
while ((ret = iomap_iter(&iter, ops)) > 0)
1419-
iter.processed = dax_zero_iter(&iter, did_zero);
1419+
iter.status = dax_zero_iter(&iter, did_zero);
14201420
return ret;
14211421
}
14221422
EXPORT_SYMBOL_GPL(dax_zero_range);
@@ -1588,7 +1588,7 @@ dax_iomap_rw(struct kiocb *iocb, struct iov_iter *iter,
15881588
iomi.flags |= IOMAP_NOWAIT;
15891589

15901590
while ((ret = iomap_iter(&iomi, ops)) > 0)
1591-
iomi.processed = dax_iomap_iter(&iomi, iter);
1591+
iomi.status = dax_iomap_iter(&iomi, iter);
15921592

15931593
done = iomi.pos - iocb->ki_pos;
15941594
iocb->ki_pos = iomi.pos;
@@ -1759,7 +1759,7 @@ static vm_fault_t dax_iomap_pte_fault(struct vm_fault *vmf, pfn_t *pfnp,
17591759

17601760
while ((error = iomap_iter(&iter, ops)) > 0) {
17611761
if (WARN_ON_ONCE(iomap_length(&iter) < PAGE_SIZE)) {
1762-
iter.processed = -EIO; /* fs corruption? */
1762+
iter.status = -EIO; /* fs corruption? */
17631763
continue;
17641764
}
17651765

@@ -1773,7 +1773,7 @@ static vm_fault_t dax_iomap_pte_fault(struct vm_fault *vmf, pfn_t *pfnp,
17731773

17741774
if (!(ret & VM_FAULT_ERROR)) {
17751775
u64 length = PAGE_SIZE;
1776-
iter.processed = iomap_iter_advance(&iter, &length);
1776+
iter.status = iomap_iter_advance(&iter, &length);
17771777
}
17781778
}
17791779

@@ -1889,7 +1889,7 @@ static vm_fault_t dax_iomap_pmd_fault(struct vm_fault *vmf, pfn_t *pfnp,
18891889
ret = dax_fault_iter(vmf, &iter, pfnp, &xas, &entry, true);
18901890
if (ret != VM_FAULT_FALLBACK) {
18911891
u64 length = PMD_SIZE;
1892-
iter.processed = iomap_iter_advance(&iter, &length);
1892+
iter.status = iomap_iter_advance(&iter, &length);
18931893
}
18941894
}
18951895

@@ -2079,7 +2079,7 @@ int dax_dedupe_file_range_compare(struct inode *src, loff_t srcoff,
20792079
min(src_iter.len, dst_iter.len), same);
20802080
if (status < 0)
20812081
return ret;
2082-
src_iter.processed = dst_iter.processed = status;
2082+
src_iter.status = dst_iter.status = status;
20832083
}
20842084
return ret;
20852085
}

fs/iomap/buffered-io.c

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -362,7 +362,7 @@ static inline bool iomap_block_needs_zeroing(const struct iomap_iter *iter,
362362
pos >= i_size_read(iter->inode);
363363
}
364364

365-
static loff_t iomap_readpage_iter(struct iomap_iter *iter,
365+
static int iomap_readpage_iter(struct iomap_iter *iter,
366366
struct iomap_readpage_ctx *ctx)
367367
{
368368
const struct iomap *iomap = &iter->iomap;
@@ -437,10 +437,10 @@ static loff_t iomap_readpage_iter(struct iomap_iter *iter,
437437
return iomap_iter_advance(iter, &length);
438438
}
439439

440-
static loff_t iomap_read_folio_iter(struct iomap_iter *iter,
440+
static int iomap_read_folio_iter(struct iomap_iter *iter,
441441
struct iomap_readpage_ctx *ctx)
442442
{
443-
loff_t ret;
443+
int ret;
444444

445445
while (iomap_length(iter)) {
446446
ret = iomap_readpage_iter(iter, ctx);
@@ -466,7 +466,7 @@ int iomap_read_folio(struct folio *folio, const struct iomap_ops *ops)
466466
trace_iomap_readpage(iter.inode, 1);
467467

468468
while ((ret = iomap_iter(&iter, ops)) > 0)
469-
iter.processed = iomap_read_folio_iter(&iter, &ctx);
469+
iter.status = iomap_read_folio_iter(&iter, &ctx);
470470

471471
if (ctx.bio) {
472472
submit_bio(ctx.bio);
@@ -485,10 +485,10 @@ int iomap_read_folio(struct folio *folio, const struct iomap_ops *ops)
485485
}
486486
EXPORT_SYMBOL_GPL(iomap_read_folio);
487487

488-
static loff_t iomap_readahead_iter(struct iomap_iter *iter,
488+
static int iomap_readahead_iter(struct iomap_iter *iter,
489489
struct iomap_readpage_ctx *ctx)
490490
{
491-
loff_t ret;
491+
int ret;
492492

493493
while (iomap_length(iter)) {
494494
if (ctx->cur_folio &&
@@ -538,7 +538,7 @@ void iomap_readahead(struct readahead_control *rac, const struct iomap_ops *ops)
538538
trace_iomap_readahead(rac->mapping->host, readahead_count(rac));
539539

540540
while (iomap_iter(&iter, ops) > 0)
541-
iter.processed = iomap_readahead_iter(&iter, &ctx);
541+
iter.status = iomap_readahead_iter(&iter, &ctx);
542542

543543
if (ctx.bio)
544544
submit_bio(ctx.bio);
@@ -898,10 +898,10 @@ static bool iomap_write_end(struct iomap_iter *iter, loff_t pos, size_t len,
898898
return __iomap_write_end(iter->inode, pos, len, copied, folio);
899899
}
900900

901-
static loff_t iomap_write_iter(struct iomap_iter *iter, struct iov_iter *i)
901+
static int iomap_write_iter(struct iomap_iter *iter, struct iov_iter *i)
902902
{
903903
ssize_t total_written = 0;
904-
long status = 0;
904+
int status = 0;
905905
struct address_space *mapping = iter->inode->i_mapping;
906906
size_t chunk = mapping_max_folio_size(mapping);
907907
unsigned int bdp_flags = (iter->flags & IOMAP_NOWAIT) ? BDP_ASYNC : 0;
@@ -1021,7 +1021,7 @@ iomap_file_buffered_write(struct kiocb *iocb, struct iov_iter *i,
10211021
iter.flags |= IOMAP_NOWAIT;
10221022

10231023
while ((ret = iomap_iter(&iter, ops)) > 0)
1024-
iter.processed = iomap_write_iter(&iter, i);
1024+
iter.status = iomap_write_iter(&iter, i);
10251025

10261026
if (unlikely(iter.pos == iocb->ki_pos))
10271027
return ret;
@@ -1255,7 +1255,7 @@ void iomap_write_delalloc_release(struct inode *inode, loff_t start_byte,
12551255
}
12561256
EXPORT_SYMBOL_GPL(iomap_write_delalloc_release);
12571257

1258-
static loff_t iomap_unshare_iter(struct iomap_iter *iter)
1258+
static int iomap_unshare_iter(struct iomap_iter *iter)
12591259
{
12601260
struct iomap *iomap = &iter->iomap;
12611261
u64 bytes = iomap_length(iter);
@@ -1315,7 +1315,7 @@ iomap_file_unshare(struct inode *inode, loff_t pos, loff_t len,
13151315

13161316
iter.len = min(len, size - pos);
13171317
while ((ret = iomap_iter(&iter, ops)) > 0)
1318-
iter.processed = iomap_unshare_iter(&iter);
1318+
iter.status = iomap_unshare_iter(&iter);
13191319
return ret;
13201320
}
13211321
EXPORT_SYMBOL_GPL(iomap_file_unshare);
@@ -1334,7 +1334,7 @@ static inline int iomap_zero_iter_flush_and_stale(struct iomap_iter *i)
13341334
return filemap_write_and_wait_range(mapping, i->pos, end);
13351335
}
13361336

1337-
static loff_t iomap_zero_iter(struct iomap_iter *iter, bool *did_zero)
1337+
static int iomap_zero_iter(struct iomap_iter *iter, bool *did_zero)
13381338
{
13391339
u64 bytes = iomap_length(iter);
13401340
int status;
@@ -1408,7 +1408,7 @@ iomap_zero_range(struct inode *inode, loff_t pos, loff_t len, bool *did_zero,
14081408
filemap_range_needs_writeback(mapping, pos, pos + plen - 1)) {
14091409
iter.len = plen;
14101410
while ((ret = iomap_iter(&iter, ops)) > 0)
1411-
iter.processed = iomap_zero_iter(&iter, did_zero);
1411+
iter.status = iomap_zero_iter(&iter, did_zero);
14121412

14131413
iter.len = len - (iter.pos - pos);
14141414
if (ret || !iter.len)
@@ -1427,20 +1427,20 @@ iomap_zero_range(struct inode *inode, loff_t pos, loff_t len, bool *did_zero,
14271427

14281428
if (srcmap->type == IOMAP_HOLE ||
14291429
srcmap->type == IOMAP_UNWRITTEN) {
1430-
s64 proc;
1430+
s64 status;
14311431

14321432
if (range_dirty) {
14331433
range_dirty = false;
1434-
proc = iomap_zero_iter_flush_and_stale(&iter);
1434+
status = iomap_zero_iter_flush_and_stale(&iter);
14351435
} else {
14361436
u64 length = iomap_length(&iter);
1437-
proc = iomap_iter_advance(&iter, &length);
1437+
status = iomap_iter_advance(&iter, &length);
14381438
}
1439-
iter.processed = proc;
1439+
iter.status = status;
14401440
continue;
14411441
}
14421442

1443-
iter.processed = iomap_zero_iter(&iter, did_zero);
1443+
iter.status = iomap_zero_iter(&iter, did_zero);
14441444
}
14451445
return ret;
14461446
}
@@ -1461,7 +1461,7 @@ iomap_truncate_page(struct inode *inode, loff_t pos, bool *did_zero,
14611461
}
14621462
EXPORT_SYMBOL_GPL(iomap_truncate_page);
14631463

1464-
static loff_t iomap_folio_mkwrite_iter(struct iomap_iter *iter,
1464+
static int iomap_folio_mkwrite_iter(struct iomap_iter *iter,
14651465
struct folio *folio)
14661466
{
14671467
loff_t length = iomap_length(iter);
@@ -1499,7 +1499,7 @@ vm_fault_t iomap_page_mkwrite(struct vm_fault *vmf, const struct iomap_ops *ops,
14991499
iter.pos = folio_pos(folio);
15001500
iter.len = ret;
15011501
while ((ret = iomap_iter(&iter, ops)) > 0)
1502-
iter.processed = iomap_folio_mkwrite_iter(&iter, folio);
1502+
iter.status = iomap_folio_mkwrite_iter(&iter, folio);
15031503

15041504
if (ret < 0)
15051505
goto out_unlock;

fs/iomap/direct-io.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -742,7 +742,7 @@ __iomap_dio_rw(struct kiocb *iocb, struct iov_iter *iter,
742742

743743
blk_start_plug(&plug);
744744
while ((ret = iomap_iter(&iomi, ops)) > 0) {
745-
iomi.processed = iomap_dio_iter(&iomi, dio);
745+
iomi.status = iomap_dio_iter(&iomi, dio);
746746

747747
/*
748748
* We can only poll for single bio I/Os.

fs/iomap/fiemap.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ static int iomap_to_fiemap(struct fiemap_extent_info *fi,
3939
iomap->length, flags);
4040
}
4141

42-
static loff_t iomap_fiemap_iter(struct iomap_iter *iter,
42+
static int iomap_fiemap_iter(struct iomap_iter *iter,
4343
struct fiemap_extent_info *fi, struct iomap *prev)
4444
{
4545
u64 length = iomap_length(iter);
@@ -78,7 +78,7 @@ int iomap_fiemap(struct inode *inode, struct fiemap_extent_info *fi,
7878
return ret;
7979

8080
while ((ret = iomap_iter(&iter, ops)) > 0)
81-
iter.processed = iomap_fiemap_iter(&iter, fi, &prev);
81+
iter.status = iomap_fiemap_iter(&iter, fi, &prev);
8282

8383
if (prev.type != IOMAP_HOLE) {
8484
ret = iomap_to_fiemap(fi, &prev, FIEMAP_EXTENT_LAST);
@@ -114,7 +114,7 @@ iomap_bmap(struct address_space *mapping, sector_t bno,
114114
while ((ret = iomap_iter(&iter, ops)) > 0) {
115115
if (iter.iomap.type == IOMAP_MAPPED)
116116
bno = iomap_sector(&iter.iomap, iter.pos) >> blkshift;
117-
/* leave iter.processed unset to abort loop */
117+
/* leave iter.status unset to abort loop */
118118
}
119119
if (ret)
120120
return 0;

fs/iomap/iter.c

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99

1010
static inline void iomap_iter_reset_iomap(struct iomap_iter *iter)
1111
{
12-
iter->processed = 0;
12+
iter->status = 0;
1313
memset(&iter->iomap, 0, sizeof(iter->iomap));
1414
memset(&iter->srcmap, 0, sizeof(iter->srcmap));
1515
}
@@ -54,7 +54,7 @@ static inline void iomap_iter_done(struct iomap_iter *iter)
5454
* function must be called in a loop that continues as long it returns a
5555
* positive value. If 0 or a negative value is returned, the caller must not
5656
* return to the loop body. Within a loop body, there are two ways to break out
57-
* of the loop body: leave @iter.processed unchanged, or set it to a negative
57+
* of the loop body: leave @iter.status unchanged, or set it to a negative
5858
* errno.
5959
*/
6060
int iomap_iter(struct iomap_iter *iter, const struct iomap_ops *ops)
@@ -86,17 +86,17 @@ int iomap_iter(struct iomap_iter *iter, const struct iomap_ops *ops)
8686
}
8787

8888
/* detect old return semantics where this would advance */
89-
if (WARN_ON_ONCE(iter->processed > 0))
90-
iter->processed = -EIO;
89+
if (WARN_ON_ONCE(iter->status > 0))
90+
iter->status = -EIO;
9191

9292
/*
9393
* Use iter->len to determine whether to continue onto the next mapping.
9494
* Explicitly terminate on error status or if the current iter has not
9595
* advanced at all (i.e. no work was done for some reason) unless the
9696
* mapping has been marked stale and needs to be reprocessed.
9797
*/
98-
if (iter->processed < 0)
99-
ret = iter->processed;
98+
if (iter->status < 0)
99+
ret = iter->status;
100100
else if (iter->len == 0 || (!advanced && !stale))
101101
ret = 0;
102102
else

fs/iomap/seek.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
#include <linux/pagemap.h>
1111
#include <linux/pagevec.h>
1212

13-
static loff_t iomap_seek_hole_iter(struct iomap_iter *iter,
13+
static int iomap_seek_hole_iter(struct iomap_iter *iter,
1414
loff_t *hole_pos)
1515
{
1616
loff_t length = iomap_length(iter);
@@ -47,7 +47,7 @@ iomap_seek_hole(struct inode *inode, loff_t pos, const struct iomap_ops *ops)
4747

4848
iter.len = size - pos;
4949
while ((ret = iomap_iter(&iter, ops)) > 0)
50-
iter.processed = iomap_seek_hole_iter(&iter, &pos);
50+
iter.status = iomap_seek_hole_iter(&iter, &pos);
5151
if (ret < 0)
5252
return ret;
5353
if (iter.len) /* found hole before EOF */
@@ -56,7 +56,7 @@ iomap_seek_hole(struct inode *inode, loff_t pos, const struct iomap_ops *ops)
5656
}
5757
EXPORT_SYMBOL_GPL(iomap_seek_hole);
5858

59-
static loff_t iomap_seek_data_iter(struct iomap_iter *iter,
59+
static int iomap_seek_data_iter(struct iomap_iter *iter,
6060
loff_t *hole_pos)
6161
{
6262
loff_t length = iomap_length(iter);
@@ -93,7 +93,7 @@ iomap_seek_data(struct inode *inode, loff_t pos, const struct iomap_ops *ops)
9393

9494
iter.len = size - pos;
9595
while ((ret = iomap_iter(&iter, ops)) > 0)
96-
iter.processed = iomap_seek_data_iter(&iter, &pos);
96+
iter.status = iomap_seek_data_iter(&iter, &pos);
9797
if (ret < 0)
9898
return ret;
9999
if (iter.len) /* found data before EOF */

fs/iomap/swapfile.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ static int iomap_swapfile_fail(struct iomap_swapfile_info *isi, const char *str)
9494
* swap only cares about contiguous page-aligned physical extents and makes no
9595
* distinction between written and unwritten extents.
9696
*/
97-
static loff_t iomap_swapfile_iter(struct iomap_iter *iter,
97+
static int iomap_swapfile_iter(struct iomap_iter *iter,
9898
struct iomap *iomap, struct iomap_swapfile_info *isi)
9999
{
100100
u64 length = iomap_length(iter);
@@ -169,7 +169,7 @@ int iomap_swapfile_activate(struct swap_info_struct *sis,
169169
return ret;
170170

171171
while ((ret = iomap_iter(&iter, ops)) > 0)
172-
iter.processed = iomap_swapfile_iter(&iter, &iter.iomap, &isi);
172+
iter.status = iomap_swapfile_iter(&iter, &iter.iomap, &isi);
173173
if (ret < 0)
174174
return ret;
175175

0 commit comments

Comments
 (0)