ceph: track pending caps flushing accurately
authorYan, Zheng <zyan@redhat.com>
Tue, 9 Jun 2015 07:48:57 +0000 (15:48 +0800)
committerIlya Dryomov <idryomov@gmail.com>
Thu, 25 Jun 2015 08:49:30 +0000 (11:49 +0300)
commit553adfd941f8ca622965ef809553d918ea039929
tree26ebb1577287a48cb9bcea96e8197ef1ac3b72bc
parent6c13a6bb55df6666275b992ba76620324429d7cf
ceph: track pending caps flushing accurately

Previously we do not trace accurate TID for flushing caps. when
MDS failovers, we have no choice but to re-send all flushing caps
with a new TID. This can cause problem because MDS can has already
flushed some caps and has issued the same caps to other client.
The re-sent cap flush has a new TID, which makes MDS unable to
detect if it has already processed the cap flush.

This patch adds code to track pending caps flushing accurately.
When re-sending cap flush is needed, we use its original flush
TID.

Signed-off-by: Yan, Zheng <zyan@redhat.com>
fs/ceph/caps.c
fs/ceph/inode.c
fs/ceph/mds_client.c
fs/ceph/mds_client.h
fs/ceph/super.h