On Fri, Jun 5, 2020 at 6:15 PM Bob Peterson <rpete...@redhat.com> wrote: > ----- Original Message ----- > > On Fri, Jun 5, 2020 at 4:49 PM Bob Peterson <rpete...@redhat.com> wrote: > > > Hi Andreas, > > > > > > ----- Original Message ----- > > > (snip) > > > > > @@ -970,7 +969,16 @@ void gfs2_log_flush(struct gfs2_sbd *sdp, struct > > > > > gfs2_glock *gl, u32 flags) > > > > > > > > > > if (!(flags & GFS2_LOG_HEAD_FLUSH_NORMAL)) { > > > > > if (!sdp->sd_log_idle) { > > > > > + unsigned long start = jiffies; > > > > > + > > > > > for (;;) { > > > > > + if (time_after(jiffies, start + (HZ * > > > > > 600))) { > > > > > > > > This should probably have some rate limiting as well, for example: > > > > > > Seems unnecessary. If the log flush gets stuck, the message will be > > > printed > > > once, and at most every 10 minutes. > > > > No, after ten minutes, the message will actually be printed for each > > iteration of the loop. That's exactly why I was suggesting the rate > > limiting. > > No, after ten minutes it dumps the ail list so you can see the problem > and exits the loop with "break;". > > The next time it enters the loop, it starts with a new value of start > which doesn't expire for another ten minutes.
Ok, I misread. Thanks, Andreas