From: David Zafman Date: Tue, 30 Apr 2019 03:20:18 +0000 (-0700) Subject: osd: Don't include user changeable flag in snaptrim related assert X-Git-Tag: v14.2.2~152^2 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=bee30f4a2df26f4b480209eeb061db0b7042b399;p=ceph.git osd: Don't include user changeable flag in snaptrim related assert Caused by: a53ba7314c53e75d1e0b8a0edd29181db3c93863 Fixes: http://tracker.ceph.com/issues/38124 Signed-off-by: David Zafman (cherry picked from commit 63c2060c2d9eef49dacf2ba240ccfbead9791f43) --- diff --git a/src/osd/PrimaryLogPG.h b/src/osd/PrimaryLogPG.h index c0f4afb1846ad..88fc547ab6465 100644 --- a/src/osd/PrimaryLogPG.h +++ b/src/osd/PrimaryLogPG.h @@ -1578,11 +1578,15 @@ private: explicit SnapTrimmer(PrimaryLogPG *pg) : pg(pg) {} void log_enter(const char *state_name); void log_exit(const char *state_name, utime_t duration); - bool can_trim() { + bool permit_trim() { return pg->is_clean() && !pg->scrubber.active && - !pg->snap_trimq.empty() && + !pg->snap_trimq.empty(); + } + bool can_trim() { + return + permit_trim() && !pg->get_osdmap()->test_flag(CEPH_OSDMAP_NOSNAPTRIM); } } snap_trimmer_machine; @@ -1601,7 +1605,7 @@ private: : my_base(ctx), NamedState(context< SnapTrimmer >().pg, "Trimming") { context< SnapTrimmer >().log_enter(state_name); - ceph_assert(context< SnapTrimmer >().can_trim()); + ceph_assert(context< SnapTrimmer >().permit_trim()); ceph_assert(in_flight.empty()); } void exit() {