]> git.apps.os.sepia.ceph.com Git - ceph.git/commit
mds: prevent filelock from being stuck at XSYN state 20340/head
authorYan, Zheng <zyan@redhat.com>
Tue, 7 Nov 2017 04:39:49 +0000 (12:39 +0800)
committerPatrick Donnelly <pdonnell@redhat.com>
Tue, 6 Feb 2018 17:44:35 +0000 (09:44 -0800)
commit87991643b38b1a0e526b599b65bb010e66c08374
tree07b30ec511f1492a4f682a561318ef177595a722
parent4fbde822b85fb96e79f800df0ab24d508887665b
mds: prevent filelock from being stuck at XSYN state

Lock:file_eval() does not properly handle the condition: filelock
is in XSYN state, both loner_cap and want_loner_cap are >= 0, and
loner_cap != want_loner_cap.

To set loner to the wanted one, mds need to revoke caps from the old
loner. Changing lock state to MIX can do the job.

Fixes: http://tracker.ceph.com/issues/22008
Signed-off-by: "Yan, Zheng" <zyan@redhat.com
(cherry picked from commit 67a428741fc82eb5f4120042197acf0cec34213a)
src/mds/Locker.cc