]> git.baikalelectronics.ru Git - kernel.git/commit
ceph: always re-send cap flushes when MDS recovers
authorYan, Zheng <zyan@redhat.com>
Mon, 20 Jul 2015 01:50:58 +0000 (09:50 +0800)
committerIlya Dryomov <idryomov@gmail.com>
Fri, 31 Jul 2015 08:38:53 +0000 (11:38 +0300)
commitd3b5745672cb16b8ea2936be90e2ade4ee2dac72
treed3b9294d5c7ed7f4fef3b261a2d7e4f27ca8a582
parentae86a4cc5f467757d212d7b8fef2446bc3254e49
ceph: always re-send cap flushes when MDS recovers

commit d473231b6df9c8fde5f7aa9c73343ff36503732c makes the kclient
only re-send cap flush once during MDS failover. If the kclient sends
a cap flush after MDS enters reconnect stage but before MDS recovers.
The kclient will skip re-sending the same cap flush when MDS recovers.

This causes problem for newly created inode. The MDS handles cap
flushes before replaying unsafe requests, so it's possible that MDS
find corresponding inode is missing when handling cap flush. The fix
is reverting to old behaviour: always re-send when MDS recovers

Signed-off-by: Yan, Zheng <zyan@redhat.com>
Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
fs/ceph/caps.c
fs/ceph/super.h