From: Konstantin Komarov Date: Fri, 4 Jul 2025 13:11:32 +0000 (+0200) Subject: Revert "fs/ntfs3: Replace inode_trylock with inode_lock" X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=a49f0abd8959048af18c6c690b065eb0d65b2d21;p=thirdparty%2Flinux.git Revert "fs/ntfs3: Replace inode_trylock with inode_lock" This reverts commit 69505fe98f198ee813898cbcaf6770949636430b. Initially, conditional lock acquisition was removed to fix an xfstest bug that was observed during internal testing. The deadlock reported by syzbot is resolved by reintroducing conditional acquisition. The xfstest bug no longer occurs on kernel version 6.16-rc1 during internal testing. I assume that changes in other modules may have contributed to this. Fixes: 69505fe98f19 ("fs/ntfs3: Replace inode_trylock with inode_lock") Reported-by: syzbot+a91fcdbd2698f99db8f4@syzkaller.appspotmail.com Suggested-by: Lorenzo Stoakes Signed-off-by: Konstantin Komarov --- diff --git a/fs/ntfs3/file.c b/fs/ntfs3/file.c index 65fb27d1e17cd..2e321b84a1ed9 100644 --- a/fs/ntfs3/file.c +++ b/fs/ntfs3/file.c @@ -322,7 +322,10 @@ static int ntfs_file_mmap(struct file *file, struct vm_area_struct *vma) } if (ni->i_valid < to) { - inode_lock(inode); + if (!inode_trylock(inode)) { + err = -EAGAIN; + goto out; + } err = ntfs_extend_initialized_size(file, ni, ni->i_valid, to); inode_unlock(inode);