In the Linux kernel, the following vulnerability has been resolved:
ext4: fix warning in ext4iomapbegin as race between bmap and write
We got issue as follows: ------------[ cut here ]------------ WARNING: CPU: 3 PID: 9310 at fs/ext4/inode.c:3441 ext4iomapbegin+0x182/0x5d0 RIP: 0010:ext4iomapbegin+0x182/0x5d0 RSP: 0018:ffff88812460fa08 EFLAGS: 00010293 RAX: ffff88811f168000 RBX: 0000000000000000 RCX: ffffffff97793c12 RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000000000003 RBP: ffff88812c669160 R08: ffff88811f168000 R09: ffffed10258cd20f R10: ffff88812c669077 R11: ffffed10258cd20e R12: 0000000000000001 R13: 00000000000000a4 R14: 000000000000000c R15: ffff88812c6691ee FS: 00007fd0d6ff3740(0000) GS:ffff8883af180000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 00007fd0d6dda290 CR3: 0000000104a62000 CR4: 00000000000006e0 DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400 Call Trace: iomapapply+0x119/0x570 iomapbmap+0x124/0x150 ext4bmap+0x14f/0x250 bmap+0x55/0x80 dovfsioctl+0x952/0xbd0 _x64sysioctl+0xc6/0x170 dosyscall64+0x33/0x40 entrySYSCALL64afterhwframe+0x44/0xa9
Above issue may happen as follows: bmap write bmap ext4bmap iomapbmap ext4iomapbegin ext4filewriteiter ext4bufferedwriteiter genericperformwrite ext4dawritebegin ext4dawriteinlinedatabegin ext4prepareinlinedata ext4createinlinedata ext4setinodeflag(inode, EXT4INODEINLINEDATA); if (WARNONONCE(ext4hasinlinedata(inode))) ->trigger bugon
To solved above issue hold inode lock in ext4_bamp.