Message ID | 20200312143959.583781-4-hch@lst.de (mailing list archive) |
---|---|
State | Accepted |
Headers | show |
Series | [1/5] xfs: mark XLOG_FORCED_SHUTDOWN as unlikely | expand |
On Thu, Mar 12, 2020 at 03:39:57PM +0100, Christoph Hellwig wrote: > Remove the ignored return value from xfs_log_unmount_write, and also > remove a rather pointless assert on the return value from xfs_log_force. > > Signed-off-by: Christoph Hellwig <hch@lst.de> > Reviewed-by: Brian Foster <bfoster@redhat.com> AFAICT the lack of error returning is acceptable because the vfs doesn't care what failures we encounter while unmounting and xfs will log all of its complaints as it crashes out of the kernel? If so, Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com> --D > --- > fs/xfs/xfs_log.c | 15 +++++---------- > 1 file changed, 5 insertions(+), 10 deletions(-) > > diff --git a/fs/xfs/xfs_log.c b/fs/xfs/xfs_log.c > index 796ff37d5bb5..fa499ddedb94 100644 > --- a/fs/xfs/xfs_log.c > +++ b/fs/xfs/xfs_log.c > @@ -953,8 +953,7 @@ xfs_log_write_unmount_record( > * currently architecture converted and "Unmount" is a bit foo. > * As far as I know, there weren't any dependencies on the old behaviour. > */ > - > -static int > +static void > xfs_log_unmount_write(xfs_mount_t *mp) > { > struct xlog *log = mp->m_log; > @@ -962,7 +961,6 @@ xfs_log_unmount_write(xfs_mount_t *mp) > #ifdef DEBUG > xlog_in_core_t *first_iclog; > #endif > - int error; > > /* > * Don't write out unmount record on norecovery mounts or ro devices. > @@ -971,11 +969,10 @@ xfs_log_unmount_write(xfs_mount_t *mp) > if (mp->m_flags & XFS_MOUNT_NORECOVERY || > xfs_readonly_buftarg(log->l_targ)) { > ASSERT(mp->m_flags & XFS_MOUNT_RDONLY); > - return 0; > + return; > } > > - error = xfs_log_force(mp, XFS_LOG_SYNC); > - ASSERT(error || !(XLOG_FORCED_SHUTDOWN(log))); > + xfs_log_force(mp, XFS_LOG_SYNC); > > #ifdef DEBUG > first_iclog = iclog = log->l_iclog; > @@ -1007,7 +1004,7 @@ xfs_log_unmount_write(xfs_mount_t *mp) > iclog = log->l_iclog; > atomic_inc(&iclog->ic_refcnt); > xlog_state_want_sync(log, iclog); > - error = xlog_state_release_iclog(log, iclog); > + xlog_state_release_iclog(log, iclog); > switch (iclog->ic_state) { > case XLOG_STATE_ACTIVE: > case XLOG_STATE_DIRTY: > @@ -1019,9 +1016,7 @@ xfs_log_unmount_write(xfs_mount_t *mp) > break; > } > } > - > - return error; > -} /* xfs_log_unmount_write */ > +} > > /* > * Empty the log for unmount/freeze. > -- > 2.24.1 >
On Thu, Mar 12, 2020 at 04:49:17PM -0700, Darrick J. Wong wrote: > On Thu, Mar 12, 2020 at 03:39:57PM +0100, Christoph Hellwig wrote: > > Remove the ignored return value from xfs_log_unmount_write, and also > > remove a rather pointless assert on the return value from xfs_log_force. > > > > Signed-off-by: Christoph Hellwig <hch@lst.de> > > Reviewed-by: Brian Foster <bfoster@redhat.com> > > AFAICT the lack of error returning is acceptable because the vfs doesn't > care what failures we encounter while unmounting and xfs will log all of > its complaints as it crashes out of the kernel? Well, the only "errors" we get here are for the fact that the log has been shut down. Which aren't very helpful errors when you try to unmount a file system..
diff --git a/fs/xfs/xfs_log.c b/fs/xfs/xfs_log.c index 796ff37d5bb5..fa499ddedb94 100644 --- a/fs/xfs/xfs_log.c +++ b/fs/xfs/xfs_log.c @@ -953,8 +953,7 @@ xfs_log_write_unmount_record( * currently architecture converted and "Unmount" is a bit foo. * As far as I know, there weren't any dependencies on the old behaviour. */ - -static int +static void xfs_log_unmount_write(xfs_mount_t *mp) { struct xlog *log = mp->m_log; @@ -962,7 +961,6 @@ xfs_log_unmount_write(xfs_mount_t *mp) #ifdef DEBUG xlog_in_core_t *first_iclog; #endif - int error; /* * Don't write out unmount record on norecovery mounts or ro devices. @@ -971,11 +969,10 @@ xfs_log_unmount_write(xfs_mount_t *mp) if (mp->m_flags & XFS_MOUNT_NORECOVERY || xfs_readonly_buftarg(log->l_targ)) { ASSERT(mp->m_flags & XFS_MOUNT_RDONLY); - return 0; + return; } - error = xfs_log_force(mp, XFS_LOG_SYNC); - ASSERT(error || !(XLOG_FORCED_SHUTDOWN(log))); + xfs_log_force(mp, XFS_LOG_SYNC); #ifdef DEBUG first_iclog = iclog = log->l_iclog; @@ -1007,7 +1004,7 @@ xfs_log_unmount_write(xfs_mount_t *mp) iclog = log->l_iclog; atomic_inc(&iclog->ic_refcnt); xlog_state_want_sync(log, iclog); - error = xlog_state_release_iclog(log, iclog); + xlog_state_release_iclog(log, iclog); switch (iclog->ic_state) { case XLOG_STATE_ACTIVE: case XLOG_STATE_DIRTY: @@ -1019,9 +1016,7 @@ xfs_log_unmount_write(xfs_mount_t *mp) break; } } - - return error; -} /* xfs_log_unmount_write */ +} /* * Empty the log for unmount/freeze.