kernel-ark/fs
Eric W. Biederman 3790ee4bd8 proc: remove/Fix proc generic d_revalidate
Ultimately to implement /proc perfectly we need an implementation of
d_revalidate because files and directories can be removed behind the back
of the VFS, and d_revalidate is the only way we can let the VFS know that
this has happened.

Unfortunately the linux VFS can not cope with anything in the path to a
mount point going away.  So a proper d_revalidate method that calls d_drop
also needs to call have_submounts which is moderately expensive, so you
really don't want a d_revalidate method that unconditionally calls it, but
instead only calls it when the backing object has really gone away.

proc generic entries only disappear on module_unload (when not counting the
fledgling network namespace) so it is quite rare that we actually encounter
that case and has not actually caused us real world trouble yet.

So until we get a proper test for keeping dentries in the dcache fix the
current d_revalidate method by completely removing it.  This returns us to
the current status quo.

So with CONFIG_NETNS=n things should look as they have always looked.

For CONFIG_NETNS=y things work most of the time but there are a few rare
corner cases that don't behave properly.  As the network namespace is
barely present in 2.6.24 this should not be a problem.

Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
Cc: "Rafael J. Wysocki" <rjw@sisk.pl>
Cc: Pavel Emelyanov <xemul@openvz.org>
Cc: "David S. Miller" <davem@davemloft.net>
Cc: Herbert Xu <herbert@gondor.apana.org.au>
Cc: Alexey Dobriyan <adobriyan@gmail.com>
Cc: Trond Myklebust <trond.myklebust@fys.uio.no>
Cc: "Denis V. Lunev" <den@openvz.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-12-10 19:43:55 -08:00
..
9p 9p: use copy of the options value instead of original 2007-11-06 08:02:53 -06:00
adfs
affs
afs fs/afs/vlocation.c: fix off-by-one 2007-11-05 15:12:32 -08:00
autofs
autofs4
befs
bfs regression: bfs endianness bug 2007-12-05 09:25:20 -08:00
cifs regression: cifs endianness bug 2007-12-05 09:25:19 -08:00
coda
configfs
cramfs
debugfs [PATCH] pass dentry to audit_inode()/audit_inode_child() 2007-10-21 02:37:18 -04:00
devpts
dlm [DLM] lowcomms: Do not muck with sysctl_rmem_max. 2007-11-07 04:11:42 -08:00
ecryptfs eCryptfs: cast page->index to loff_t instead of off_t 2007-11-14 18:45:36 -08:00
efs exportfs: make struct export_operations const 2007-10-22 08:13:21 -07:00
exportfs exportfs: update documentation 2007-10-22 08:13:21 -07:00
ext2 fix up ext2_fs.h for userspace after reservations backport 2007-11-29 09:24:53 -08:00
ext3 Fix 64KB blocksize in ext3 directories 2007-11-14 18:45:43 -08:00
ext4 Forbid user to change file flags on quota files 2007-11-14 18:45:38 -08:00
fat exportfs: make struct export_operations const 2007-10-22 08:13:21 -07:00
freevxfs
fuse fuse: fix attribute caching after rename 2007-11-29 09:24:54 -08:00
gfs2 exportfs: make struct export_operations const 2007-10-22 08:13:21 -07:00
hfs
hfsplus
hostfs
hpfs
hppfs
hugetlbfs hugetlb: allow bulk updating in hugetlb_*_quota() 2007-11-14 18:45:40 -08:00
isofs exportfs: make struct export_operations const 2007-10-22 08:13:21 -07:00
jbd jbd: Fix assertion failure in fs/jbd/checkpoint.c 2007-12-05 09:21:20 -08:00
jbd2
jffs2 Freezer: Fix JFFS2 garbage collector freezing issue (rev. 2) 2007-12-04 01:35:41 -05:00
jfs Forbid user to change file flags on quota files 2007-11-14 18:45:38 -08:00
lockd
minix
msdos
ncpfs
nfs NFS: Clean up new multi-segment direct I/O changes 2007-11-26 16:32:40 -05:00
nfs_common
nfsd nfsd4: recheck for secure ports in fh_verify 2007-11-12 14:28:08 -08:00
nls
ntfs NTFS: Fix read regression. 2007-11-03 12:27:21 -07:00
ocfs2 remove nonsense force-casts from ocfs2 2007-12-05 09:25:20 -08:00
openpromfs
partitions
proc proc: remove/Fix proc generic d_revalidate 2007-12-10 19:43:55 -08:00
qnx4
ramfs
reiserfs proc: fix proc_dir_entry refcounting 2007-12-05 09:21:20 -08:00
romfs
smbfs smbfs: fix debug builds 2007-11-14 18:45:43 -08:00
sysfs sysfs: fix off-by-one error in fill_read_buffer() 2007-11-28 13:53:53 -08:00
sysv
udf
ufs ufs: fix nexstep dir block size 2007-12-05 09:21:18 -08:00
vfat
xfs Merge branch 'for-linus' of git://oss.sgi.com:8090/xfs/xfs-2.6 2007-12-10 10:18:27 -08:00
aio.c aio: only account I/O wait time in read_events if there are active requests 2007-12-05 09:21:18 -08:00
anon_inodes.c
attr.c
bad_inode.c sendfile: remove bad_sendfile() from bad_file_ops 2007-07-10 08:04:15 +02:00
binfmt_aout.c
binfmt_elf_fdpic.c
binfmt_elf.c
binfmt_em86.c
binfmt_flat.c
binfmt_misc.c
binfmt_script.c Convert files to UTF-8 and some cleanups 2007-10-19 23:21:04 +02:00
binfmt_som.c
bio.c
block_dev.c Slab API: remove useless ctor parameter and reorder parameters 2007-10-17 08:42:45 -07:00
buffer.c nobh: nobh_write_end fix 2007-10-21 08:54:05 -07:00
char_dev.c
compat_ioctl.c tty: add the new termios2 ioctls to the compatible list. 2007-11-29 09:24:55 -08:00
compat.c
dcache.c dcache: don't expose uninitialized memory in /proc/<pid>/fd/<fd> 2007-10-22 08:13:18 -07:00
dcookies.c
direct-io.c
dnotify.c
dquot.c
drop_caches.c
eventfd.c
eventpoll.c
exec.c vfs: coredumping fix 2007-11-28 10:58:01 -08:00
fcntl.c
fifo.c
file_table.c
file.c
filesystems.c
fs-writeback.c
generic_acl.c
inode.c
inotify_user.c
inotify.c [PATCH] new helper - inotify_evict_watch() 2007-10-21 02:37:38 -04:00
internal.h
ioctl.c
ioprio.c ioprio: allow sys_ioprio_set() value of 0 to reset ioprio setting 2007-11-07 13:54:07 +01:00
Kconfig [PATCH] ocfs2: Remove expensive bitmap scanning 2007-11-27 16:47:02 -08:00
Kconfig.binfmt
libfs.c exportfs: add new methods 2007-10-22 08:13:19 -07:00
locks.c locks: fix possible infinite loop in posix deadlock detection 2007-10-30 09:04:18 -07:00
Makefile
mbcache.c fs: Fix to correct the mbcache entries counter 2007-10-25 15:18:29 -07:00
mpage.c
namei.c [PATCH] pass dentry to audit_inode()/audit_inode_child() 2007-10-21 02:37:18 -04:00
namespace.c [PATCH] new helpers - collect_mounts() and release_collected_mounts() 2007-10-21 02:37:25 -04:00
nfsctl.c
no-block.c
open.c mark sys_open/sys_read exports unused 2007-11-14 18:45:42 -08:00
pipe.c
pnode.c
pnode.h [PATCH] new helpers - collect_mounts() and release_collected_mounts() 2007-10-21 02:37:25 -04:00
posix_acl.c
quota_v1.c
quota_v2.c
quota.c
read_write.c mark sys_open/sys_read exports unused 2007-11-14 18:45:42 -08:00
read_write.h
readdir.c
select.c
seq_file.c
signalfd.c
splice.c
stack.c
stat.c
super.c
sync.c
timerfd.c
utimes.c
xattr_acl.c
xattr.c [PATCH] pass dentry to audit_inode()/audit_inode_child() 2007-10-21 02:37:18 -04:00