fs/xfs/xfs_file.c | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-)
Hi Christoph, Darrick, and Carlos, This is version 6 of the patch series addressing the close() system call hanging indefinitely on frozen XFS filesystems (Bugzilla #205833). In v5, I introduced a transaction allocation flag (XFS_TRANS_WRITECOUNT_TRYLOCK) to handle the trylock inside __xfs_trans_alloc() and propagated it down to xfs_free_eofblocks(). Christoph suggested this design and reviewed the implementation. However, Darrick suggested that the deadlock can be resolved much more simply at the VFS-layer within xfs_file_release() by surrounding the existing check with sb_start_write_trylock() instead of passing transaction allocation flags all the way down. This v6 implements that VFS-layer trylock approach. It modifies only a single file (fs/xfs/xfs_file.c). If sb_start_write_trylock() fails (meaning the filesystem is frozen or freezing), we simply skip the speculative preallocation trim. I would appreciate your guidance on which of the two architectural paths is preferred for XFS: 1. The v5 transaction-flag approach (centralized within xfs_trans_alloc). 2. The v6 VFS-level trylock approach (localized within xfs_file_release). If the v5 approach is preferred, I will rebase the transaction-flag patches onto the current master and submit them as a new version. Thanks, Aditya Aditya Prakash Srivastava (1): xfs: prevent close() from hanging on frozen filesystems fs/xfs/xfs_file.c | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) -- 2.47.3
On Mon, 14 Sep 2026 09:31:50 +0000, Aditya Prakash Srivastava wrote:
> This is version 6 of the patch series addressing the close() system
> call hanging indefinitely on frozen XFS filesystems (Bugzilla #205833).
>
> In v5, I introduced a transaction allocation flag
> (XFS_TRANS_WRITECOUNT_TRYLOCK) to handle the trylock inside
> __xfs_trans_alloc() and propagated it down to xfs_free_eofblocks().
> Christoph suggested this design and reviewed the implementation.
>
> [...]
Applied to for-next, thanks!
[1/1] xfs: prevent close() from hanging on frozen filesystems
commit: 6fdfe8606f99d86bdd109c94ef0821b8529fe44b
Best regards,
--
Carlos Maiolino <cem@kernel.org>
© 2016 - 2026 Red Hat, Inc.