summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2013-11-09binfmt_elf: convert writing actual dump pages to dump_emit()Al Viro
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2013-11-09switch elf_core_write_extra_data() to dump_emit()Al Viro
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2013-11-09switch elf_core_write_extra_phdrs() to dump_emit()Al Viro
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2013-11-09new helper: dump_emit()Al Viro
dump_write() analog, takes core_dump_params instead of file, keeps track of the amount written in cprm->written and checks for cprm->limit. Start using it in binfmt_elf.c... Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2013-11-09restore 32bit aout coredumpAl Viro
just getting rid of bitrot Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2013-11-09no need to keep brlock macros anymore...Al Viro
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2013-11-09coda_revalidate_inode(): switch to passing inode...Al Viro
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2013-11-09fold __d_shrink() into its only remaining callerAl Viro
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2013-11-09get rid of s_files and files_lockAl Viro
The only thing we need it for is alt-sysrq-r (emergency remount r/o) and these days we can do just as well without going through the list of files. Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2013-11-09get rid of {lock,unlock}_rcu_walk()Al Viro
those have become aliases for rcu_read_{lock,unlock}() Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2013-11-09RCU'd vfsmountsAl Viro
* RCU-delayed freeing of vfsmounts * vfsmount_lock replaced with a seqlock (mount_lock) * sequence number from mount_lock is stored in nameidata->m_seq and used when we exit RCU mode * new vfsmount flag - MNT_SYNC_UMOUNT. Set by umount_tree() when its caller knows that vfsmount will have no surviving references. * synchronize_rcu() done between unlocking namespace_sem in namespace_unlock() and doing pending mntput(). * new helper: legitimize_mnt(mnt, seq). Checks the mount_lock sequence number against seq, then grabs reference to mnt. Then it rechecks mount_lock again to close the race and either returns success or drops the reference it has acquired. The subtle point is that in case of MNT_SYNC_UMOUNT we can simply decrement the refcount and sod off - aforementioned synchronize_rcu() makes sure that final mntput() won't come until we leave RCU mode. We need that, since we don't want to end up with some lazy pathwalk racing with umount() and stealing the final mntput() from it - caller of umount() may expect it to return only once the fs is shut down and we don't want to break that. In other cases (i.e. with MNT_SYNC_UMOUNT absent) we have to do full-blown mntput() in case of mount_lock sequence number mismatch happening just as we'd grabbed the reference, but in those cases we won't be stealing the final mntput() from anything that would care. * mntput_no_expire() doesn't lock anything on the fast path now. Incidentally, SMP and UP cases are handled the same way - no ifdefs there. * normal pathname resolution does *not* do any writes to mount_lock. It does, of course, bump the refcounts of vfsmount and dentry in the very end, but that's it. Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2013-11-09switch shrink_dcache_for_umount() to use of d_walk()Al Viro
we have too many iterators in fs/dcache.c... Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2013-10-25fuse: rcu-delay freeing fuse_connAl Viro
makes ->permission() and ->d_revalidate() safety in RCU mode independent from vfsmount_lock. Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2013-10-25pid_namespace: make freeing struct pid_namespace rcu-delayedAl Viro
makes procfs ->premission() instances safety in RCU mode independent from vfsmount_lock. Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2013-10-25ncpfs: rcu-delay unload_nls() and freeing ncp_serverAl Viro
makes ->d_hash() and ->d_compare() safety in RCU mode independent from vfsmount_lock. Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2013-10-25fat: rcu-delay unloading nls and freeing sbiAl Viro
makes ->d_hash() and ->d_compare() safety in RCU mode independent from vfsmount_lock. Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2013-10-25cifs: rcu-delay unload_nls() and freeing sbiAl Viro
makes ->d_hash(), ->d_compare() and ->permission() safety in RCU mode independent from vfsmount_lock. Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2013-10-25autofs4: make freeing sbi rcu-delayedAl Viro
makes ->d_managed() safety in RCU mode independent from vfsmount_lock Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2013-10-25adfs: delayed freeing of sbiAl Viro
makes ->d_hash() and ->d_compare() safety in RCU mode independent from vfsmount_lock. Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2013-10-25hpfs: make freeing sbi and codetables rcu-delayedAl Viro
makes ->d_hash() and ->d_compare() safety in RCU mode independent from vfsmount_lock Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2013-10-25make freeing super_block rcu-delayedAl Viro
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2013-10-25vfs: introduce d_instantiate_no_diralias()Miklos Szeredi
...which just returns -EBUSY if a directory alias would be created. This is to be used by fuse mkdir to make sure that a buggy or malicious userspace filesystem doesn't do anything nasty. Previously fuse used a private mutex for this purpose, which can now go away. Signed-off-by: Miklos Szeredi <mszeredi@suse.cz>
2013-10-25move taking vfsmount_lock down into prepend_path()Al Viro
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2013-10-25split __lookup_mnt() in two functionsAl Viro
Instead of passing the direction as argument (and checking it on every step through the hash chain), just have separate __lookup_mnt() and __lookup_mnt_last(). And use the standard iterators... Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2013-10-25uninline destroy_super(), consolidate alloc_super()Al Viro
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2013-10-25isofs: don't pass dentry to isofs_hash{i,}_common()Al Viro
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2013-10-25new helpers: lock_mount_hash/unlock_mount_hashAl Viro
aka br_write_{lock,unlock} of vfsmount_lock. Inlines in fs/mount.h, vfsmount_lock extern moved over there as well. Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2013-10-25don't bother with vfsmount_lock in mounts_poll()Al Viro
wake_up_interruptible/poll_wait provide sufficient barriers; just use ACCESS_ONCE() to fetch ns->event and that's it. Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2013-10-25namespace.c: get rid of mnt_ghostsAl Viro
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2013-10-25fold dup_mnt_ns() into its only surviving callerAl Viro
should've been done 6 years ago... Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2013-10-25mnt_set_expiry() doesn't need vfsmount_lockAl Viro
->mnt_expire is protected by namespace_sem Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2013-10-25finish_automount() doesn't need vfsmount_lock for removal from expiry listAl Viro
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2013-10-25fs/namespace.c: bury long-dead defineAl Viro
MNT_WRITER_UNDERFLOW_LIMIT has been missed 4 years ago when it became unused. Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2013-10-25fold mntfree() into mntput_no_expire()Al Viro
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2013-10-25do_remount(): pull touch_mnt_namespace() upAl Viro
... and don't bother with dropping and regaining vfsmount_lock Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2013-10-25dup_mnt_ns(): get rid of pointless grabbing of vfsmount_lockAl Viro
mnt_list is protected by namespace_sem, not vfsmount_lock Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2013-10-25fs_is_visible only needs namespace_sem held sharedAl Viro
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2013-10-25initialize namespace_sem staticallyAl Viro
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2013-10-25file->f_op is never NULL...Al Viro
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2013-10-25rtl8188eu: remove dead codeAl Viro
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2013-10-25dmxdev: get rid of pointless clearing ->f_opAl Viro
nobody else will see that struct file after return from ->release() anyway; just leave ->f_op as is and let __fput() do that fops_put(). Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2013-10-25consolidate the reassignments of ->f_op in ->open() instancesAl Viro
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2013-10-25put_mnt_ns(): use drop_collected_mounts()Al Viro
... rather than open-coding it Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2013-10-25ncpfs: switch to %p[dD]Al Viro
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2013-10-25ubifs: switch to %pdAl Viro
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2013-10-25sunrpc: switch to %pdAl Viro
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2013-10-25nfsd: switch to %p[dD]Al Viro
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2013-10-25nfs: use %p[dD] instead of open-coded (and often racy) equivalentsAl Viro
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2013-10-25befs: split symlink iops in two - for short and long symlinks resp.Al Viro
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2013-10-25new helper: kfree_put_link()Al Viro
duplicated to hell and back... Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>