kernel_optimize_test/fs
Eric W. Biederman 077130c0cf [NET]: Fix race when opening a proc file while a network namespace is exiting.
The problem:  proc_net files remember which network namespace the are
against but do not remember hold a reference count (as that would pin
the network namespace).   So we currently have a small window where
the reference count on a network namespace may be incremented when opening
a /proc file when it has already gone to zero.

To fix this introduce maybe_get_net and get_proc_net.

maybe_get_net increments the network namespace reference count only if it is
greater then zero, ensuring we don't increment a reference count after it
has gone to zero.

get_proc_net handles all of the magic to go from a proc inode to the network
namespace instance and call maybe_get_net on it.

PROC_NET the old accessor is removed so that we don't get confused and use
the wrong helper function.

Then I fix up the callers to use get_proc_net and handle the case case
where get_proc_net returns NULL.  In that case I return -ENXIO because
effectively the network namespace has already gone away so the files
we are trying to access don't exist anymore.

Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
Acked-by: Paul E. McKenney <paulmck@us.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2007-10-10 16:49:22 -07:00
..
9p 9p: remove deprecated v9fs_fid_lookup_remove() 2007-08-23 10:13:45 -05:00
adfs
affs
afs [NET]: Make the device list and device lookups per namespace. 2007-10-10 16:49:10 -07:00
autofs
autofs4 autofs4: deadlock during create 2007-08-22 19:52:46 -07:00
befs
bfs
cifs [CIFS] Check return code on failed alloc 2007-08-18 00:15:20 +00:00
coda
configfs
cramfs
debugfs
devpts
dlm [DLM] fix basts for granted PR waiting CW 2007-08-14 10:31:02 +01:00
ecryptfs [NET]: Support multiple network namespaces with netlink 2007-10-10 16:49:09 -07:00
efs
exportfs
ext2
ext3 ext34: ensure do_split leaves enough free space in both blocks 2007-09-19 11:24:18 -07:00
ext4 ext34: ensure do_split leaves enough free space in both blocks 2007-09-19 11:24:18 -07:00
fat
freevxfs
fuse
gfs2 [GFS2] Revert remounting w/o acl option leaves acls enabled 2007-08-14 10:34:40 +01:00
hfs
hfsplus
hostfs
hpfs
hppfs
hugetlbfs hugepage: fix broken check for offset alignment in hugepage mappings 2007-08-31 01:42:23 -07:00
isofs
jbd
jbd2
jffs2 [JFFS2] fix write deadlock regression 2007-09-02 18:18:38 +01:00
jfs
lockd NLM: Fix a memory leak in nlmsvc_testlock 2007-10-09 12:38:26 -07:00
minix
msdos
ncpfs
nfs NFS: Fix an Oops in encode_lookup() 2007-09-28 15:36:42 -07:00
nfs_common
nfsd knfsd: Validate filehandle type in fsid_source 2007-09-10 18:57:47 -07:00
nls
ntfs
ocfs2 ocfs2: Unlock mutex in local alloc failure case 2007-10-03 11:14:45 -07:00
openpromfs
partitions
proc [NET]: Fix race when opening a proc file while a network namespace is exiting. 2007-10-10 16:49:22 -07:00
qnx4
ramfs
reiserfs quota: fix infinite loop 2007-09-11 17:21:19 -07:00
romfs
smbfs
sysfs sysfs: don't warn on removal of a nonexistent binary file 2007-08-22 14:35:36 -07:00
sysv
udf Fix possible NULL pointer dereference in udf_table_free_blocks() 2007-08-31 01:42:22 -07:00
ufs ufs: fix sun state 2007-09-25 08:51:04 -07:00
vfat
xfs Revert "[XFS] Avoid replaying inode buffer initialisation log items if on-disk version is newer." 2007-10-01 07:59:03 -07:00
aio.c AIO: fix cleanup in io_submit_one(...) 2007-10-08 12:58:14 -07:00
anon_inodes.c
attr.c
bad_inode.c
binfmt_aout.c
binfmt_elf_fdpic.c
binfmt_elf.c
binfmt_em86.c
binfmt_flat.c binfmt_flat: checkpatch fixing minimum support for the blackfin relocations 2007-10-03 23:43:57 +08:00
binfmt_misc.c
binfmt_script.c
binfmt_som.c
bio.c
block_dev.c
buffer.c
char_dev.c
compat_ioctl.c [NET]: Don't implement dev_ifname32 inline 2007-10-10 16:49:03 -07:00
compat.c
dcache.c
dcookies.c
direct-io.c dio: zero struct dio with kzalloc instead of manually 2007-08-20 22:50:25 -07:00
dnotify.c
dquot.c
drop_caches.c
eventfd.c
eventpoll.c
exec.c signalfd simplification 2007-09-20 13:19:59 -07: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
internal.h
ioctl.c
ioprio.c
Kconfig ocfs2: update docs for new features 2007-09-11 11:38:25 -07:00
Kconfig.binfmt
libfs.c
locks.c Leases can be hidden by flocks 2007-09-11 17:21:27 -07:00
Makefile
mbcache.c
mpage.c
namei.c
namespace.c
nfsctl.c
no-block.c
open.c
pipe.c
pnode.c
pnode.h
posix_acl.c
quota_v1.c
quota_v2.c
quota.c
read_write.c
read_write.h
readdir.c
select.c Fix select on /proc files without ->poll 2007-09-11 17:21:20 -07:00
seq_file.c
signalfd.c signalfd simplification 2007-09-20 13:19:59 -07:00
splice.c Fix possible splice() mmap_sem deadlock 2007-10-01 13:17:28 -07:00
stack.c
stat.c
super.c
sync.c
timerfd.c
utimes.c
xattr_acl.c
xattr.c