diff --git a/kmod/src/msg.h b/kmod/src/msg.h index e08682c8..54477825 100644 --- a/kmod/src/msg.h +++ b/kmod/src/msg.h @@ -35,6 +35,12 @@ do { \ } \ } while (0) \ +#define scoutfs_bug_on_err(sb, err, fmt, args...) \ +do { \ + __typeof__(err) _err = (err); \ + scoutfs_bug_on(sb, _err < 0 && _err != -ENOLINK, fmt, ##args); \ +} while (0) + /* * Each message is only generated once per volume. Remounting resets * the messages. diff --git a/kmod/src/server.c b/kmod/src/server.c index 4c6686b2..7ed04b52 100644 --- a/kmod/src/server.c +++ b/kmod/src/server.c @@ -2518,10 +2518,9 @@ out: } } - if (ret < 0) - scoutfs_err(sb, "server error %d splicing log merge completion: %s", ret, err_str); - - BUG_ON(ret); /* inconsistent */ + /* inconsistent */ + scoutfs_bug_on_err(sb, ret, + "server error %d splicing log merge completion: %s", ret, err_str); return ret ?: einprogress; }