Message ID | 20200316144233.900390-8-hch@lst.de (mailing list archive) |
---|---|
State | Superseded, archived |
Headers | show |
Series | [01/14] xfs: merge xlog_cil_push into xlog_cil_push_work | expand |
On Mon, Mar 16, 2020 at 03:42:26PM +0100, Christoph Hellwig wrote: > Use the shutdown flag in the log to bypass xlog_state_clean_iclog > entirely in case of a shut down log. > > Signed-off-by: Christoph Hellwig <hch@lst.de> Looks ok, Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com> --D > --- > fs/xfs/xfs_log.c | 9 +++++---- > 1 file changed, 5 insertions(+), 4 deletions(-) > > diff --git a/fs/xfs/xfs_log.c b/fs/xfs/xfs_log.c > index 23979d08a2a3..c490c5b0d8b7 100644 > --- a/fs/xfs/xfs_log.c > +++ b/fs/xfs/xfs_log.c > @@ -2632,8 +2632,7 @@ xlog_state_clean_iclog( > { > int iclogs_changed = 0; > > - if (dirty_iclog->ic_state != XLOG_STATE_IOERROR) > - dirty_iclog->ic_state = XLOG_STATE_DIRTY; > + dirty_iclog->ic_state = XLOG_STATE_DIRTY; > > xlog_state_activate_iclogs(log, &iclogs_changed); > wake_up_all(&dirty_iclog->ic_force_wait); > @@ -2836,8 +2835,10 @@ xlog_state_do_callback( > */ > cycled_icloglock = true; > xlog_state_do_iclog_callbacks(log, iclog); > - > - xlog_state_clean_iclog(log, iclog); > + if (XLOG_FORCED_SHUTDOWN(log)) > + wake_up_all(&iclog->ic_force_wait); > + else > + xlog_state_clean_iclog(log, iclog); > iclog = iclog->ic_next; > } while (first_iclog != iclog); > > -- > 2.24.1 >
On Mon, Mar 16, 2020 at 03:42:26PM +0100, Christoph Hellwig wrote: > Use the shutdown flag in the log to bypass xlog_state_clean_iclog > entirely in case of a shut down log. > > Signed-off-by: Christoph Hellwig <hch@lst.de> > --- Reviewed-by: Brian Foster <bfoster@redhat.com> > fs/xfs/xfs_log.c | 9 +++++---- > 1 file changed, 5 insertions(+), 4 deletions(-) > > diff --git a/fs/xfs/xfs_log.c b/fs/xfs/xfs_log.c > index 23979d08a2a3..c490c5b0d8b7 100644 > --- a/fs/xfs/xfs_log.c > +++ b/fs/xfs/xfs_log.c > @@ -2632,8 +2632,7 @@ xlog_state_clean_iclog( > { > int iclogs_changed = 0; > > - if (dirty_iclog->ic_state != XLOG_STATE_IOERROR) > - dirty_iclog->ic_state = XLOG_STATE_DIRTY; > + dirty_iclog->ic_state = XLOG_STATE_DIRTY; > > xlog_state_activate_iclogs(log, &iclogs_changed); > wake_up_all(&dirty_iclog->ic_force_wait); > @@ -2836,8 +2835,10 @@ xlog_state_do_callback( > */ > cycled_icloglock = true; > xlog_state_do_iclog_callbacks(log, iclog); > - > - xlog_state_clean_iclog(log, iclog); > + if (XLOG_FORCED_SHUTDOWN(log)) > + wake_up_all(&iclog->ic_force_wait); > + else > + xlog_state_clean_iclog(log, iclog); > iclog = iclog->ic_next; > } while (first_iclog != iclog); > > -- > 2.24.1 >
diff --git a/fs/xfs/xfs_log.c b/fs/xfs/xfs_log.c index 23979d08a2a3..c490c5b0d8b7 100644 --- a/fs/xfs/xfs_log.c +++ b/fs/xfs/xfs_log.c @@ -2632,8 +2632,7 @@ xlog_state_clean_iclog( { int iclogs_changed = 0; - if (dirty_iclog->ic_state != XLOG_STATE_IOERROR) - dirty_iclog->ic_state = XLOG_STATE_DIRTY; + dirty_iclog->ic_state = XLOG_STATE_DIRTY; xlog_state_activate_iclogs(log, &iclogs_changed); wake_up_all(&dirty_iclog->ic_force_wait); @@ -2836,8 +2835,10 @@ xlog_state_do_callback( */ cycled_icloglock = true; xlog_state_do_iclog_callbacks(log, iclog); - - xlog_state_clean_iclog(log, iclog); + if (XLOG_FORCED_SHUTDOWN(log)) + wake_up_all(&iclog->ic_force_wait); + else + xlog_state_clean_iclog(log, iclog); iclog = iclog->ic_next; } while (first_iclog != iclog);
Use the shutdown flag in the log to bypass xlog_state_clean_iclog entirely in case of a shut down log. Signed-off-by: Christoph Hellwig <hch@lst.de> --- fs/xfs/xfs_log.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-)