linux/fs/ceph
Sage Weil 5b1daecd59 ceph: properly handle aborted mds requests
Previously, if the MDS request was interrupted, we would unregister the
request and ignore any reply.  This could cause the caps or other cache
state to become out of sync.  (For instance, aborting dbench and doing
rm -r on clients would complain about a non-empty directory because the
client didn't realize it's aborted file create request completed.)

Even we don't unregister, we still can't process the reply normally because
we are no longer holding the caller's locks (like the dir i_mutex).

So, mark aborted operations with r_aborted, and in the reply handler, be
sure to process all the caps.  Do not process the namespace changes,
though, since we no longer will hold the dir i_mutex.  The dentry lease
state can also be ignored as it's more forgiving.

Signed-off-by: Sage Weil <sage@newdream.net>
2010-01-25 11:49:51 -08:00
..
crush ceph: whitespace cleanup 2009-12-03 14:59:44 -08:00
addr.c ceph: remove duplicate variable initialization 2010-01-25 11:33:35 -08:00
auth_none.c ceph: negotiate authentication protocol; implement AUTH_NONE protocol 2009-11-18 16:19:57 -08:00
auth_none.h ceph: negotiate authentication protocol; implement AUTH_NONE protocol 2009-11-18 16:19:57 -08:00
auth.c ceph: mount fails immediately on error 2009-11-20 14:24:46 -08:00
auth.h ceph: negotiate authentication protocol; implement AUTH_NONE protocol 2009-11-18 16:19:57 -08:00
buffer.c ceph: simplify ceph_buffer interface 2009-12-07 12:17:17 -08:00
buffer.h ceph: simplify ceph_buffer interface 2009-12-07 12:17:17 -08:00
caps.c ceph: include transaction id in ceph_msg_header (protocol change) 2009-12-23 08:17:22 -08: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: mark MDS CREATE as a write op 2010-01-25 11:49:50 -08: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
debugfs.c ceph: display pgid in debugfs osd request dump 2010-01-14 12:23:39 -08:00
decode.h ceph: negotiate authentication protocol; implement AUTH_NONE protocol 2009-11-18 16:19:57 -08:00
dir.c ceph: add feature bits to connection handshake (protocol change) 2009-12-23 09:30:21 -08:00
export.c ceph: nfs re-export support 2009-10-06 11:31:13 -07:00
file.c ceph: fix copy_user_to_page_vector() 2010-01-06 16:05:20 -08:00
inode.c ceph: properly handle aborted mds requests 2010-01-25 11:49:51 -08:00
ioctl.c ceph: allow preferred osd to be get/set via layout ioctl 2009-12-03 14:59:48 -08:00
ioctl.h ceph: allow preferred osd to be get/set via layout ioctl 2009-12-03 14:59:48 -08:00
Kconfig ceph: Kconfig, Makefile 2009-10-06 11:31:15 -07:00
Makefile ceph: support ceph_pagelist for message payload 2009-12-23 12:12:31 -08:00
mds_client.c ceph: properly handle aborted mds requests 2010-01-25 11:49:51 -08:00
mds_client.h ceph: properly handle aborted mds requests 2010-01-25 11:49:51 -08: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: remove unused erank field 2010-01-14 12:23:38 -08:00
messenger.h ceph: support ceph_pagelist for message payload 2009-12-23 12:12:31 -08:00
mon_client.c ceph: remove unused erank field 2010-01-14 12:23:38 -08:00
mon_client.h ceph: negotiate authentication protocol; implement AUTH_NONE protocol 2009-11-18 16:19:57 -08:00
msgpool.c ceph: more informative msgpool errors 2009-12-23 08:17:21 -08:00
msgpool.h ceph: warn on allocation from msgpool with larger front_len 2009-10-15 18:14:43 -07:00
msgr.h ceph: remove unused erank field 2010-01-14 12:23:38 -08:00
osd_client.c ceph: display pgid in debugfs osd request dump 2010-01-14 12:23:39 -08:00
osd_client.h ceph: display pgid in debugfs osd request dump 2010-01-14 12:23:39 -08:00
osdmap.c ceph: fix incremental osdmap pg_temp decoding bug 2009-12-21 16:40:00 -08:00
osdmap.h ceph: fix endian conversions for ceph_pg 2009-11-04 16:36:07 -08:00
pagelist.c ceph: support ceph_pagelist for message payload 2009-12-23 12:12:31 -08:00
pagelist.h ceph: support ceph_pagelist for message payload 2009-12-23 12:12:31 -08:00
rados.h ceph: include transaction id in ceph_msg_header (protocol change) 2009-12-23 08:17:22 -08:00
README ceph: make object hash a pg_pool property 2009-11-06 21:55:25 -08:00
snap.c ceph: hex dump corrupt server data to KERN_DEBUG 2009-12-21 16:39:52 -08:00
super.c ceph: only unregister registered bdi 2009-12-23 08:17:18 -08:00
super.h ceph: writeback congestion control 2009-12-21 16:39:56 -08:00
types.h ceph: make object hash a pg_pool property 2009-11-06 21:55:25 -08:00
xattr.c ceph: simplify ceph_buffer interface 2009-12-07 12:17:17 -08: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