Message ID | 20200417150859.14734-5-bfoster@redhat.com (mailing list archive) |
---|---|
State | Superseded, archived |
Headers | show |
Series | xfs: flush related error handling cleanups | expand |
On 4/17/20 8:08 AM, Brian Foster wrote: > The shutdown check in xfs_iflush() duplicates checks down in the > buffer code. If the fs is shut down, xfs_trans_read_buf_map() always > returns an error and falls into the same error path. Remove the > unnecessary check along with the warning in xfs_imap_to_bp() > that generates excessive noise in the log if the fs is shut down. > > Signed-off-by: Brian Foster <bfoster@redhat.com> Ok, I see the duplicate handler you are referring to. Reviewed-by: Allison Collins <allison.henderson@oracle.com> > --- > fs/xfs/libxfs/xfs_inode_buf.c | 7 +------ > fs/xfs/xfs_inode.c | 13 ------------- > 2 files changed, 1 insertion(+), 19 deletions(-) > > diff --git a/fs/xfs/libxfs/xfs_inode_buf.c b/fs/xfs/libxfs/xfs_inode_buf.c > index 39c5a6e24915..b102e611bf54 100644 > --- a/fs/xfs/libxfs/xfs_inode_buf.c > +++ b/fs/xfs/libxfs/xfs_inode_buf.c > @@ -172,12 +172,7 @@ xfs_imap_to_bp( > (int)imap->im_len, buf_flags, &bp, > &xfs_inode_buf_ops); > if (error) { > - if (error == -EAGAIN) { > - ASSERT(buf_flags & XBF_TRYLOCK); > - return error; > - } > - xfs_warn(mp, "%s: xfs_trans_read_buf() returned error %d.", > - __func__, error); > + ASSERT(error != -EAGAIN || (buf_flags & XBF_TRYLOCK)); > return error; > } > > diff --git a/fs/xfs/xfs_inode.c b/fs/xfs/xfs_inode.c > index 4c9971ec6fa6..98ee1b10d1b0 100644 > --- a/fs/xfs/xfs_inode.c > +++ b/fs/xfs/xfs_inode.c > @@ -3657,19 +3657,6 @@ xfs_iflush( > return 0; > } > > - /* > - * This may have been unpinned because the filesystem is shutting > - * down forcibly. If that's the case we must not write this inode > - * to disk, because the log record didn't make it to disk. > - * > - * We also have to remove the log item from the AIL in this case, > - * as we wait for an empty AIL as part of the unmount process. > - */ > - if (XFS_FORCED_SHUTDOWN(mp)) { > - error = -EIO; > - goto abort; > - } > - > /* > * Get the buffer containing the on-disk inode. We are doing a try-lock > * operation here, so we may get an EAGAIN error. In that case, return >
On Fri, Apr 17, 2020 at 11:08:51AM -0400, Brian Foster wrote: > The shutdown check in xfs_iflush() duplicates checks down in the > buffer code. If the fs is shut down, xfs_trans_read_buf_map() always > returns an error and falls into the same error path. Remove the > unnecessary check along with the warning in xfs_imap_to_bp() > that generates excessive noise in the log if the fs is shut down. > > Signed-off-by: Brian Foster <bfoster@redhat.com> Looks fine. Reviewed-by: Dave Chinner <dchinner@redhat.com>
diff --git a/fs/xfs/libxfs/xfs_inode_buf.c b/fs/xfs/libxfs/xfs_inode_buf.c index 39c5a6e24915..b102e611bf54 100644 --- a/fs/xfs/libxfs/xfs_inode_buf.c +++ b/fs/xfs/libxfs/xfs_inode_buf.c @@ -172,12 +172,7 @@ xfs_imap_to_bp( (int)imap->im_len, buf_flags, &bp, &xfs_inode_buf_ops); if (error) { - if (error == -EAGAIN) { - ASSERT(buf_flags & XBF_TRYLOCK); - return error; - } - xfs_warn(mp, "%s: xfs_trans_read_buf() returned error %d.", - __func__, error); + ASSERT(error != -EAGAIN || (buf_flags & XBF_TRYLOCK)); return error; } diff --git a/fs/xfs/xfs_inode.c b/fs/xfs/xfs_inode.c index 4c9971ec6fa6..98ee1b10d1b0 100644 --- a/fs/xfs/xfs_inode.c +++ b/fs/xfs/xfs_inode.c @@ -3657,19 +3657,6 @@ xfs_iflush( return 0; } - /* - * This may have been unpinned because the filesystem is shutting - * down forcibly. If that's the case we must not write this inode - * to disk, because the log record didn't make it to disk. - * - * We also have to remove the log item from the AIL in this case, - * as we wait for an empty AIL as part of the unmount process. - */ - if (XFS_FORCED_SHUTDOWN(mp)) { - error = -EIO; - goto abort; - } - /* * Get the buffer containing the on-disk inode. We are doing a try-lock * operation here, so we may get an EAGAIN error. In that case, return
The shutdown check in xfs_iflush() duplicates checks down in the buffer code. If the fs is shut down, xfs_trans_read_buf_map() always returns an error and falls into the same error path. Remove the unnecessary check along with the warning in xfs_imap_to_bp() that generates excessive noise in the log if the fs is shut down. Signed-off-by: Brian Foster <bfoster@redhat.com> --- fs/xfs/libxfs/xfs_inode_buf.c | 7 +------ fs/xfs/xfs_inode.c | 13 ------------- 2 files changed, 1 insertion(+), 19 deletions(-)