diff options
author | Nathan Scott <nathans@sgi.com> | 2006-09-28 01:02:14 (GMT) |
---|---|---|
committer | Tim Shimmin <tes@sgi.com> | 2006-09-28 01:02:14 (GMT) |
commit | a3c6685eaa1b6c5cf05b084b3bc91895e253ad2c (patch) | |
tree | e8302047f74bdb3071451e1b0b848dab37624f0f /fs/xfs/xfs_log.c | |
parent | bb3c7d2936b6db6f5ded9abf4d215abe97af8372 (diff) | |
download | linux-a3c6685eaa1b6c5cf05b084b3bc91895e253ad2c.tar.xz |
[XFS] Ensure xlog_state_do_callback does not report spurious warnings on
ramdisks.
SGI-PV: 954802
SGI-Modid: xfs-linux-melb:xfs-kern:26627a
Signed-off-by: Nathan Scott <nathans@sgi.com>
Signed-off-by: Tim Shimmin <tes@sgi.com>
Diffstat (limited to 'fs/xfs/xfs_log.c')
-rw-r--r-- | fs/xfs/xfs_log.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/fs/xfs/xfs_log.c b/fs/xfs/xfs_log.c index 21ac1a6..2a46919 100644 --- a/fs/xfs/xfs_log.c +++ b/fs/xfs/xfs_log.c @@ -2212,9 +2212,13 @@ xlog_state_do_callback( iclog = iclog->ic_next; } while (first_iclog != iclog); - if (repeats && (repeats % 10) == 0) { + + if (repeats > 5000) { + flushcnt += repeats; + repeats = 0; xfs_fs_cmn_err(CE_WARN, log->l_mp, - "xlog_state_do_callback: looping %d", repeats); + "%s: possible infinite loop (%d iterations)", + __FUNCTION__, flushcnt); } } while (!ioerrors && loopdidcallbacks); @@ -2246,6 +2250,7 @@ xlog_state_do_callback( } #endif + flushcnt = 0; if (log->l_iclog->ic_state & (XLOG_STATE_ACTIVE|XLOG_STATE_IOERROR)) { flushcnt = log->l_flushcnt; log->l_flushcnt = 0; |