From f886de1c3d7e18b1d08ea3074aedd844a27609eb Mon Sep 17 00:00:00 2001 From: Chunwei Chen Date: Tue, 2 May 2017 11:41:27 -0700 Subject: [PATCH] Change allocating allocate segment from panic to warning Signed-off-by: Chunwei Chen --- module/zfs/range_tree.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/module/zfs/range_tree.c b/module/zfs/range_tree.c index 6422fd1c1fa6..da50fb3514dd 100644 --- a/module/zfs/range_tree.c +++ b/module/zfs/range_tree.c @@ -176,9 +176,24 @@ range_tree_add(void *arg, uint64_t start, uint64_t size) rs = avl_find(&rt->rt_root, &rsearch, &where); if (rs != NULL && rs->rs_start <= start && rs->rs_end >= end) { +#ifdef _KERNEL + static DEFINE_RATELIMIT_STATE(rls, DEFAULT_RATELIMIT_INTERVAL, + DEFAULT_RATELIMIT_BURST); + + if (__ratelimit(&rls)) { + cmn_err(CE_WARN, "zfs: allocating allocated segment" + "(offset=%llu size=%llu) from %pS\n", + (longlong_t)start, (longlong_t)size, _RET_IP_); + cmn_err(CE_WARN, "zfs: previous segment" + "(offset=%llu size=%llu)\n", + (longlong_t)rs->rs_start, + (longlong_t)(rs->rs_end - rs->rs_start)); + } +#else zfs_panic_recover("zfs: allocating allocated segment" "(offset=%llu size=%llu)\n", (longlong_t)start, (longlong_t)size); +#endif return; }