From: Ilya Dryomov Date: Sun, 7 Feb 2021 14:09:24 +0000 (+0100) Subject: librbd: treat EROFS as expected in handle_acquire_lock() X-Git-Tag: v15.2.13~2^2~10^2~2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=dd7e76250ac38a8fd26ddcf604b37cbe07ad39f4;p=ceph.git librbd: treat EROFS as expected in handle_acquire_lock() If the peer refuses to release exclusive lock (e.g. in case automatic exclusive lock transitions are disabled), EROFS is retured. Suppress a rather confusing "Read-only file system" error message -- this case is no different from EBUSY or EAGAIN. Signed-off-by: Ilya Dryomov (cherry picked from commit 2f82c98f5a542a69057f3e78d232380eee14eff7) --- diff --git a/src/librbd/ManagedLock.cc b/src/librbd/ManagedLock.cc index 1d3aa2d0581b..df01f1062179 100644 --- a/src/librbd/ManagedLock.cc +++ b/src/librbd/ManagedLock.cc @@ -520,10 +520,10 @@ template void ManagedLock::handle_acquire_lock(int r) { ldout(m_cct, 10) << "r=" << r << dendl; - if (r == -EBUSY || r == -EAGAIN) { + if (r == -EBUSY || r == -EAGAIN || r == -EROFS) { ldout(m_cct, 5) << "unable to acquire exclusive lock" << dendl; } else if (r < 0) { - lderr(m_cct) << "failed to acquire exclusive lock:" << cpp_strerror(r) + lderr(m_cct) << "failed to acquire exclusive lock: " << cpp_strerror(r) << dendl; } else { ldout(m_cct, 5) << "successfully acquired exclusive lock" << dendl;