]> git.baikalelectronics.ru Git - kernel.git/commit
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)
commitf4beb3c6651311916bf0ade022143930f0ff7712
tree5ff0cf8f4326a05d72d8aef60b75ab631af07bc9
parent6ec5e717bf909581e3f5ab096bb73603e250d937
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