kernel-hacking-2024-linux-s.../fs
Miklos Szeredi 0bb6fcc13a [PATCH] pivot_root() circular reference fix
Fix http://bugzilla.kernel.org/show_bug.cgi?id=4857

When pivot_root is called from an init script in an initramfs environment,
it causes a circular reference in the mount tree.

The cause of this is that pivot_root() is not prepared to handle pivoting
an unattached mount.  In an initramfs environment, rootfs is the root of
the namespace, and so it is not attached.

This patch fixes this and related problems, by returning -EINVAL if either
the current root or the new root is detached.

Signed-off-by: Miklos Szeredi <miklos@szeredi.hu>
Acked-by: Al Viro <viro@parcelfarce.linux.theplanet.co.uk>
Cc: <bigfish@asmallpond.org>
Cc: Christoph Hellwig <hch@lst.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-09-07 16:58:01 -07:00
..
adfs [ARM] fs/adfs/adfs.h: "extern inline" doesn't make sense 2005-08-20 17:20:28 +01:00
affs
afs [PATCH] Fix up symlink function pointers 2005-08-19 18:08:21 -07:00
autofs Fix nasty ncpfs symlink handling bug. 2005-08-19 18:02:56 -07:00
autofs4 [PATCH] Fix up symlink function pointers 2005-08-19 18:08:21 -07:00
befs befs: fix up missed follow_link declaration change 2005-08-20 13:20:01 -07:00
bfs
cifs [PATCH] fs: convert kcalloc to kzalloc 2005-09-07 16:57:46 -07:00
coda
cramfs [PATCH] fix cramfs making duplicate entries in inode cache 2005-09-07 16:57:33 -07:00
debugfs
devfs [PATCH] Fix up symlink function pointers 2005-08-19 18:08:21 -07:00
devpts [PATCH] Generic VFS fallback for security xattrs 2005-09-05 00:05:52 -07:00
efs
exportfs
ext2 [PATCH] disk quotas fail when /etc/mtab is symlinked to /proc/mounts 2005-09-07 16:57:23 -07:00
ext3 [PATCH] disk quotas fail when /etc/mtab is symlinked to /proc/mounts 2005-09-07 16:57:23 -07:00
fat [PATCH] Speedup FAT filesystem directory reads 2005-09-07 16:57:26 -07:00
freevxfs [PATCH] fs: convert kcalloc to kzalloc 2005-09-07 16:57:46 -07:00
hfs [PATCH] hfs: NLS support 2005-09-07 16:57:50 -07:00
hfsplus [PATCH] Change HFS+ to not use ll_rw_block() 2005-09-07 16:57:56 -07:00
hostfs [PATCH] remove iattr.ia_attr_flags 2005-09-07 16:57:42 -07:00
hpfs
hppfs [PATCH] hppfs: fix symlink error path 2005-08-26 11:39:19 -07:00
hugetlbfs
isofs Check input buffer size in zisofs 2005-08-06 09:42:06 -07:00
jbd [PATCH] Fix race in do_get_write_access() 2005-09-07 16:57:57 -07:00
jffs [PATCH] jffs/jffs2: remove wrong function prototypes 2005-09-07 16:57:29 -07:00
jffs2 [PATCH] jffs/jffs2: remove wrong function prototypes 2005-09-07 16:57:29 -07:00
jfs [PATCH] disk quotas fail when /etc/mtab is symlinked to /proc/mounts 2005-09-07 16:57:23 -07:00
lockd [PATCH] NFS: procfs/sysctl interfaces for lockd do not work on x86_64 2005-07-13 11:25:24 -07:00
minix
msdos
ncpfs
nfs [PATCH] NFSv4: unbalanced BKL in nfs_atomic_lookup() 2005-08-19 18:44:56 -07:00
nfs_common [PATCH] NFS: Ensure ACL xdr code doesn't overflow. 2005-08-16 08:52:11 -07:00
nfsd [PATCH] sunrpc: cache_register can use wrong module reference 2005-09-07 16:57:25 -07:00
nls
ntfs NTFS: Complete the previous fix for the unset device when mapping buffers 2005-08-16 19:42:56 +01:00
openpromfs
partitions
proc [PATCH] remove duplicated code from proc and ptrace 2005-09-07 16:57:43 -07:00
qnx4
ramfs
reiserfs [PATCH] Change ll_rw_block() calls in Reiser 2005-09-07 16:57:56 -07:00
relayfs [PATCH] relayfs 2005-09-07 16:57:18 -07:00
romfs
smbfs [TCP]: Move the tcp sock states to net/tcp_states.h 2005-08-29 15:41:54 -07:00
sysfs [PATCH] Fix oops in sysfs_hash_and_remove_file() 2005-08-26 19:37:13 -07:00
sysv [PATCH] Fix up symlink function pointers 2005-08-19 18:08:21 -07:00
udf
ufs [PATCH] Change ll_rw_block() calls in UFS 2005-09-07 16:57:56 -07:00
vfat
xfs [PATCH] Fix up symlink function pointers 2005-08-19 18:08:21 -07:00
aio.c [PATCH] uml: fixes performance regression in activate_mm and thus exec() 2005-09-05 00:06:21 -07:00
attr.c [PATCH] inotify 2005-07-12 20:38:38 -07:00
bad_inode.c
binfmt_aout.c
binfmt_elf.c
binfmt_elf_fdpic.c
binfmt_em86.c
binfmt_flat.c [PATCH] uclinux: use MAP_PRIVATE when mmaping code regions in flat binary loader 2005-09-02 00:57:31 -07:00
binfmt_misc.c
binfmt_script.c
binfmt_som.c
bio.c [PATCH] kill bio->bi_set 2005-09-07 16:57:20 -07:00
block_dev.c
buffer.c [PATCH] Make ll_rw_block() wait for buffer lock 2005-09-07 16:57:55 -07:00
char_dev.c
compat.c [PATCH] remove duplicated sys_open32() code from 64bit archs 2005-09-07 16:57:43 -07:00
compat_ioctl.c
dcache.c [PATCH] fsnotify_name/inoderemove 2005-08-08 11:53:47 -07:00
dcookies.c
direct-io.c
dnotify.c
dquot.c
eventpoll.c
exec.c
fcntl.c [PATCH] stale POSIX lock handling 2005-07-27 16:26:06 -07:00
fifo.c
file.c
file_table.c [PATCH] remove file.f_maxcount 2005-09-07 16:57:32 -07:00
filesystems.c
fs-writeback.c
inode.c [PATCH] fs: remove redundant timespec_equal test in update_atime() 2005-09-07 16:57:31 -07:00
inotify.c [PATCH] inotify: fix event loss on hardlinked files 2005-09-07 16:57:39 -07:00
ioctl.c
ioprio.c Don't allow normal users to set idle IO priority 2005-08-20 18:51:29 -07:00
Kconfig [PATCH] fs/Kconfig: quota help text updates 2005-09-07 16:57:29 -07:00
Kconfig.binfmt
libfs.c
locks.c [PATCH] stale POSIX lock handling 2005-07-27 16:26:06 -07:00
Makefile [PATCH] relayfs 2005-09-07 16:57:18 -07:00
mbcache.c [PATCH] mbcache: Remove unused mb_cache_shrink parameter 2005-07-27 16:26:07 -07:00
mpage.c
namei.c [PATCH] namei cleanup 2005-09-07 16:57:42 -07:00
namespace.c [PATCH] pivot_root() circular reference fix 2005-09-07 16:58:01 -07:00
nfsctl.c
open.c [PATCH] remove duplicated sys_open32() code from 64bit archs 2005-09-07 16:57:43 -07:00
pipe.c [PATCH] pipe: remove redundant fifo_poll abstraction 2005-09-07 16:57:35 -07:00
posix_acl.c
quota.c
quota_v1.c
quota_v2.c
read_write.c [PATCH] remove file.f_maxcount 2005-09-07 16:57:32 -07:00
readdir.c
select.c
seq_file.c
stat.c
super.c
xattr.c [PATCH] fsnotify: hook on removexattr, too 2005-09-07 16:57:27 -07:00
xattr_acl.c