summaryrefslogtreecommitdiffstats
path: root/firmware
diff options
context:
space:
mode:
authorYan, Zheng <zyan@redhat.com>2018-01-08 14:44:10 +0800
committerIlya Dryomov <idryomov@gmail.com>2018-01-29 18:36:11 +0100
commit0f439c746c8cb370ce3ae1668182b18a5cb12b14 (patch)
treeafea56c8ccc802f522dccf515e622329743a9610 /firmware
parentee612d954fe96612afaa966d8a67b736ba0c571e (diff)
downloadlinux-0f439c746c8cb370ce3ae1668182b18a5cb12b14.tar.bz2
ceph: fix race of queuing delayed caps
When called with CHECK_CAPS_AUTHONLY flag, ceph_check_caps() only processes auth caps. In that case, it's unsafe to remove inode from mdsc->cap_delay_list, because there can be delayed non-auth caps. Besides, ceph_check_caps() may lock/unlock i_ceph_lock several times, when multiple threads call ceph_check_caps() at the same time. It's possible that one thread calls __cap_delay_requeue(), another thread calls __cap_delay_cancel(). __cap_delay_cancel() should be called at very beginning of ceph_check_caps(), so that it does not race with __cap_delay_requeue(). Signed-off-by: "Yan, Zheng" <zyan@redhat.com> Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
Diffstat (limited to 'firmware')
0 files changed, 0 insertions, 0 deletions