erofs: don't align offset for erofs_read_metabuf() (simple cases)
authorAl Viro <viro@zeniv.linux.org.uk>
Thu, 25 Apr 2024 19:59:15 +0000 (20:59 +0100)
committerGao Xiang <hsiangkao@linux.alibaba.com>
Fri, 17 May 2024 17:47:26 +0000 (01:47 +0800)
commit076d965eb812f2ad88daf693d745ea1f28bf8f80
tree0328e3e0304a92b4835cb2e53c5f078f94dcf323
parente09815446d6944fc5590a6e5f15dd51697202441
erofs: don't align offset for erofs_read_metabuf() (simple cases)

Most of the callers of erofs_read_metabuf() have the following form:

block = erofs_blknr(sb, offset);
off = erofs_blkoff(sb, offset);
p = erofs_read_metabuf(...., erofs_pos(sb, block), ...);
if (IS_ERR(p))
return PTR_ERR(p);
q = p + off;
// no further uses of p, block or off.

The value passed to erofs_read_metabuf() is offset rounded down to block
size, i.e. offset - off.  Passing offset as-is would increase the return
value by off in case of success and keep the return value unchanged in
in case of error.  In other words, the same could be achieved by

q = erofs_read_metabuf(...., offset, ...);
if (IS_ERR(q))
return PTR_ERR(q);

This commit convert these simple cases.

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Link: https://lore.kernel.org/r/20240425195915.GD1031757@ZenIV
Signed-off-by: Gao Xiang <hsiangkao@linux.alibaba.com>
fs/erofs/data.c
fs/erofs/fscache.c
fs/erofs/super.c
fs/erofs/zmap.c