Thanks for your reply. Andreas Dilger wrote on 2020/10/20 11:37: > On Oct 19, 2020, at 3:02 AM, Chunguang Xu <brookxu.cn@xxxxxxxxx> wrote: >> >> There are currently multiple forms of assertion, such as J_ASSERT(). >> J_ASEERT is provided for the jbd module, which is a public module. > > (typo) "J_ASSERT()" Thanks, I will Fixed that. >> Maybe we should use custom ASSERT() like other file systems, such as >> xfs, which would be better. > > My one minor complaint is that "ASSERT()" is a very generic name and is > likely to cause conflicts with ASSERT in other headers. That said, I > also see many other filesystems using their own ASSERT() macro, so I > guess they are all in private headers only? I also thought about this before, but even if we define it in a private header file, because we still include several header files in a certain file, it seems that the conflict cannot be resolved. However, maybe it is safest to use a name with ext4 prefix. I will try to fix it in next version. Thanks. > Some minor comments/questions below, but not worth changing the patch > unless you think they are important... > > You can add: > > Reviewed-by: Andreas Dilger <adilger@xxxxxxxxx> > >> @@ -185,7 +185,7 @@ static int ext4_init_block_bitmap(struct super_block *sb, >> struct ext4_sb_info *sbi = EXT4_SB(sb); >> ext4_fsblk_t start, tmp; >> >> - J_ASSERT_BH(bh, buffer_locked(bh)); >> + ASSERT(buffer_locked(bh)); > > I thought J_ASSERT_BH() did something useful, but J_ASSERT_BH() just maps > to J_ASSERT() internally anyway. > >> +#define ASSERT(assert) \ >> +do { \ >> + if (unlikely(!(assert))) { \ >> + printk(KERN_EMERG \ >> + "Assertion failure in %s() at %s:%d: \"%s\"\n", \ > > (style) better to use single quotes '%s' to avoid the need to escape \". Thanks, this is a good suggestion, I will fix it next version. > Cheers, Andreas > > > > >