diff options
author | James Hall <James.Hall@Sun.COM> | 2010-04-23 14:46:59 +0100 |
---|---|---|
committer | James Hall <James.Hall@Sun.COM> | 2010-04-23 14:46:59 +0100 |
commit | f4b369f8ed5a4eeed9892045fdeadf3b5addb08d (patch) | |
tree | d73ff70def9ef7b7ecc8b2cf30dedda484ddec69 | |
parent | 653e74592bd9b1c94be2efccc564a163b0e5fd18 (diff) | |
download | illumos-gate-f4b369f8ed5a4eeed9892045fdeadf3b5addb08d.tar.gz |
6934287 check_resync_regions create huge number of entries in the callback table
-rw-r--r-- | usr/src/uts/common/io/lvm/mirror/mirror_resync.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/usr/src/uts/common/io/lvm/mirror/mirror_resync.c b/usr/src/uts/common/io/lvm/mirror/mirror_resync.c index 72fc14f91a..8630593ec9 100644 --- a/usr/src/uts/common/io/lvm/mirror/mirror_resync.c +++ b/usr/src/uts/common/io/lvm/mirror/mirror_resync.c @@ -20,8 +20,7 @@ */ /* - * Copyright 2009 Sun Microsystems, Inc. All rights reserved. - * Use is subject to license terms. + * Copyright (c) 1992, 2010, Oracle and/or its affiliates. All rights reserved. */ #include <sys/param.h> @@ -600,6 +599,9 @@ check_resync_regions(daemon_request_t *timeout) if ((ui->ui_tstate & MD_ABR_CAP) || (un->c.un_status & MD_UN_OFFLINE_SM) || (un->un_nsm < 2)) { md_unit_readerexit(ui); + /* Remove this thread from the CPR callback table. */ + mutex_enter(&un->un_prr_cpr_mx); + CALLB_CPR_EXIT(&cprinfo); continue; } |