]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/commit - fs/ceph/mds_client.c
ceph: fix file lock interruption
authorYan, Zheng <zyan@redhat.com>
Tue, 14 Oct 2014 02:33:35 +0000 (10:33 +0800)
committerIlya Dryomov <idryomov@redhat.com>
Wed, 17 Dec 2014 17:09:49 +0000 (20:09 +0300)
commit9280be24dc9c7aaee230de3ed33f8357386de9a2
tree5ff0cf8f4326a05d72d8aef60b75ab631af07bc9
parentb2776bf7149bddd1f4161f14f79520f17fc1d71d
ceph: fix file lock interruption

When a lock operation is interrupted, current code sends a unlock request to
MDS to undo the lock operation. This method does not work as expected because
the unlock request can drop locks that have already been acquired.

The fix is use the newly introduced CEPH_LOCK_FCNTL_INTR/CEPH_LOCK_FLOCK_INTR
requests to interrupt blocked file lock request. These requests do not drop
locks that have alread been acquired, they only interrupt blocked file lock
request.

Signed-off-by: Yan, Zheng <zyan@redhat.com>
fs/ceph/locks.c
fs/ceph/mds_client.c
fs/ceph/mds_client.h
include/linux/ceph/ceph_fs.h