ceph: optimize cap flush waiting
authorYan, Zheng <zyan@redhat.com>
Thu, 7 Jul 2016 07:22:38 +0000 (15:22 +0800)
committerIlya Dryomov <idryomov@gmail.com>
Thu, 28 Jul 2016 01:00:45 +0000 (03:00 +0200)
commitc8799fc4674fe5bb9b9391f9eac202250b8370e1
tree2033af32e00355b5f63343e9e0bd374f40b5c76c
parented9b430c9ba99e70e8ddd7e08429c4c2a620ba74
ceph: optimize cap flush waiting

Add a 'wake' flag to ceph_cap_flush struct, which indicates if there
is someone waiting for it to finish. When getting flush ack message,
we check the 'wake' flag in corresponding ceph_cap_flush struct to
decide if we should wake up waiters. One corner case is that the
acked cap flush has 'wake' flags is set, but it is not the first one
on the flushing list. We do not wake up waiters in this case, set
'wake' flags of preceding ceph_cap_flush struct instead

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