linux/fs/ceph
Yan, Zheng b1530f5704 ceph: fix cap revoke race
If caps are been revoking by the auth MDS, don't consider them as
issued even they are still issued by non-auth MDS. The non-auth
MDS should also be revoking/exporting these caps, the client just
hasn't received the cap revoke/export message.

The race I encountered is: When caps are exporting to new MDS, the
client receives cap import message and cap revoke message from the
new MDS, then receives cap export message from the old MDS. When
the client receives cap revoke message from the new MDS, the revoking
caps are still issued by the old MDS, so the client does nothing.
Later when the cap export message is received, the client removes
the caps issued by the old MDS. (Another way to fix the race is
calling ceph_check_caps() in handle_cap_export())

Signed-off-by: Yan, Zheng <zheng.z.yan@intel.com>
Reviewed-by: Sage Weil <sage@inktank.com>
2013-07-03 15:32:57 -07:00
..
addr.c ceph: avoid meaningless calling ceph_caps_revoking if sync_mode == WB_SYNC_ALL. 2013-07-03 15:32:52 -07:00
caps.c ceph: fix cap revoke race 2013-07-03 15:32:57 -07:00
ceph_frag.c
debugfs.c
dir.c ceph: use i_release_count to indicate dir's completeness 2013-05-01 21:17:07 -07:00
export.c fs: encode_fh: return FILEID_INVALID if invalid fid_type 2013-02-26 02:46:10 -05:00
file.c ceph: fix pending vmtruncate race 2013-07-03 15:32:56 -07:00
inode.c ceph: fix pending vmtruncate race 2013-07-03 15:32:56 -07:00
ioctl.c libceph: rename ceph_calc_object_layout() 2013-05-01 21:16:17 -07:00
ioctl.h
Kconfig
locks.c ceph: fix up comment for ceph_count_locks() as to which lock to hold 2013-07-01 09:52:01 -07:00
Makefile
mds_client.c ceph: Free mdsc if alloc mdsc->mdsmap failed. 2013-07-03 15:32:53 -07:00
mds_client.h Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client 2013-02-28 17:43:09 -08:00
mdsmap.c ceph: tidy ceph_mdsmap_decode() a little 2013-07-01 09:52:02 -07:00
snap.c ceph: use ceph_create_snap_context() 2013-05-01 21:20:09 -07:00
strings.c libceph: update ceph_mds_state_name() and ceph_mds_op_name() 2013-02-18 12:20:34 -06:00
super.c ceph: avoid accessing invalid memory 2013-07-03 15:32:55 -07:00
super.h ceph: fix pending vmtruncate race 2013-07-03 15:32:56 -07:00
xattr.c ceph: fix sleeping function called from invalid context. 2013-07-03 15:32:51 -07:00