linux/fs/ceph
Yan, Zheng 6f60f88947 ceph: fix freeing inode vs removing session caps race
remove_session_caps() uses iterate_session_caps() to remove caps,
but iterate_session_caps() skips inodes that are being deleted.
So session->s_nr_caps can be non-zero after iterate_session_caps()
return.

We can fix the issue by waiting until deletions are complete.
__wait_on_freeing_inode() is designed for the job, but it is not
exported, so we use lookup inode function to access it.

Signed-off-by: Yan, Zheng <zheng.z.yan@intel.com>
2013-08-09 17:55:32 -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: trim deleted inode 2013-08-09 17:55:10 -07:00
ceph_frag.c ceph: factor out libceph from Ceph file system 2010-10-20 15:37:28 -07:00
debugfs.c libceph: delay debugfs initialization until we learn global_id 2012-08-20 10:03:15 -07:00
dir.c ceph: drop CAP_LINK_SHARED when sending "link" request to MDS 2013-08-09 17:54:32 -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: Don't use ceph-sync-mode for synchronous-fs. 2013-08-09 17:55:18 -07:00
inode.c ceph: fix freeing inode vs removing session caps race 2013-08-09 17:55:32 -07:00
ioctl.c ceph: Add check returned value on func ceph_calc_ceph_pg. 2013-08-09 17:55:21 -07:00
ioctl.h ceph: fully initialize new layout 2012-05-16 14:28:27 -05:00
Kconfig fs/ceph: remove depends on CONFIG_EXPERIMENTAL 2013-01-11 11:39:04 -08:00
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 ceph: Makefile: Remove unnessary code 2011-01-12 15:15:13 -08:00
mds_client.c ceph: fix freeing inode vs removing session caps race 2013-08-09 17:55:32 -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 freeing inode vs removing session caps race 2013-08-09 17:55:32 -07:00
xattr.c ceph: fix sleeping function called from invalid context. 2013-07-03 15:32:51 -07:00