diff options
-rw-r--r-- | src/mds/Locker.cc | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/mds/Locker.cc b/src/mds/Locker.cc index 41421f3e2a6..74a766256b4 100644 --- a/src/mds/Locker.cc +++ b/src/mds/Locker.cc @@ -2794,7 +2794,8 @@ bool Locker::_do_cap_update(CInode *in, Capability *cap, dout(10) << " i want to change file_max, but lock won't allow it (yet)" << dendl; if (in->filelock.is_stable()) { bool need_issue = false; - cap->inc_suppress(); + if (cap) + cap->inc_suppress(); if (in->mds_caps_wanted.empty() && (in->get_loner() >= 0 || (in->get_wanted_loner() >= 0 && in->try_set_loner()))) { if (in->filelock.get_state() != LOCK_EXCL) @@ -2803,7 +2804,8 @@ bool Locker::_do_cap_update(CInode *in, Capability *cap, simple_lock(&in->filelock, &need_issue); if (need_issue) issue_caps(in); - cap->dec_suppress(); + if (cap) + cap->dec_suppress(); } if (!in->filelock.can_wrlock(client) && !in->filelock.can_force_wrlock(client)) { |