diff options
author | Al Viro <viro@zeniv.linux.org.uk> | 2024-04-07 09:04:50 +0200 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2024-04-07 09:04:50 +0200 |
commit | 469ad583c1293f5d9f45183050b3beeb4a8c3475 (patch) | |
tree | c1574e7e19e7c92ba206be0ca135a195df420bf4 /fs/erofs/super.c | |
parent | Linux 6.9-rc2 (diff) | |
download | linux-469ad583c1293f5d9f45183050b3beeb4a8c3475.tar.xz linux-469ad583c1293f5d9f45183050b3beeb4a8c3475.zip |
erofs: switch erofs_bread() to passing offset instead of block number
Callers are happier that way, especially since we no longer need to
play with splitting offset into block number and offset within block,
passing the former to erofs_bread(), then adding the latter...
erofs_bread() always reads entire pages, anyway.
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'fs/erofs/super.c')
-rw-r--r-- | fs/erofs/super.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/fs/erofs/super.c b/fs/erofs/super.c index c0eb139adb07..fdefc3772620 100644 --- a/fs/erofs/super.c +++ b/fs/erofs/super.c @@ -132,11 +132,11 @@ void *erofs_read_metadata(struct super_block *sb, struct erofs_buf *buf, int len, i, cnt; *offset = round_up(*offset, 4); - ptr = erofs_bread(buf, erofs_blknr(sb, *offset), EROFS_KMAP); + ptr = erofs_bread(buf, *offset, EROFS_KMAP); if (IS_ERR(ptr)) return ptr; - len = le16_to_cpu(*(__le16 *)&ptr[erofs_blkoff(sb, *offset)]); + len = le16_to_cpu(*(__le16 *)ptr); if (!len) len = U16_MAX + 1; buffer = kmalloc(len, GFP_KERNEL); @@ -148,12 +148,12 @@ void *erofs_read_metadata(struct super_block *sb, struct erofs_buf *buf, for (i = 0; i < len; i += cnt) { cnt = min_t(int, sb->s_blocksize - erofs_blkoff(sb, *offset), len - i); - ptr = erofs_bread(buf, erofs_blknr(sb, *offset), EROFS_KMAP); + ptr = erofs_bread(buf, *offset, EROFS_KMAP); if (IS_ERR(ptr)) { kfree(buffer); return ptr; } - memcpy(buffer + i, ptr + erofs_blkoff(sb, *offset), cnt); + memcpy(buffer + i, ptr, cnt); *offset += cnt; } return buffer; |