Description
In the Linux kernel, the following vulnerability has been resolved: ext4: always drain queued discard work in ext4_mb_release() While reviewing recent ext4 patch[1], Sashiko raised the following concern[2]: > If the filesystem is initially mounted with the discard option, > deleting files will populate sbi->s_discard_list and queue > s_discard_work. If it is then remounted with nodiscard, the > EXT4_MOUNT_DISCARD flag is cleared, but the pending s_discard_work is > neither cancelled nor flushed. [1] https://lore.kernel.org/r/20260319094545.19291-1-qiang.zhang@linux.dev/ [2] https://sashiko.dev/#/patchset/20260319094545.19291-1-qiang.zhang%40linux.dev The concern was valid, but it had nothing to do with the patch[1]. One of the problems with Sashiko in its current (early) form is that it will detect pre-existing issues and report it as a problem with the patch that it is reviewing. In practice, it would be hard to hit deliberately (unless you are a malicious syzkaller fuzzer), since it would involve mounting the file system with -o discard, and then deleting a large number of files, remounting the file system with -o nodiscard, and then immediately unmounting the file system before the queued discard work has a change to drain on its own. Fix it because it's a real bug, and to avoid Sashiko from raising this concern when analyzing future patches to mballoc.c.
Affected products
Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.
Linux Linux
Default version status: unaffected
55cdd0af2bc5ffc92a2deb745627755aecd5db33 to < e96c2354b170aaa53300c8e8fd59e41b133160f7affected55cdd0af2bc5ffc92a2deb745627755aecd5db33 to < c360e9d0def4f4ae03254a67c683103908555b75affected55cdd0af2bc5ffc92a2deb745627755aecd5db33 to < 1c82f863f090ab899085bdfade073313384b514baffected55cdd0af2bc5ffc92a2deb745627755aecd5db33 to < 9b4d9dda6a71ad3425c8109d27c4c6bfb9da97b8affected55cdd0af2bc5ffc92a2deb745627755aecd5db33 to < 812b6a7cd3e7f3a3e8a24db85bc6313c26cb1098affected55cdd0af2bc5ffc92a2deb745627755aecd5db33 to < b4737e26d4688b8aea88ad6ea4dbfeb6e78b0327affected55cdd0af2bc5ffc92a2deb745627755aecd5db33 to < 9ee29d20aab228adfb02ca93f87fb53c56c2f3afaffected
Linux Linux
Default version status: affected
5.15affected0 to < 5.15unaffected5.15.203 to ≤ 5.15.*unaffected6.1.168 to ≤ 6.1.*unaffected6.6.131 to ≤ 6.6.*unaffected6.12.80 to ≤ 6.12.*unaffected6.18.21 to ≤ 6.18.*unaffected6.19.11 to ≤ 6.19.*unaffected7.0 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/e96c2354b170aaa53300c8e8fd59e41b133160f7 ↗
- https://git.kernel.org/stable/c/c360e9d0def4f4ae03254a67c683103908555b75 ↗
- https://git.kernel.org/stable/c/1c82f863f090ab899085bdfade073313384b514b ↗
- https://git.kernel.org/stable/c/9b4d9dda6a71ad3425c8109d27c4c6bfb9da97b8 ↗
- https://git.kernel.org/stable/c/812b6a7cd3e7f3a3e8a24db85bc6313c26cb1098 ↗
- https://git.kernel.org/stable/c/b4737e26d4688b8aea88ad6ea4dbfeb6e78b0327 ↗
- https://git.kernel.org/stable/c/9ee29d20aab228adfb02ca93f87fb53c56c2f3af ↗