linux-hardened/fs/ceph
Sage Weil ca04d9c3ec ceph: fix null pointer deref on anon root dentry release
When we release a root dentry, particularly after a splice, the parent
(actually our) inode was evaluating to NULL and was getting dereferenced
by ceph_snap().  This is reproduced by something as simple as

 mount -t ceph monhost:/a/b mnt
 mount -t ceph monhost:/a mnt2
 ls mnt2

A splice_dentry() would kill the old 'b' inode's root dentry, and we'd
crash while releasing it.

Fix by checking for both the ROOT and NULL cases explicitly.  We only need
to invalidate the parent dir when we have a correct parent to invalidate.

Signed-off-by: Sage Weil <sage@newdream.net>
2010-09-11 10:52:47 -07:00
..
crush ceph: clean up header guards 2010-08-01 20:11:42 -07:00
addr.c ceph: maintain i_head_snapc when any caps are dirty, not just for data 2010-08-24 16:24:18 -07:00
armor.c ceph: code cleanup 2010-08-01 20:11:40 -07:00
auth.c ceph: code cleanup 2010-08-01 20:11:40 -07:00
auth.h ceph: renew auth tickets before they expire 2010-05-29 09:12:39 -07: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.c ceph: fix get_ticket_handler() error handling 2010-08-26 09:26:50 -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 ceph: code cleanup 2010-08-01 20:11:40 -07:00
buffer.h ceph: buffer decoding helpers 2010-02-10 15:04:39 -08:00
caps.c ceph: maintain i_head_snapc when any caps are dirty, not just for data 2010-08-24 16:24:18 -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: clean up header guards 2010-08-01 20:11:42 -07:00
ceph_fs.c ceph: request FILE_LAZYIO cap when LAZY file mode is set 2010-08-01 20:11:38 -07:00
ceph_fs.h ceph: define on-wire types, constants for file locking support 2010-08-02 15:48:54 -07:00
ceph_hash.c ceph: whitespace cleanup 2009-12-03 14:59:44 -08:00
ceph_hash.h ceph: clean up header guards 2010-08-01 20:11:42 -07:00
ceph_strings.c ceph: define on-wire types, constants for file locking support 2010-08-02 15:48:54 -07:00
crypto.c ceph: move AES iv definition to shared header 2010-08-02 15:48:31 -07:00
crypto.h ceph: code cleanup 2010-08-01 20:11:40 -07:00
debugfs.c ceph: ceph_mdsc_build_path() returns an ERR_PTR 2010-08-26 09:24:28 -07:00
decode.h ceph: code cleanup 2010-08-01 20:11:40 -07:00
dir.c ceph: fix null pointer deref on anon root dentry release 2010-09-11 10:52:47 -07:00
export.c fs/ceph: Use ERR_CAST 2010-05-29 09:12:41 -07:00
file.c ceph: whitespace cleanup 2010-08-03 10:25:11 -07:00
inode.c ceph: ceph_get_inode() returns an ERR_PTR 2010-08-25 12:01:54 -07:00
ioctl.c ceph: add LAZYIO ioctl to mark a file description for lazy consistency 2010-08-01 20:11:39 -07:00
ioctl.h ceph: add LAZYIO ioctl to mark a file description for lazy consistency 2010-08-01 20:11:39 -07:00
Kconfig ceph: Correct obvious typo of Kconfig variable "CRYPTO_AES" 2010-07-24 21:36:07 -07:00
locks.c ceph: Fix warnings 2010-08-25 12:02:14 -07:00
Makefile ceph: add flock/fcntl lock support 2010-08-02 16:10:53 -07:00
mds_client.c ceph: don't BUG on ENOMEM during mds reconnect 2010-08-26 09:26:37 -07:00
mds_client.h ceph: fix multiple mds session shutdown 2010-08-22 15:04:43 -07:00
mdsmap.c ceph: track laggy state of mds from mdsmap 2010-08-01 20:11:40 -07:00
mdsmap.h ceph: track laggy state of mds from mdsmap 2010-08-01 20:11:40 -07:00
messenger.c ceph: whitespace cleanup 2010-08-03 10:25:11 -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: generalize mon requests, add pool op support 2010-08-10 14:41:25 -07:00
mon_client.h ceph: generalize mon requests, add pool op support 2010-08-10 14:41:25 -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: clean up header guards 2010-08-01 20:11:42 -07:00
osd_client.c ceph: fix osd request lru adjustment when sending request 2010-08-22 21:34:27 -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: whitespace cleanup 2010-08-03 10:25:11 -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: sync header defs with server code 2010-08-01 20:11:42 -07:00
README ceph: make object hash a pg_pool property 2009-11-06 21:55:25 -08:00
snap.c ceph: maintain i_head_snapc when any caps are dirty, not just for data 2010-08-24 16:24:18 -07:00
super.c ceph: do not ignore osd_idle_ttl mount option 2010-08-03 12:56:57 -07:00
super.h ceph: maintain i_head_snapc when any caps are dirty, not just for data 2010-08-24 16:24:18 -07:00
types.h ceph: make object hash a pg_pool property 2009-11-06 21:55:25 -08:00
xattr.c ceph: include dirty xattrs state in snapped caps 2010-08-22 15:16:46 -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