On 2025/7/30 17:24, yuezhang...@sony.com wrote:
On 2025/7/29 11:07, Hongbo Li wrote:
On 2025/7/28 12:54, Yuezhang Mo wrote:
...
if (!sbi->devs->extra_devices && !erofs_is_fscache_mode(sb))
sbi->devs->flatdev = true;
@@ -338,7 +348,6 @@ static int erofs_read_superblock(struct super_block *sb)
if (ret < 0)
goto out;
- /* handle multiple devices */
ret = erofs_scan_devices(sb, dsb);
if (erofs_sb_has_48bit(sbi))
@@ -671,14 +680,9 @@ static int erofs_fc_fill_super(struct super_block *sb,
struct fs_context *fc)
return invalfc(fc, "cannot use fsoffset in fscache mode");
}
- if (test_opt(&sbi->opt, DAX_ALWAYS)) {
- if (!sbi->dif0.dax_dev) {
- errorfc(fc, "DAX unsupported by block device. Turning off
DAX.");
- clear_opt(&sbi->opt, DAX_ALWAYS);
- } else if (sbi->blkszbits != PAGE_SHIFT) {
- errorfc(fc, "unsupported blocksize for DAX");
- clear_opt(&sbi->opt, DAX_ALWAYS);
- }
+ if (test_opt(&sbi->opt, DAX_ALWAYS) && sbi->blkszbits != PAGE_SHIFT) {
+ errorfc(fc, "unsupported blocksize for DAX");
How about using the info log? Can we consider using infofc in this case?
This is not a case of error, I also think using the info log is better.
In erofs_init_device() and erofs_scan_devices(), use erofs_info() to output the
logs of turning off DAX. How about using erofs_info() uniformly?
Honestly I have no idea how infofc()/errorfc() works on the
userspace side, it seems ext2/4 just use ext{2,4}_msg(KERN_ERR)
for example for DAX.
infofc() only has the only one caller:
cramfs/inode.c: infofc(fc, "empty filesystem");
warnfc() has more callers:
ceph/super.c: warnfc(fc, "Value of option \"%s\" is
unrecognized",
ceph/super.c: warnfc(fc, "Conflicting test_dummy_encryption
options");
ceph/super.c: warnfc(fc,
ceph/super.c: warnfc(fc, "test_dummy_encryption mode enabled");
super.c: warnfc(fc, "reusing existing filesystem not
allowed");
super.c: warnfc(fc, "reusing existing filesystem in another
namespace not allowed");
I'm fine with either way, but if we follow ext2/ext4, erofs_err()
is needed too although I don't think the fallback should be
identified as errors...
Thanks,
Gao Xiang