kernel-ark/include
Dave Hansen ce8d2cdf3d r/o bind mounts: filesystem helpers for custom 'struct file's
Why do we need r/o bind mounts?

This feature allows a read-only view into a read-write filesystem.  In the
process of doing that, it also provides infrastructure for keeping track of
the number of writers to any given mount.

This has a number of uses.  It allows chroots to have parts of filesystems
writable.  It will be useful for containers in the future because users may
have root inside a container, but should not be allowed to write to
somefilesystems.  This also replaces patches that vserver has had out of the
tree for several years.

It allows security enhancement by making sure that parts of your filesystem
read-only (such as when you don't trust your FTP server), when you don't want
to have entire new filesystems mounted, or when you want atime selectively
updated.  I've been using the following script to test that the feature is
working as desired.  It takes a directory and makes a regular bind and a r/o
bind mount of it.  It then performs some normal filesystem operations on the
three directories, including ones that are expected to fail, like creating a
file on the r/o mount.

This patch:

Some filesystems forego the vfs and may_open() and create their own 'struct
file's.

This patch creates a couple of helper functions which can be used by these
filesystems, and will provide a unified place which the r/o bind mount code
may patch.

Also, rename an existing, static-scope init_file() to a less generic name.

Signed-off-by: Dave Hansen <haveblue@us.ibm.com>
Cc: Christoph Hellwig <hch@lst.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-10-17 08:43:04 -07:00
..
acpi
asm-alpha increase AT_VECTOR_SIZE to terminate saved_auxv properly 2007-10-17 08:43:00 -07:00
asm-arm remove include/asm-*/ipc.h 2007-10-17 08:42:55 -07:00
asm-arm26 softlockup: make asm/irq_regs.h available on every platform 2007-10-17 08:42:47 -07:00
asm-avr32 Remove dma_cache_(wback|inv|wback_inv) functions 2007-10-17 08:42:57 -07:00
asm-blackfin Remove dma_cache_(wback|inv|wback_inv) functions 2007-10-17 08:42:57 -07:00
asm-cris remove include/asm-*/ipc.h 2007-10-17 08:42:55 -07:00
asm-frv remove include/asm-*/ipc.h 2007-10-17 08:42:55 -07:00
asm-generic remove include/asm-*/ipc.h 2007-10-17 08:42:55 -07:00
asm-h8300 Remove dma_cache_(wback|inv|wback_inv) functions 2007-10-17 08:42:57 -07:00
asm-ia64 increase AT_VECTOR_SIZE to terminate saved_auxv properly 2007-10-17 08:43:00 -07:00
asm-m32r remove include/asm-*/ipc.h 2007-10-17 08:42:55 -07:00
asm-m68k Remove dma_cache_(wback|inv|wback_inv) functions 2007-10-17 08:42:57 -07:00
asm-m68knommu Remove dma_cache_(wback|inv|wback_inv) functions 2007-10-17 08:42:57 -07:00
asm-mips Remove dma_cache_(wback|inv|wback_inv) functions 2007-10-17 08:42:57 -07:00
asm-parisc Remove dma_cache_(wback|inv|wback_inv) functions 2007-10-17 08:42:57 -07:00
asm-powerpc increase AT_VECTOR_SIZE to terminate saved_auxv properly 2007-10-17 08:43:00 -07:00
asm-ppc Remove dma_cache_(wback|inv|wback_inv) functions 2007-10-17 08:42:57 -07:00
asm-s390 remove include/asm-*/ipc.h 2007-10-17 08:42:55 -07:00
asm-sh increase AT_VECTOR_SIZE to terminate saved_auxv properly 2007-10-17 08:43:00 -07:00
asm-sh64 Remove dma_cache_(wback|inv|wback_inv) functions 2007-10-17 08:42:57 -07:00
asm-sparc Remove dma_cache_(wback|inv|wback_inv) functions 2007-10-17 08:42:57 -07:00
asm-sparc64 Remove dma_cache_(wback|inv|wback_inv) functions 2007-10-17 08:42:57 -07:00
asm-um remove include/asm-*/ipc.h 2007-10-17 08:42:55 -07:00
asm-v850 remove include/asm-*/ipc.h 2007-10-17 08:42:55 -07:00
asm-x86 increase AT_VECTOR_SIZE to terminate saved_auxv properly 2007-10-17 08:43:00 -07:00
asm-xtensa remove strict ansi check from __u64 in asm/types.h 2007-10-17 08:42:53 -07:00
crypto
keys KEYS: Make request_key() and co fundamentally asynchronous 2007-10-17 08:42:57 -07:00
linux r/o bind mounts: filesystem helpers for custom 'struct file's 2007-10-17 08:43:04 -07:00
math-emu
media
mtd
net
pcmcia
rdma
rxrpc
scsi do not export /usr/include/scsi in make headers_install 2007-10-17 08:42:52 -07:00
sound
video
xen
Kbuild do not export /usr/include/scsi in make headers_install 2007-10-17 08:42:52 -07:00