sysv: use BUILD_BUG_ON instead of runtime check
authorPavel Skripkin <paskripkin@gmail.com>
Tue, 9 Nov 2021 02:35:25 +0000 (18:35 -0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Tue, 9 Nov 2021 18:02:52 +0000 (10:02 -0800)
There were runtime checks about sizes of struct v7_super_block and struct
sysv_inode.  If one of these checks fail the kernel will panic.  Since
these values are known at compile time let's use BUILD_BUG_ON(), because
it's a standard mechanism for validation checking at build time

Link: https://lkml.kernel.org/r/20210813123020.22971-1-paskripkin@gmail.com
Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
Signed-off-by: Pavel Skripkin <paskripkin@gmail.com>
Cc: Christoph Hellwig <hch@lst.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
fs/sysv/super.c

index cc8e2ed..d1def07 100644 (file)
@@ -474,10 +474,8 @@ static int v7_fill_super(struct super_block *sb, void *data, int silent)
        struct sysv_sb_info *sbi;
        struct buffer_head *bh;
 
-       if (440 != sizeof (struct v7_super_block))
-               panic("V7 FS: bad super-block size");
-       if (64 != sizeof (struct sysv_inode))
-               panic("sysv fs: bad i-node size");
+       BUILD_BUG_ON(sizeof(struct v7_super_block) != 440);
+       BUILD_BUG_ON(sizeof(struct sysv_inode) != 64);
 
        sbi = kzalloc(sizeof(struct sysv_sb_info), GFP_KERNEL);
        if (!sbi)