Re: [PATCH 05/10] xfs: skip all of xfs_file_release when shut down

Darrick J. Wong
2024-06-24T15:41:44Z

On Sun, Jun 23, 2024 at 07:34:50AM +0200, Christoph Hellwig wrote:
> There is no point in trying to free post-EOF blocks when the file system
> is shutdown, as it will just error out ASAP. Instead return instantly
> when xfs_file_shutdown is called on a shut down file system.
>
> Signed-off-by: Christoph Hellwig <hch@lst.de>

Makes sense,
Reviewed-by: Darrick J. Wong <djwong@kernel.org>

--D

> ---
> fs/xfs/xfs_file.c | 10 ++++++----
> 1 file changed, 6 insertions(+), 4 deletions(-)
>
> diff --git a/fs/xfs/xfs_file.c b/fs/xfs/xfs_file.c
> index 7b91cbab80da55..0380e0b1d9c6c7 100644
> --- a/fs/xfs/xfs_file.c
> +++ b/fs/xfs/xfs_file.c
> @@ -1198,8 +1198,11 @@ xfs_file_release(
> struct xfs_inode *ip = XFS_I(inode);
> struct xfs_mount *mp = ip->i_mount;
>
> - /* If this is a read-only mount, don't generate I/O */
> - if (xfs_is_readonly(mp))
> + /*
> + * If this is a read-only mount or the file system has been shut down,
> + * don't generate I/O.
> + */
> + if (xfs_is_readonly(mp) || xfs_is_shutdown(mp))
> return 0;
>
> /*
> @@ -1211,8 +1214,7 @@ xfs_file_release(
> * is significantly reducing the time window where we'd otherwise be
> * exposed to that problem.
> */
> - if (!xfs_is_shutdown(mp) &&
> - xfs_iflags_test_and_clear(ip, XFS_ITRUNCATED)) {
> + if (xfs_iflags_test_and_clear(ip, XFS_ITRUNCATED)) {
> xfs_iflags_clear(ip, XFS_IDIRTY_RELEASE);
> if (ip->i_delayed_blks > 0)
> filemap_flush(inode->i_mapping);
> --
> 2.43.0
>
>