Message ID | 20240623053532.857496-6-hch@lst.de (mailing list archive) |
---|---|
State | Superseded, archived |
Headers | show |
Series | [01/10] xfs: fix freeing speculative preallocations for preallocated files | expand |
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 > >
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);
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> --- fs/xfs/xfs_file.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-)