Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
Pull vfs updates from Al Viro: "All kinds of stuff this time around; some more notable parts: - RCU'd vfsmounts handling - new primitives for coredump handling - files_lock is gone - Bruce's delegations handling series - exportfs fixes plus misc stuff all over the place" * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (101 commits) ecryptfs: ->f_op is never NULL locks: break delegations on any attribute modification locks: break delegations on link locks: break delegations on rename locks: helper functions for delegation breaking locks: break delegations on unlink namei: minor vfs_unlink cleanup locks: implement delegations locks: introduce new FL_DELEG lock flag vfs: take i_mutex on renamed file vfs: rename I_MUTEX_QUOTA now that it's not used for quotas vfs: don't use PARENT/CHILD lock classes for non-directories vfs: pull ext4's double-i_mutex-locking into common code exportfs: fix quadratic behavior in filehandle lookup exportfs: better variable name exportfs: move most of reconnect_path to helper function exportfs: eliminate unused "noprogress" counter exportfs: stop retrying once we race with rename/remove exportfs: clear DISCONNECTED on all parents sooner exportfs: more detailed comment for path_reconnect ...
Этот коммит содержится в:
@@ -1,23 +1,19 @@
|
||||
#include <linux/elf.h>
|
||||
#include <linux/fs.h>
|
||||
#include <linux/mm.h>
|
||||
|
||||
#include <asm/elf.h>
|
||||
|
||||
#include <linux/binfmts.h>
|
||||
|
||||
Elf_Half __weak elf_core_extra_phdrs(void)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
int __weak elf_core_write_extra_phdrs(struct file *file, loff_t offset, size_t *size,
|
||||
unsigned long limit)
|
||||
int __weak elf_core_write_extra_phdrs(struct coredump_params *cprm, loff_t offset)
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
|
||||
int __weak elf_core_write_extra_data(struct file *file, size_t *size,
|
||||
unsigned long limit)
|
||||
int __weak elf_core_write_extra_data(struct coredump_params *cprm)
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
|
@@ -132,6 +132,12 @@ out:
|
||||
return ERR_PTR(err);
|
||||
}
|
||||
|
||||
static void delayed_free_pidns(struct rcu_head *p)
|
||||
{
|
||||
kmem_cache_free(pid_ns_cachep,
|
||||
container_of(p, struct pid_namespace, rcu));
|
||||
}
|
||||
|
||||
static void destroy_pid_namespace(struct pid_namespace *ns)
|
||||
{
|
||||
int i;
|
||||
@@ -140,7 +146,7 @@ static void destroy_pid_namespace(struct pid_namespace *ns)
|
||||
for (i = 0; i < PIDMAP_ENTRIES; i++)
|
||||
kfree(ns->pidmap[i].page);
|
||||
put_user_ns(ns->user_ns);
|
||||
kmem_cache_free(pid_ns_cachep, ns);
|
||||
call_rcu(&ns->rcu, delayed_free_pidns);
|
||||
}
|
||||
|
||||
struct pid_namespace *copy_pid_ns(unsigned long flags,
|
||||
|
@@ -2723,7 +2723,7 @@ COMPAT_SYSCALL_DEFINE2(rt_sigpending, compat_sigset_t __user *, uset,
|
||||
|
||||
#ifndef HAVE_ARCH_COPY_SIGINFO_TO_USER
|
||||
|
||||
int copy_siginfo_to_user(siginfo_t __user *to, siginfo_t *from)
|
||||
int copy_siginfo_to_user(siginfo_t __user *to, const siginfo_t *from)
|
||||
{
|
||||
int err;
|
||||
|
||||
|
Ссылка в новой задаче
Block a user