linux/fs/ceph
Sage Weil 17c688c3df ceph: delay umount until all mds requests drop inode+dentry refs
This fixes a race between handle_reply finishing an mds request, signalling
completion, and then dropping the request structing and its dentry+inode
refs, and pre_umount function waiting for requests to finish before
letting the vfs tear down the dcache.  If umount was delayed waiting for
mds requests, we could race and BUG in shrink_dcache_for_umount_subtree
because of a slow dput.

This delays umount until the msgr queue flushes, which means handle_reply
will exit and will have dropped the ceph_mds_request struct.  I'm assuming
the VFS has already ensured that its calls have all completed and those
request refs have thus been dropped as well (I haven't seen that race, at
least).

Signed-off-by: Sage Weil <sage@newdream.net>
2010-06-21 16:11:50 -07:00
..
crush ceph: whitespace cleanup 2009-12-03 14:59:44 -08:00
addr.c ceph: use ceph_sb_to_client instead of ceph_client 2010-05-17 15:25:17 -07:00
armor.c ceph: aes crypto and base64 encode/decode helpers 2010-02-10 15:04:46 -08:00
auth_none.c ceph: renew auth tickets before they expire 2010-05-29 09:12:39 -07:00
auth_none.h ceph: add missing #includes 2010-05-03 10:49:24 -07:00
auth_x_protocol.h ceph: add support for auth_x authentication protocol 2010-02-11 11:48:45 -08:00
auth_x.c ceph: some endianity fixes 2010-06-13 10:34:36 -07:00
auth_x.h ceph: add support for auth_x authentication protocol 2010-02-11 11:48:45 -08:00
auth.c ceph: renew auth tickets before they expire 2010-05-29 09:12:39 -07:00
auth.h ceph: renew auth tickets before they expire 2010-05-29 09:12:39 -07:00
buffer.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
buffer.h ceph: buffer decoding helpers 2010-02-10 15:04:39 -08:00
caps.c ceph: try to send partial cap release on cap message on missing inode 2010-06-10 13:30:25 -07:00
ceph_debug.h ceph: client types 2009-10-06 11:31:07 -07:00
ceph_frag.c ceph: client types 2009-10-06 11:31:07 -07:00
ceph_frag.h ceph: client types 2009-10-06 11:31:07 -07:00
ceph_fs.c ceph: make object hash a pg_pool property 2009-11-06 21:55:25 -08:00
ceph_fs.h ceph: make lease code DN specific 2010-05-29 09:12:42 -07:00
ceph_hash.c ceph: whitespace cleanup 2009-12-03 14:59:44 -08:00
ceph_hash.h ceph: make object hash a pg_pool property 2009-11-06 21:55:25 -08:00
ceph_strings.c ceph: cleanup pool op strings 2010-05-17 15:25:41 -07:00
crypto.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
crypto.h ceph: aes crypto and base64 encode/decode helpers 2010-02-10 15:04:46 -08:00
debugfs.c ceph: make mon client statfs handling more generic 2010-05-17 15:25:33 -07:00
decode.h ceph: buffer decoding helpers 2010-02-10 15:04:39 -08:00
dir.c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client 2010-05-30 08:56:39 -07:00
export.c fs/ceph: Use ERR_CAST 2010-05-29 09:12:41 -07:00
file.c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client 2010-05-30 08:56:39 -07:00
inode.c ceph: handle splice_dentry/d_materialize_unique error in readdir_prepopulate 2010-06-21 16:04:10 -07:00
ioctl.c ceph: use ceph_sb_to_client instead of ceph_client 2010-05-17 15:25:17 -07:00
ioctl.h ceph: allow preferred osd to be get/set via layout ioctl 2009-12-03 14:59:48 -08:00
Kconfig ceph: aes crypto and base64 encode/decode helpers 2010-02-10 15:04:46 -08:00
Makefile ceph: add support for auth_x authentication protocol 2010-02-11 11:48:45 -08:00
mds_client.c ceph: delay umount until all mds requests drop inode+dentry refs 2010-06-21 16:11:50 -07:00
mds_client.h ceph: try to send partial cap release on cap message on missing inode 2010-06-10 13:30:25 -07:00
mdsmap.c ceph: hex dump corrupt server data to KERN_DEBUG 2009-12-21 16:39:52 -08:00
mdsmap.h ceph: decode updated mdsmap format 2009-11-20 14:24:33 -08:00
messenger.c ceph: fix message memory leak, uninitialized variable 2010-06-13 10:34:36 -07:00
messenger.h ceph: close out mds, osd connections before stopping auth 2010-05-29 09:42:03 -07:00
mon_client.c ceph: some endianity fixes 2010-06-13 10:34:36 -07:00
mon_client.h ceph: reuse mon subscribe message instead of allocated anew 2010-05-21 16:26:11 -07:00
msgpool.c ceph: all allocation functions should get gfp_mask 2010-05-17 15:25:42 -07:00
msgpool.h ceph: name msgpools; useful error messages 2010-05-17 15:25:24 -07:00
msgr.h ceph: resync headers with userland 2010-05-17 15:25:38 -07:00
osd_client.c ceph: fix map handler error path 2010-06-13 10:34:36 -07:00
osd_client.h ceph: resubmit requests on pg mapping change (not just primary change) 2010-05-11 09:53:56 -07:00
osdmap.c ceph: fix crush map update decoding 2010-06-17 10:22:48 -07:00
osdmap.h ceph: resubmit requests on pg mapping change (not just primary change) 2010-05-11 09:53:56 -07:00
pagelist.c ceph: use __page_cache_alloc and add_to_page_cache_lru 2010-05-17 15:25:12 -07:00
pagelist.h ceph: support ceph_pagelist for message payload 2009-12-23 12:12:31 -08:00
rados.h ceph: resync headers with userland 2010-05-17 15:25:38 -07:00
README ceph: make object hash a pg_pool property 2009-11-06 21:55:25 -08:00
snap.c ceph: use ceph_sb_to_client instead of ceph_client 2010-05-17 15:25:17 -07:00
super.c ceph: fix atomic64_t initialization on ia64 2010-06-10 13:29:50 -07:00
super.h Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client 2010-05-30 08:56:39 -07:00
types.h ceph: make object hash a pg_pool property 2009-11-06 21:55:25 -08:00
xattr.c ceph: use ceph. prefix for virtual xattrs 2010-05-17 15:25:37 -07:00

#
# The following files are shared by (and manually synchronized
# between) the Ceph userland and kernel client.
#
# userland                  kernel
src/include/ceph_fs.h	    fs/ceph/ceph_fs.h
src/include/ceph_fs.cc	    fs/ceph/ceph_fs.c
src/include/msgr.h	    fs/ceph/msgr.h
src/include/rados.h	    fs/ceph/rados.h
src/include/ceph_strings.cc fs/ceph/ceph_strings.c
src/include/ceph_frag.h	    fs/ceph/ceph_frag.h
src/include/ceph_frag.cc    fs/ceph/ceph_frag.c
src/include/ceph_hash.h	    fs/ceph/ceph_hash.h
src/include/ceph_hash.cc    fs/ceph/ceph_hash.c
src/crush/crush.c	    fs/ceph/crush/crush.c
src/crush/crush.h	    fs/ceph/crush/crush.h
src/crush/mapper.c	    fs/ceph/crush/mapper.c
src/crush/mapper.h	    fs/ceph/crush/mapper.h
src/crush/hash.h	    fs/ceph/crush/hash.h
src/crush/hash.c	    fs/ceph/crush/hash.c