android_kernel_samsung_univ.../Documentation/filesystems
David Howells ea5b778a8b Unexport do_add_mount() and add in follow_automount(), not ->d_automount()
Unexport do_add_mount() and make ->d_automount() return the vfsmount to be
added rather than calling do_add_mount() itself.  follow_automount() will then
do the addition.

This slightly complicates things as ->d_automount() normally wants to add the
new vfsmount to an expiration list and start an expiration timer.  The problem
with that is that the vfsmount will be deleted if it has a refcount of 1 and
the timer will not repeat if the expiration list is empty.

To this end, we require the vfsmount to be returned from d_automount() with a
refcount of (at least) 2.  One of these refs will be dropped unconditionally.
In addition, follow_automount() must get a 3rd ref around the call to
do_add_mount() lest it eat a ref and return an error, leaving the mount we
have open to being expired as we would otherwise have only 1 ref on it.

d_automount() should also add the the vfsmount to the expiration list (by
calling mnt_set_expiry()) and start the expiration timer before returning, if
this mechanism is to be used.  The vfsmount will be unlinked from the
expiration list by follow_automount() if do_add_mount() fails.

This patch also fixes the call to do_add_mount() for AFS to propagate the mount
flags from the parent vfsmount.

Signed-off-by: David Howells <dhowells@redhat.com>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2011-01-15 20:07:48 -05:00
..
caching
configfs Documentation: make configfs example code simpler, clearer 2010-11-18 15:00:46 -08:00
nfs NFS: rename nfs.upcall -> nfs.idmap 2010-10-26 13:57:10 -04:00
pohmelfs
9p.txt fs/9p: Add access = client option to opt in acl evaluation. 2010-10-28 09:08:46 -05:00
00-INDEX
adfs.txt
affs.txt
afs.txt
autofs4-mount-control.txt
automount-support.txt
befs.txt
bfs.txt
btrfs.txt
ceph.txt
cifs.txt
coda.txt
cramfs.txt
debugfs.txt
devpts.txt
directory-locking
dlmfs.txt
dnotify_test.c
dnotify.txt
ecryptfs.txt
exofs.txt
ext2.txt
ext3.txt
ext4.txt ext4: add support for lazy inode table initialization 2010-10-27 21:30:05 -04:00
fiemap.txt
files.txt
fuse.txt
gfs2-glocks.txt
gfs2-uevents.txt
gfs2.txt
hfs.txt
hfsplus.txt
hpfs.txt
inotify.txt
isofs.txt
jfs.txt
Locking Allow d_manage() to be used in RCU-walk mode 2011-01-15 20:07:47 -05:00
locks.txt
logfs.txt
Makefile
mandatory-locking.txt
ncpfs.txt
nilfs2.txt
ntfs.txt NTFS: writev() fix and maintenance/contact details update 2011-01-12 08:35:53 -08:00
ocfs2.txt ocfs2: Add a mount option "coherency=*" to handle cluster coherency for O_DIRECT writes. 2010-10-11 14:14:55 -07:00
omfs.txt
path-lookup.txt fs: provide rcu-walk aware permission i_ops 2011-01-07 17:50:29 +11:00
porting Merge branch 'vfs-scale-working' of git://git.kernel.org/pub/scm/linux/kernel/git/npiggin/linux-npiggin 2011-01-13 20:14:13 -08:00
proc.txt oom: allow a non-CAP_SYS_RESOURCE proces to oom_score_adj down 2011-01-13 17:32:35 -08:00
quota.txt
ramfs-rootfs-initramfs.txt
relay.txt
romfs.txt
seq_file.txt
sharedsubtree.txt Documentation: Fix trivial typo in filesystems/sharedsubtree.txt 2010-10-25 21:18:21 -04:00
spufs.txt
squashfs.txt
sysfs-pci.txt
sysfs-tagging.txt
sysfs.txt
sysv-fs.txt
tmpfs.txt
ubifs.txt
udf.txt
ufs.txt
vfat.txt
vfs.txt Unexport do_add_mount() and add in follow_automount(), not ->d_automount() 2011-01-15 20:07:48 -05:00
xfs-delayed-logging-design.txt xfs: remove experimental tag from the delaylog option 2010-11-10 12:00:47 -06:00
xfs.txt
xip.txt