Messages in this thread Patch in this message | | | From | Yue Hu <> | Subject | [PATCH] erofs: fix compacted_{4b_initial, 2b} when compacted_4b_initial > totalidx | Date | Mon, 13 Sep 2021 15:24:05 +0800 |
| |
From: Yue Hu <huyue2@yulong.com>
mkfs.erofs will treat compacted_4b_initial & compacted_2b as 0 if compacted_4b_initial > totalidx, kernel should be aligned with it accordingly.
Signed-off-by: Yue Hu <huyue2@yulong.com> --- fs/erofs/zmap.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/fs/erofs/zmap.c b/fs/erofs/zmap.c index 9fb98d8..4f941b6 100644 --- a/fs/erofs/zmap.c +++ b/fs/erofs/zmap.c @@ -369,7 +369,10 @@ static int compacted_load_cluster_from_disk(struct z_erofs_maprecorder *m, if (compacted_4b_initial == 32 / 4) compacted_4b_initial = 0; - if (vi->z_advise & Z_EROFS_ADVISE_COMPACTED_2B) + if (compacted_4b_initial > totalidx) { + compacted_4b_initial = 0; + compacted_2b = 0; + } else if (vi->z_advise & Z_EROFS_ADVISE_COMPACTED_2B) compacted_2b = rounddown(totalidx - compacted_4b_initial, 16); else compacted_2b = 0; -- 1.9.1
| |