linux/fs/ceph
Sage Weil 6c99f2545d ceph: throw out dirty caps metadata, data on session teardown
The remove_session_caps() helper is called when an MDS closes out our
session (either normally, or as a result of a failed reconnect), and when
we tear down state for umount.  If we remove the last cap, and there are
no cap migrations in progress, then there is little hope of us flushing
out that data to the mds (without heroic efforts to reconnect and flush).

So, to avoid leaving inodes pinned (due to dirty state) and crashing after
umount, throw out dirty caps state and unpin the inodes.  Print a warning
to the console so we know something was lost.

NOTE: Although we drop wrbuffer refs, we don't actually mark pages clean;
maybe a truncate should be queued?

Signed-off-by: Sage Weil <sage@newdream.net>
2010-05-17 15:25:37 -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.c ceph: include auth method in error messages 2010-05-17 15:25:23 -07:00
auth.h ceph: include auth method in error messages 2010-05-17 15:25:23 -07:00
auth_none.c ceph: include auth method in error messages 2010-05-17 15:25:23 -07:00
auth_none.h ceph: add missing #includes 2010-05-03 10:49:24 -07:00
auth_x.c ceph: adjust masked struct_v variable names 2010-05-17 15:25:29 -07:00
auth_x.h ceph: add support for auth_x authentication protocol 2010-02-11 11:48:45 -08:00
auth_x_protocol.h ceph: add support for auth_x authentication protocol 2010-02-11 11:48:45 -08: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: cleanup: remove unused assignement 2010-05-17 15:25:32 -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: drop src address(es) from message header [new protocol feature] 2010-05-17 15:25:32 -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: negotiate authentication protocol; implement AUTH_NONE protocol 2009-11-18 16:19:57 -08: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 ceph: set dn offset when spliced 2010-05-17 15:25:28 -07:00
export.c ceph: d_obtain_alias() returns ERR_PTR() 2010-05-17 15:25:22 -07:00
file.c ceph: make ceph_msg_new return NULL on failure; clean up, fix callers 2010-05-17 15:25:18 -07:00
inode.c ceph: set dn offset when spliced 2010-05-17 15:25:28 -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: throw out dirty caps metadata, data on session teardown 2010-05-17 15:25:37 -07:00
mds_client.h ceph: fix race between aborted requests and fill_trace 2010-05-17 10:25:45 -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: drop src address(es) from message header [new protocol feature] 2010-05-17 15:25:32 -07:00
messenger.h ceph: clean up connection reset 2010-05-17 15:25:20 -07:00
mon_client.c ceph: make mon client statfs handling more generic 2010-05-17 15:25:33 -07:00
mon_client.h ceph: make mon client statfs handling more generic 2010-05-17 15:25:33 -07:00
msgpool.c ceph: name msgpools; useful error messages 2010-05-17 15:25:24 -07:00
msgpool.h ceph: name msgpools; useful error messages 2010-05-17 15:25:24 -07:00
msgr.h ceph: drop src address(es) from message header [new protocol feature] 2010-05-17 15:25:32 -07:00
osd_client.c ceph: name msgpools; useful error messages 2010-05-17 15:25:24 -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: resubmit requests on pg mapping change (not just primary change) 2010-05-11 09:53:56 -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: resubmit requests on pg mapping change (not just primary change) 2010-05-11 09:53:56 -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: name bdi ceph-%d instead of major:minor 2010-05-17 15:25:30 -07:00
super.h ceph: clean up mount options, ->show_options() 2010-05-17 15:25:29 -07:00
types.h ceph: make object hash a pg_pool property 2009-11-06 21:55:25 -08:00
xattr.c ceph: listxattr should compare version by >= 2010-05-17 15:25:26 -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