mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-09-04 20:19:47 +08:00
If the 1st NONHEAD lcluster of a pcluster isn't CBLKCNT lcluster type
rather than a HEAD or PLAIN type instead, which means its pclustersize
_must_ be 1 lcluster (since its uncompressed size < 2 lclusters),
as illustrated below:
HEAD HEAD / PLAIN lcluster type
____________ ____________
|_:__________|_________:__| file data (uncompressed)
. .
.____________.
|____________| pcluster data (compressed)
Such on-disk case was explained before [1] but missed to be handled
properly in the runtime implementation.
It can be observed if manually generating 1 lcluster-sized pcluster
with 2 lclusters (thus CBLKCNT doesn't exist.) Let's fix it now.
[1] https://lore.kernel.org/r/20210407043927.10623-1-xiang@kernel.org
Link: https://lore.kernel.org/r/20210510064715.29123-1-xiang@kernel.org
Fixes:
|
||
|---|---|---|
| .. | ||
| compress.h | ||
| data.c | ||
| decompressor.c | ||
| dir.c | ||
| erofs_fs.h | ||
| inode.c | ||
| internal.h | ||
| Kconfig | ||
| Makefile | ||
| namei.c | ||
| pcpubuf.c | ||
| super.c | ||
| tagptr.h | ||
| utils.c | ||
| xattr.c | ||
| xattr.h | ||
| zdata.c | ||
| zdata.h | ||
| zmap.c | ||
| zpvec.h | ||