Re: [PATCH v2 1/2] ntfs: take invalidate_lock in ntfs_setattr_size()

From: Namjae Jeon

Date: Mon Aug 31 2026 - 06:49:23 EST


On Mon, Aug 31, 2026 at 5:30 PM Hongling Zeng <zenghongling@xxxxxxxxxx> wrote:
>
> ntfs_setattr_size() updates i_size and resizes the on-disk attribute
> without holding mapping->invalidate_lock. Page faults take the lock
> shared, so a fault racing the resize can resolve a VCN against the
> transient runlist state of ntfs_non_resident_attr_expand() and fail
> with a spurious SIGBUS, and can interleave with the size-change
> epilogue (truncate_pagecache(), i_size_write(),
> pagecache_isize_extended()).
>
> Take invalidate_lock exclusively around the whole resize after
> inode_dio_wait(), matching the fallocate path and other filesystems
> such as xfs, which wraps truncate in its mmaplock (= invalidate_lock).
>
> Fixes: 9c87959601e8 ("ntfs: update file operations")
> Cc: stable@xxxxxxxxxxxxxxx
> Reviewed-by: Hyunchul Lee <hyc.lee@xxxxxxxxx>
> Reviewed-by: Baolin Liu <liubaolin@xxxxxxxxxx>
> Signed-off-by: Hongling Zeng <zenghongling@xxxxxxxxxx>
Applied it to #ntfs-next.
Thanks!