On 2020/12/8 4:37, Eric Biggers wrote:
On Thu, Nov 26, 2020 at 06:32:09PM +0800, Chao Yu wrote:+ if (!ret && fi->i_compress_flag & 1 << COMPRESS_CHKSUM) {This really could use some parentheses. People shouldn't have to look up a C operator precedence table to understand the code.
Will add parentheses to avoid misread.
+ u32 provided = le32_to_cpu(dic->cbuf->chksum); + u32 calculated = f2fs_crc32(sbi, dic->cbuf->cdata, dic->clen); + + if (provided != calculated) { + if (!is_inode_flag_set(dic->inode, FI_COMPRESS_CORRUPT)) { + set_inode_flag(dic->inode, FI_COMPRESS_CORRUPT); + printk_ratelimited( + "%sF2FS-fs (%s): checksum invalid, nid = %lu, %x vs %x", + KERN_INFO, sbi->sb->s_id, dic->inode->i_ino, + provided, calculated); + } + set_sbi_flag(sbi, SBI_NEED_FSCK); + WARN_ON_ONCE(1);WARN, WARN_ON_ONCE, BUG, BUG_ON, etc. are only for kernel bugs, not for invalid inputs from disk or userspace. There is already a log message printed just above, so it seems this WARN_ON_ONCE should just be removed.
Jaegeuk wants to give WARN_ON and marking a FSCK flag without returning EFSCORRUPTED, Jaegeuk, thoughts? Thanks,
- Eric .
_______________________________________________ Linux-f2fs-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel
