[PATCH erofs-utils v2 0/2] Fix 48-bit block addressing for extra devices

Zhan Xusheng <[email protected]>
Newsgroups org.ozlabs.lists.linux-erofs
Message-ID <[email protected]>
The 48-bit block addressing support extended the on-disk
erofs_deviceslot with blocks_hi and uniaddr_hi fields, but the read
and write paths for extra devices were not updated.

Additionally, erofs_read_superblock() has a swapped hi/lo combination
for the primary device blocks -- the same bug fixed in the kernel by
0b96d9bed324 ("erofs: fix block count report when 48-bit layout is
on").

Patch 1 fixes the primary device blocks read order.
Patch 2 adds read/write support for 48-bit extra device fields, and
syncs the erofs_deviceslot definition (blocks_hi: __le32 -> __le16)
with the kernel.

A corresponding kernel-side fix has been reviewed:
  ("erofs: handle 48-bit blocks/uniaddr for extra devices")

Changes since v1:
  - Use ternary expression for the read path to match the kernel
    implementation style, as suggested by Gao Xiang.
  - Cc linux-erofs mailing list.

Zhan Xusheng (2):
  erofs-utils: fix swapped hi/lo in 48-bit primary blocks read
  erofs-utils: handle 48-bit blocks/uniaddr for extra devices

 include/erofs_fs.h |  4 ++--
 lib/super.c        | 14 ++++++++++----
 2 files changed, 12 insertions(+), 6 deletions(-)

--
2.43.0
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.