summaryrefslogtreecommitdiff
path: root/scripts/Makefile.thinlto
diff options
context:
space:
mode:
authorChi Zhiling <chizhiling@kylinos.cn>2026-10-04 18:19:33 +0800
committerNamjae Jeon <linkinjeon@kernel.org>2026-10-21 08:28:30 +0900
commit6bb112f5d90a78461648e3bd89093ea299196be5 (patch)
tree10b5ee1a425804c8c957e2780b35e35c1e68e2ab /scripts/Makefile.thinlto
parent03ac97285b699954fa7bc24f8b6cdc1830c94d28 (diff)
downloadlinux-6bb112f5d90a78461648e3bd89093ea299196be5.tar.gz
linux-6bb112f5d90a78461648e3bd89093ea299196be5.zip
exfat: make valid_size and zeroed_size atomic
ei->valid_size and ei->zeroed_size are 64-bit fields read from bio completion context (exfat_iomap_read_end_io()) and from ->iomap_begin without i_rwsem, while writers update them under i_rwsem. On 32-bit these loads can tear, and the "if (x < new) x = new" read-modify-write can lose an update or regress the value when two writers race. Convert both to atomic64_t and funnel updates through a cmpxchg-based monotonic advance helper so the value only moves forward; plain reads use exfat_get_*(), and the few shrink/init paths (truncate, inode fill, create) use exfat_set_*(). This is a prerequisite for taking exfat_page_mkwrite() out from under i_rwsem. Fixes: 82a81a7352bc ("exfat: add iomap buffered I/O support") Cc: stable@vger.kernel.org Signed-off-by: Chi Zhiling <chizhiling@kylinos.cn> Signed-off-by: Namjae Jeon <linkinjeon@kernel.org>
Diffstat (limited to 'scripts/Makefile.thinlto')
0 files changed, 0 insertions, 0 deletions