aufs: Update to aufs3.5-20120730
svn path=/dists/trunk/linux/; revision=19297
This commit is contained in:
parent
3e2cfbab04
commit
ce4d388dbe
|
@ -4,7 +4,7 @@ linux (3.5-1~experimental.1) UNRELEASED; urgency=low
|
|||
|
||||
[ Ben Hutchings ]
|
||||
* net: Enable OPENVSWITCH as module (Closes: #675010)
|
||||
* aufs: Update to 3.x-rcN 20120618
|
||||
* aufs: Update to aufs3.5-20120730
|
||||
* rt: Disable until it is updated for Linux 3.5 or later
|
||||
* debian/copyright: Convert to machine-readable format (fka DEP-5)
|
||||
* debian/copyright: Add copyright notice for newly-added Unicode data
|
||||
|
|
|
@ -205,8 +205,8 @@
|
|||
+ When aufs supports Magic SysRq, enabled automatically.
|
||||
+endif
|
||||
--- a/fs/aufs/Makefile 1970-01-01 01:00:00.000000000 +0100
|
||||
+++ b/fs/aufs/Makefile 2012-07-22 01:31:00.130115298 +0100
|
||||
@@ -0,0 +1,45 @@
|
||||
+++ b/fs/aufs/Makefile 2012-08-01 03:41:52.619414717 +0100
|
||||
@@ -0,0 +1,42 @@
|
||||
+
|
||||
+include ${src}/magic.mk
|
||||
+ifeq (${CONFIG_AUFS_FS},m)
|
||||
|
@ -246,9 +246,6 @@
|
|||
+aufs-$(CONFIG_AUFS_POLL) += poll.o
|
||||
+aufs-$(CONFIG_AUFS_RDU) += rdu.o
|
||||
+aufs-$(CONFIG_AUFS_SP_IATTR) += f_op_sp.o
|
||||
+ifdef CONFIG_MMU
|
||||
+aufs-$(CONFIG_SECURITY) += security.o
|
||||
+endif
|
||||
+aufs-$(CONFIG_AUFS_BR_HFSPLUS) += hfsplus.o
|
||||
+aufs-$(CONFIG_AUFS_DEBUG) += debug.o
|
||||
+aufs-$(CONFIG_AUFS_MAGIC_SYSRQ) += sysrq.o
|
||||
|
@ -8382,8 +8379,8 @@
|
|||
+ atomic_set(&sbinfo->si_xigen_next, u);
|
||||
+}
|
||||
--- a/fs/aufs/f_op.c 1970-01-01 01:00:00.000000000 +0100
|
||||
+++ b/fs/aufs/f_op.c 2012-07-22 01:31:00.162115458 +0100
|
||||
@@ -0,0 +1,692 @@
|
||||
+++ b/fs/aufs/f_op.c 2012-08-01 03:41:52.619414717 +0100
|
||||
@@ -0,0 +1,727 @@
|
||||
+/*
|
||||
+ * Copyright (C) 2005-2012 Junjiro R. Okajima
|
||||
+ *
|
||||
|
@ -8831,6 +8828,41 @@
|
|||
+ * The similar scenario is applied to aufs_readlink() too.
|
||||
+ */
|
||||
+
|
||||
+/* cf. linux/include/linux/mman.h: calc_vm_prot_bits() */
|
||||
+#define AuConv_VM_PROT(f, b) _calc_vm_trans(f, VM_##b, PROT_##b)
|
||||
+
|
||||
+static unsigned long au_arch_prot_conv(unsigned long flags)
|
||||
+{
|
||||
+ /* currently ppc64 only */
|
||||
+#ifdef CONFIG_PPC64
|
||||
+ /* cf. linux/arch/powerpc/include/asm/mman.h */
|
||||
+ AuDebugOn(arch_calc_vm_prot_bits(-1) != VM_SAO);
|
||||
+ return AuConv_VM_PROT(flags, SAO);
|
||||
+#else
|
||||
+ AuDebugOn(arch_calc_vm_prot_bits(-1));
|
||||
+ return 0;
|
||||
+#endif
|
||||
+}
|
||||
+
|
||||
+static unsigned long au_prot_conv(unsigned long flags)
|
||||
+{
|
||||
+ return AuConv_VM_PROT(flags, READ)
|
||||
+ | AuConv_VM_PROT(flags, WRITE)
|
||||
+ | AuConv_VM_PROT(flags, EXEC)
|
||||
+ | au_arch_prot_conv(flags);
|
||||
+}
|
||||
+
|
||||
+/* cf. linux/include/linux/mman.h: calc_vm_flag_bits() */
|
||||
+#define AuConv_VM_MAP(f, b) _calc_vm_trans(f, VM_##b, MAP_##b)
|
||||
+
|
||||
+static unsigned long au_flag_conv(unsigned long flags)
|
||||
+{
|
||||
+ return AuConv_VM_MAP(flags, GROWSDOWN)
|
||||
+ | AuConv_VM_MAP(flags, DENYWRITE)
|
||||
+ | AuConv_VM_MAP(flags, EXECUTABLE)
|
||||
+ | AuConv_VM_MAP(flags, LOCKED);
|
||||
+}
|
||||
+
|
||||
+static int aufs_mmap(struct file *file, struct vm_area_struct *vma)
|
||||
+{
|
||||
+ int err;
|
||||
|
@ -8873,8 +8905,8 @@
|
|||
+ lockdep_on();
|
||||
+
|
||||
+ au_vm_file_reset(vma, h_file);
|
||||
+ /* todo: bad approach, I am not sure this is really necessary */
|
||||
+ err = au_security_mmap_file(h_file, vma);
|
||||
+ err = security_mmap_file(h_file, au_prot_conv(vma->vm_flags),
|
||||
+ au_flag_conv(vma->vm_flags));
|
||||
+ if (!err)
|
||||
+ err = h_file->f_op->mmap(h_file, vma);
|
||||
+ if (unlikely(err))
|
||||
|
@ -10054,8 +10086,8 @@
|
|||
+#endif /* CONFIG_AUFS_DEBUG */
|
||||
+};
|
||||
--- a/fs/aufs/file.h 1970-01-01 01:00:00.000000000 +0100
|
||||
+++ b/fs/aufs/file.h 2012-07-22 01:31:00.162115458 +0100
|
||||
@@ -0,0 +1,306 @@
|
||||
+++ b/fs/aufs/file.h 2012-08-01 03:41:52.619414717 +0100
|
||||
@@ -0,0 +1,298 @@
|
||||
+/*
|
||||
+ * Copyright (C) 2005-2012 Junjiro R. Okajima
|
||||
+ *
|
||||
|
@ -10139,14 +10171,6 @@
|
|||
+int au_do_flush(struct file *file, fl_owner_t id,
|
||||
+ int (*flush)(struct file *file, fl_owner_t id));
|
||||
+
|
||||
+#if defined(CONFIG_SECURITY) && defined(CONFIG_MMU)
|
||||
+/* security.c */
|
||||
+int au_security_mmap_file(struct file *h_file, struct vm_area_struct *vma);
|
||||
+#else
|
||||
+AuStubInt0(au_security_mmap_file, struct file *h_file,
|
||||
+ struct vm_area_struct *vma);
|
||||
+#endif
|
||||
+
|
||||
+/* poll.c */
|
||||
+#ifdef CONFIG_AUFS_POLL
|
||||
+unsigned int aufs_poll(struct file *file, poll_table *wait);
|
||||
|
@ -12056,8 +12080,8 @@
|
|||
+ au_hn_destroy_cache();
|
||||
+}
|
||||
--- a/fs/aufs/i_op.c 1970-01-01 01:00:00.000000000 +0100
|
||||
+++ b/fs/aufs/i_op.c 2012-07-22 01:31:00.162115458 +0100
|
||||
@@ -0,0 +1,1014 @@
|
||||
+++ b/fs/aufs/i_op.c 2012-08-01 03:41:52.619414717 +0100
|
||||
@@ -0,0 +1,1009 @@
|
||||
+/*
|
||||
+ * Copyright (C) 2005-2012 Junjiro R. Okajima
|
||||
+ *
|
||||
|
@ -12266,18 +12290,13 @@
|
|||
+ ret = d_splice_alias(inode, dentry);
|
||||
+ if (unlikely(IS_ERR(ret) && inode)) {
|
||||
+ ii_write_unlock(inode);
|
||||
+ lc_idx = AuLcNonDir_IIINFO;
|
||||
+ if (S_ISLNK(inode->i_mode))
|
||||
+ lc_idx = AuLcSymlink_IIINFO;
|
||||
+ else if (S_ISDIR(inode->i_mode))
|
||||
+ lc_idx = AuLcDir_IIINFO;
|
||||
+ au_rw_class(&au_ii(inode)->ii_rwsem, au_lc_key + lc_idx);
|
||||
+ iput(inode);
|
||||
+ inode = NULL;
|
||||
+ }
|
||||
+
|
||||
+out_unlock:
|
||||
+ di_write_unlock(dentry);
|
||||
+ if (unlikely(IS_ERR(ret) && inode)) {
|
||||
+ if (inode) {
|
||||
+ lc_idx = AuLcNonDir_DIINFO;
|
||||
+ if (S_ISLNK(inode->i_mode))
|
||||
+ lc_idx = AuLcSymlink_DIINFO;
|
||||
|
@ -15565,8 +15584,8 @@
|
|||
+ AuRwDestroy(&iinfo->ii_rwsem);
|
||||
+}
|
||||
--- a/fs/aufs/inode.c 1970-01-01 01:00:00.000000000 +0100
|
||||
+++ b/fs/aufs/inode.c 2012-07-22 01:31:00.162115458 +0100
|
||||
@@ -0,0 +1,471 @@
|
||||
+++ b/fs/aufs/inode.c 2012-08-01 04:08:08.827230713 +0100
|
||||
@@ -0,0 +1,478 @@
|
||||
+/*
|
||||
+ * Copyright (C) 2005-2012 Junjiro R. Okajima
|
||||
+ *
|
||||
|
@ -15895,7 +15914,7 @@
|
|||
+ struct super_block *sb;
|
||||
+ struct mutex *mtx;
|
||||
+ ino_t h_ino, ino;
|
||||
+ int err;
|
||||
+ int err, lc_idx;
|
||||
+ aufs_bindex_t bstart;
|
||||
+
|
||||
+ sb = dentry->d_sb;
|
||||
|
@ -15936,6 +15955,13 @@
|
|||
+
|
||||
+ AuDbg("%lx, new %d\n", inode->i_state, !!(inode->i_state & I_NEW));
|
||||
+ if (inode->i_state & I_NEW) {
|
||||
+ lc_idx = AuLcNonDir_IIINFO;
|
||||
+ if (S_ISLNK(h_inode->i_mode))
|
||||
+ lc_idx = AuLcSymlink_IIINFO;
|
||||
+ else if (S_ISDIR(h_inode->i_mode))
|
||||
+ lc_idx = AuLcDir_IIINFO;
|
||||
+ au_rw_class(&au_ii(inode)->ii_rwsem, au_lc_key + lc_idx);
|
||||
+
|
||||
+ ii_write_lock_new_child(inode);
|
||||
+ err = set_inode(inode, dentry);
|
||||
+ if (!err) {
|
||||
|
@ -19246,7 +19272,7 @@
|
|||
+#endif /* __KERNEL__ */
|
||||
+#endif /* __AUFS_OPTS_H__ */
|
||||
--- a/fs/aufs/plink.c 1970-01-01 01:00:00.000000000 +0100
|
||||
+++ b/fs/aufs/plink.c 2012-07-22 01:31:00.166115467 +0100
|
||||
+++ b/fs/aufs/plink.c 2012-08-01 04:08:08.827230713 +0100
|
||||
@@ -0,0 +1,511 @@
|
||||
+/*
|
||||
+ * Copyright (C) 2005-2012 Junjiro R. Okajima
|
||||
|
@ -20915,101 +20941,6 @@
|
|||
+ p = radix_tree_delete(&sbinfo->au_si_pid.tree, current->pid);
|
||||
+ spin_unlock(&sbinfo->au_si_pid.tree_lock);
|
||||
+}
|
||||
--- a/fs/aufs/security.c 1970-01-01 01:00:00.000000000 +0100
|
||||
+++ b/fs/aufs/security.c 2012-07-22 01:31:00.166115467 +0100
|
||||
@@ -0,0 +1,92 @@
|
||||
+/*
|
||||
+ * Copyright (C) 2012 Junjiro R. Okajima
|
||||
+ *
|
||||
+ * This program, aufs is free software; you can redistribute it and/or modify
|
||||
+ * it under the terms of the GNU General Public License as published by
|
||||
+ * the Free Software Foundation; either version 2 of the License, or
|
||||
+ * (at your option) any later version.
|
||||
+ *
|
||||
+ * This program is distributed in the hope that it will be useful,
|
||||
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
+ * GNU General Public License for more details.
|
||||
+ *
|
||||
+ * You should have received a copy of the GNU General Public License
|
||||
+ * along with this program; if not, write to the Free Software
|
||||
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
+ */
|
||||
+
|
||||
+/*
|
||||
+ * securityf_file_mmap
|
||||
+ */
|
||||
+
|
||||
+#include <linux/mman.h>
|
||||
+#include <linux/security.h>
|
||||
+#include "aufs.h"
|
||||
+
|
||||
+/* cf. linux/include/linux/mman.h: calc_vm_prot_bits() */
|
||||
+#define AuConv_VM_PROT(f, b) _calc_vm_trans(f, VM_##b, PROT_##b)
|
||||
+
|
||||
+static unsigned long au_arch_prot_conv(unsigned long flags)
|
||||
+{
|
||||
+ /* currently ppc64 only */
|
||||
+#ifdef CONFIG_PPC64
|
||||
+ /* cf. linux/arch/powerpc/include/asm/mman.h */
|
||||
+ AuDebugOn(arch_calc_vm_prot_bits(-1) != VM_SAO);
|
||||
+ return AuConv_VM_PROT(flags, SAO);
|
||||
+#else
|
||||
+ AuDebugOn(arch_calc_vm_prot_bits(-1));
|
||||
+ return 0;
|
||||
+#endif
|
||||
+}
|
||||
+
|
||||
+static unsigned long au_prot_conv(unsigned long flags)
|
||||
+{
|
||||
+ return AuConv_VM_PROT(flags, READ)
|
||||
+ | AuConv_VM_PROT(flags, WRITE)
|
||||
+ | AuConv_VM_PROT(flags, EXEC)
|
||||
+ | au_arch_prot_conv(flags);
|
||||
+}
|
||||
+
|
||||
+/* cf. linux/include/linux/mman.h: calc_vm_flag_bits() */
|
||||
+#define AuConv_VM_MAP(f, b) _calc_vm_trans(f, VM_##b, MAP_##b)
|
||||
+
|
||||
+static unsigned long au_flag_conv(unsigned long flags)
|
||||
+{
|
||||
+ return AuConv_VM_MAP(flags, GROWSDOWN)
|
||||
+ | AuConv_VM_MAP(flags, DENYWRITE)
|
||||
+ | AuConv_VM_MAP(flags, EXECUTABLE)
|
||||
+ | AuConv_VM_MAP(flags, LOCKED);
|
||||
+}
|
||||
+
|
||||
+struct au_security_mmap_file_args {
|
||||
+ int *errp;
|
||||
+ struct file *h_file;
|
||||
+ struct vm_area_struct *vma;
|
||||
+};
|
||||
+
|
||||
+/*
|
||||
+ * unnecessary to call security_mmap_file() since it doesn't have file as its
|
||||
+ * argument.
|
||||
+ */
|
||||
+static void au_call_security_mmap_file(void *args)
|
||||
+{
|
||||
+ struct au_security_mmap_file_args *a = args;
|
||||
+ *a->errp = security_mmap_file(a->h_file, au_prot_conv(a->vma->vm_flags),
|
||||
+ au_flag_conv(a->vma->vm_flags));
|
||||
+}
|
||||
+
|
||||
+int au_security_mmap_file(struct file *h_file, struct vm_area_struct *vma)
|
||||
+{
|
||||
+ int err, wkq_err;
|
||||
+ struct au_security_mmap_file_args args = {
|
||||
+ .errp = &err,
|
||||
+ .h_file = h_file,
|
||||
+ .vma = vma
|
||||
+ };
|
||||
+
|
||||
+ wkq_err = au_wkq_wait(au_call_security_mmap_file, &args);
|
||||
+ if (unlikely(wkq_err))
|
||||
+ err = wkq_err;
|
||||
+ return err;
|
||||
+}
|
||||
--- a/fs/aufs/spl.h 1970-01-01 01:00:00.000000000 +0100
|
||||
+++ b/fs/aufs/spl.h 2012-01-10 02:15:56.561456041 +0000
|
||||
@@ -0,0 +1,62 @@
|
||||
|
@ -27032,7 +26963,7 @@
|
|||
+#endif /* __KERNEL__ */
|
||||
+#endif /* __AUFS_WHOUT_H__ */
|
||||
--- a/fs/aufs/wkq.c 1970-01-01 01:00:00.000000000 +0100
|
||||
+++ b/fs/aufs/wkq.c 2012-07-22 01:31:00.166115467 +0100
|
||||
+++ b/fs/aufs/wkq.c 2012-08-01 04:08:08.831230728 +0100
|
||||
@@ -0,0 +1,214 @@
|
||||
+/*
|
||||
+ * Copyright (C) 2005-2012 Junjiro R. Okajima
|
||||
|
@ -28611,7 +28542,7 @@
|
|||
+ return err;
|
||||
+}
|
||||
--- a/include/linux/aufs_type.h 1970-01-01 01:00:00.000000000 +0100
|
||||
+++ b/include/linux/aufs_type.h 2012-07-22 01:31:00.166115467 +0100
|
||||
+++ b/include/linux/aufs_type.h 2012-08-01 03:41:52.619414717 +0100
|
||||
@@ -0,0 +1,233 @@
|
||||
+/*
|
||||
+ * Copyright (C) 2005-2012 Junjiro R. Okajima
|
||||
|
@ -28654,7 +28585,7 @@
|
|||
+
|
||||
+#include <linux/limits.h>
|
||||
+
|
||||
+#define AUFS_VERSION "3.x-rcN-20120618"
|
||||
+#define AUFS_VERSION "3.5-20120730"
|
||||
+
|
||||
+/* todo? move this to linux-2.6.19/include/magic.h */
|
||||
+#define AUFS_SUPER_MAGIC ('a' << 24 | 'u' << 16 | 'f' << 8 | 's')
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
aufs3.x-rcN base patch
|
||||
aufs3.5 base patch
|
||||
|
||||
diff --git a/fs/inode.c b/fs/inode.c
|
||||
index c99163b..7f772fd 100644
|
||||
|
@ -27,10 +27,10 @@ index 7d69419..18c9782 100644
|
|||
return __lookup_hash(&nd->last, nd->path.dentry, nd);
|
||||
}
|
||||
diff --git a/fs/splice.c b/fs/splice.c
|
||||
index c9f1318..490239f 100644
|
||||
index 7bf08fa..e3c40b5 100644
|
||||
--- a/fs/splice.c
|
||||
+++ b/fs/splice.c
|
||||
@@ -1086,8 +1086,8 @@ EXPORT_SYMBOL(generic_splice_sendpage);
|
||||
@@ -1090,8 +1090,8 @@ EXPORT_SYMBOL(generic_splice_sendpage);
|
||||
/*
|
||||
* Attempt to initiate a splice from pipe to file.
|
||||
*/
|
||||
|
@ -41,7 +41,7 @@ index c9f1318..490239f 100644
|
|||
{
|
||||
ssize_t (*splice_write)(struct pipe_inode_info *, struct file *,
|
||||
loff_t *, size_t, unsigned int);
|
||||
@@ -1114,9 +1114,9 @@ static long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
|
||||
@@ -1118,9 +1118,9 @@ static long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
|
||||
/*
|
||||
* Attempt to initiate a splice from a file to a pipe.
|
||||
*/
|
||||
|
@ -79,10 +79,10 @@ index ffc0213..ef35a31 100644
|
|||
|
||||
extern int follow_down_one(struct path *);
|
||||
diff --git a/include/linux/splice.h b/include/linux/splice.h
|
||||
index 26e5b61..3ffef2f 100644
|
||||
index 09a545a..1ac5727 100644
|
||||
--- a/include/linux/splice.h
|
||||
+++ b/include/linux/splice.h
|
||||
@@ -91,4 +91,10 @@ extern void splice_shrink_spd(struct pipe_inode_info *,
|
||||
@@ -91,4 +91,10 @@ extern void splice_shrink_spd(struct splice_pipe_desc *);
|
||||
extern void spd_release_page(struct splice_pipe_desc *, unsigned int);
|
||||
|
||||
extern const struct pipe_buf_operations page_cache_pipe_buf_ops;
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
aufs3.x-rcN kbuild patch
|
||||
aufs3.5 kbuild patch
|
||||
|
||||
diff --git a/fs/Kconfig b/fs/Kconfig
|
||||
index f95ae3a..6d8a9a5 100644
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
aufs3.x-rcN standalone patch
|
||||
aufs3.5 standalone patch
|
||||
|
||||
diff --git a/fs/file_table.c b/fs/file_table.c
|
||||
index a305d9e..6a768be 100644
|
||||
|
@ -135,7 +135,7 @@ index f104d56..54f36db 100644
|
|||
static int fsnotify_mark_destroy(void *ignored)
|
||||
{
|
||||
diff --git a/fs/open.c b/fs/open.c
|
||||
index d6c79a0..9004a15 100644
|
||||
index 1540632..2463289 100644
|
||||
--- a/fs/open.c
|
||||
+++ b/fs/open.c
|
||||
@@ -60,6 +60,7 @@ int do_truncate(struct dentry *dentry, loff_t length, unsigned int time_attrs,
|
||||
|
@ -147,10 +147,10 @@ index d6c79a0..9004a15 100644
|
|||
static long do_sys_truncate(const char __user *pathname, loff_t length)
|
||||
{
|
||||
diff --git a/fs/splice.c b/fs/splice.c
|
||||
index 490239f..701d34a 100644
|
||||
index e3c40b5..3afc547 100644
|
||||
--- a/fs/splice.c
|
||||
+++ b/fs/splice.c
|
||||
@@ -1110,6 +1110,7 @@ long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
|
||||
@@ -1114,6 +1114,7 @@ long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
|
||||
|
||||
return splice_write(pipe, out, ppos, len, flags);
|
||||
}
|
||||
|
@ -158,7 +158,7 @@ index 490239f..701d34a 100644
|
|||
|
||||
/*
|
||||
* Attempt to initiate a splice from a file to a pipe.
|
||||
@@ -1136,6 +1137,7 @@ long do_splice_to(struct file *in, loff_t *ppos,
|
||||
@@ -1140,6 +1141,7 @@ long do_splice_to(struct file *in, loff_t *ppos,
|
||||
|
||||
return splice_read(in, ppos, pipe, len, flags);
|
||||
}
|
||||
|
@ -203,10 +203,10 @@ index 442204c..e644a1c 100644
|
|||
int devcgroup_inode_mknod(int mode, dev_t dev)
|
||||
{
|
||||
diff --git a/security/security.c b/security/security.c
|
||||
index 3efc9b1..c7afd35 100644
|
||||
index 860aeb3..ffb57bf 100644
|
||||
--- a/security/security.c
|
||||
+++ b/security/security.c
|
||||
@@ -383,6 +383,7 @@ int security_path_rmdir(struct path *dir, struct dentry *dentry)
|
||||
@@ -384,6 +384,7 @@ int security_path_rmdir(struct path *dir, struct dentry *dentry)
|
||||
return 0;
|
||||
return security_ops->path_rmdir(dir, dentry);
|
||||
}
|
||||
|
@ -214,7 +214,7 @@ index 3efc9b1..c7afd35 100644
|
|||
|
||||
int security_path_unlink(struct path *dir, struct dentry *dentry)
|
||||
{
|
||||
@@ -399,6 +400,7 @@ int security_path_symlink(struct path *dir, struct dentry *dentry,
|
||||
@@ -400,6 +401,7 @@ int security_path_symlink(struct path *dir, struct dentry *dentry,
|
||||
return 0;
|
||||
return security_ops->path_symlink(dir, dentry, old_name);
|
||||
}
|
||||
|
@ -222,7 +222,7 @@ index 3efc9b1..c7afd35 100644
|
|||
|
||||
int security_path_link(struct dentry *old_dentry, struct path *new_dir,
|
||||
struct dentry *new_dentry)
|
||||
@@ -407,6 +409,7 @@ int security_path_link(struct dentry *old_dentry, struct path *new_dir,
|
||||
@@ -408,6 +410,7 @@ int security_path_link(struct dentry *old_dentry, struct path *new_dir,
|
||||
return 0;
|
||||
return security_ops->path_link(old_dentry, new_dir, new_dentry);
|
||||
}
|
||||
|
@ -230,7 +230,7 @@ index 3efc9b1..c7afd35 100644
|
|||
|
||||
int security_path_rename(struct path *old_dir, struct dentry *old_dentry,
|
||||
struct path *new_dir, struct dentry *new_dentry)
|
||||
@@ -425,6 +428,7 @@ int security_path_truncate(struct path *path)
|
||||
@@ -426,6 +429,7 @@ int security_path_truncate(struct path *path)
|
||||
return 0;
|
||||
return security_ops->path_truncate(path);
|
||||
}
|
||||
|
@ -238,7 +238,7 @@ index 3efc9b1..c7afd35 100644
|
|||
|
||||
int security_path_chmod(struct path *path, umode_t mode)
|
||||
{
|
||||
@@ -432,6 +436,7 @@ int security_path_chmod(struct path *path, umode_t mode)
|
||||
@@ -433,6 +437,7 @@ int security_path_chmod(struct path *path, umode_t mode)
|
||||
return 0;
|
||||
return security_ops->path_chmod(path, mode);
|
||||
}
|
||||
|
@ -246,7 +246,7 @@ index 3efc9b1..c7afd35 100644
|
|||
|
||||
int security_path_chown(struct path *path, uid_t uid, gid_t gid)
|
||||
{
|
||||
@@ -439,6 +444,7 @@ int security_path_chown(struct path *path, uid_t uid, gid_t gid)
|
||||
@@ -440,6 +445,7 @@ int security_path_chown(struct path *path, uid_t uid, gid_t gid)
|
||||
return 0;
|
||||
return security_ops->path_chown(path, uid, gid);
|
||||
}
|
||||
|
@ -254,7 +254,7 @@ index 3efc9b1..c7afd35 100644
|
|||
|
||||
int security_path_chroot(struct path *path)
|
||||
{
|
||||
@@ -515,6 +521,7 @@ int security_inode_readlink(struct dentry *dentry)
|
||||
@@ -516,6 +522,7 @@ int security_inode_readlink(struct dentry *dentry)
|
||||
return 0;
|
||||
return security_ops->inode_readlink(dentry);
|
||||
}
|
||||
|
@ -262,7 +262,7 @@ index 3efc9b1..c7afd35 100644
|
|||
|
||||
int security_inode_follow_link(struct dentry *dentry, struct nameidata *nd)
|
||||
{
|
||||
@@ -529,6 +536,7 @@ int security_inode_permission(struct inode *inode, int mask)
|
||||
@@ -530,6 +537,7 @@ int security_inode_permission(struct inode *inode, int mask)
|
||||
return 0;
|
||||
return security_ops->inode_permission(inode, mask);
|
||||
}
|
||||
|
@ -270,7 +270,7 @@ index 3efc9b1..c7afd35 100644
|
|||
|
||||
int security_inode_setattr(struct dentry *dentry, struct iattr *attr)
|
||||
{
|
||||
@@ -644,6 +652,7 @@ int security_file_permission(struct file *file, int mask)
|
||||
@@ -645,6 +653,7 @@ int security_file_permission(struct file *file, int mask)
|
||||
|
||||
return fsnotify_perm(file, mask);
|
||||
}
|
||||
|
@ -278,7 +278,7 @@ index 3efc9b1..c7afd35 100644
|
|||
|
||||
int security_file_alloc(struct file *file)
|
||||
{
|
||||
@@ -704,6 +713,7 @@ int security_mmap_file(struct file *file, unsigned long prot,
|
||||
@@ -705,6 +714,7 @@ int security_mmap_file(struct file *file, unsigned long prot,
|
||||
return ret;
|
||||
return ima_file_mmap(file, prot);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue