]> git.pld-linux.org Git - packages/kernel.git/blobdiff - kernel-aufs.patch
build without grsec and old module-init-tools
[packages/kernel.git] / kernel-aufs.patch
index 5b4060121253f746e5ed417f6b49879c44e12bfa..37d39e82518a7b1aa65b0886952debae0710faa8 100644 (file)
@@ -7090,7 +7090,7 @@ diff -urN linux/fs/aufs/dlgt.c linux-aufs/fs/aufs/dlgt.c
 +static void call_security_inode_permission(void *args)
 +{
 +      struct security_inode_permission_args *a = args;
-+      LKTRTrace("fsuid %d\n", current->fsuid);
++      LKTRTrace("fsuid %d\n", current_fsuid());
 +      *a->errp = vfsub_security_inode_permission(a->h_inode, a->mask,
 +                                                 a->fake_nd);
 +}
@@ -7124,7 +7124,7 @@ diff -urN linux/fs/aufs/dlgt.c linux-aufs/fs/aufs/dlgt.c
 diff -urN linux/fs/aufs/export.c linux-aufs/fs/aufs/export.c
 --- linux/fs/aufs/export.c     1970-01-01 01:00:00.000000000 +0100
 +++ linux-aufs/fs/aufs/export.c        2009-03-12 16:18:04.000000000 +0100
-@@ -0,0 +1,826 @@
+@@ -0,0 +1,827 @@
 +/*
 + * Copyright (C) 2005-2009 Junjiro Okajima
 + *
@@ -7152,6 +7152,7 @@ diff -urN linux/fs/aufs/export.c linux-aufs/fs/aufs/export.c
 +#include <linux/exportfs.h>
 +#include <linux/mnt_namespace.h>
 +#include <linux/random.h>
++#include <linux/nsproxy.h>
 +#include "aufs.h"
 +
 +union conv {
@@ -7511,7 +7512,7 @@ diff -urN linux/fs/aufs/export.c linux-aufs/fs/aufs/export.c
 +      if (nsi_lock)
 +              si_read_unlock(parent->d_sb);
 +      path_get(path);
-+      file = dentry_open(parent, path->mnt, au_dir_roflags);
++      file = dentry_open(parent, path->mnt, au_dir_roflags, file->f_cred);
 +      dentry = (void *)file;
 +      if (IS_ERR(file))
 +              goto out;
@@ -8056,7 +8057,7 @@ diff -urN linux/fs/aufs/file.c linux-aufs/fs/aufs/file.c
 +      if (file && au_test_nfs(h_dentry->d_sb))
 +              h_file = au_h_intent(dentry, bindex, file);
 +      if (!h_file)
-+              h_file = dentry_open(dget(h_dentry), mntget(br->br_mnt), flags);
++              h_file = dentry_open(dget(h_dentry), mntget(br->br_mnt), flags, current_cred());
 +
 +      /*
 +       * a dirty trick for handling FMODE_EXEC and deny_write_access().
@@ -12765,7 +12766,7 @@ diff -urN linux/fs/aufs/inode.c linux-aufs/fs/aufs/inode.c
 +
 +int au_test_h_perm(struct inode *h_inode, int mask, int dlgt)
 +{
-+      if (!current->fsuid)
++      if (!current_fsuid())
 +              return 0;
 +      /* todo: fake nameidata? */
 +      return vfsub_permission(h_inode, mask, NULL, dlgt);
@@ -26339,7 +26340,7 @@ diff -urN linux/fs/aufs/whout.c linux-aufs/fs/aufs/whout.c
 +       */
 +      vfsub_args_init(&vargs, &ign, dlgt,
 +                      (h_dir->i_mode & S_ISVTX)
-+                      && wh_dentry->d_inode->i_uid != current->fsuid);
++                      && wh_dentry->d_inode->i_uid != current_fsuid());
 +      vfsub_ign_hinode(&vargs, IN_DELETE, hdir);
 +      err = vfsub_unlink(h_dir, wh_dentry, &vargs);
 +      AuTraceErr(err);
@@ -26688,7 +26689,7 @@ diff -urN linux/fs/aufs/whout.c linux-aufs/fs/aufs/whout.c
 +      struct vfsub_args vargs;
 +
 +      AuTraceEnter();
-+      AuDebugOn(current->fsuid);
++      AuDebugOn(current_fsuid());
 +
 +      err = 0;
 +      wbr = a->br->br_wbr;
@@ -27365,7 +27366,7 @@ diff -urN linux/fs/aufs/whout.h linux-aufs/fs/aufs/whout.h
 diff -urN linux/fs/aufs/wkq.c linux-aufs/fs/aufs/wkq.c
 --- linux/fs/aufs/wkq.c        1970-01-01 01:00:00.000000000 +0100
 +++ linux-aufs/fs/aufs/wkq.c   2009-03-12 16:18:04.000000000 +0100
-@@ -0,0 +1,366 @@
+@@ -0,0 +1,353 @@
 +/*
 + * Copyright (C) 2005-2009 Junjiro Okajima
 + *
@@ -27397,10 +27398,7 @@ diff -urN linux/fs/aufs/wkq.c linux-aufs/fs/aufs/wkq.c
 +
 +struct au_cred {
 +#ifdef CONFIG_AUFS_DLGT
-+      int umask;
-+      uid_t fsuid;
-+      gid_t fsgid;
-+      kernel_cap_t cap_effective, cap_inheritable, cap_permitted;
++      struct cred *cred;
 +#if 0 /* reserved for future use */
 +      unsigned keep_capabilities:1;
 +      struct user_struct *user;
@@ -27429,23 +27427,13 @@ diff -urN linux/fs/aufs/wkq.c linux-aufs/fs/aufs/wkq.c
 +#ifdef CONFIG_AUFS_DLGT
 +static void cred_store(struct au_cred *cred)
 +{
-+      cred->umask = current->fs->umask;
-+      cred->fsuid = current->fsuid;
-+      cred->fsgid = current->fsgid;
-+      cred->cap_effective = current->cap_effective;
-+      cred->cap_inheritable = current->cap_inheritable;
-+      cred->cap_permitted = current->cap_permitted;
++      cred = get_current_cred();
 +}
 +
 +static void cred_revert(struct au_cred *cred)
 +{
 +      AuDebugOn(!au_test_wkq(current));
-+      current->fs->umask = cred->umask;
-+      current->fsuid = cred->fsuid;
-+      current->fsgid = cred->fsgid;
-+      current->cap_effective = cred->cap_effective;
-+      current->cap_inheritable = cred->cap_inheritable;
-+      current->cap_permitted = cred->cap_permitted;
++      revert_creds(cred);
 +}
 +
 +static void cred_switch(struct au_cred *old, struct au_cred *new)
@@ -28491,7 +28479,7 @@ diff -urN linux/fs/aufs/xino.c linux-aufs/fs/aufs/xino.c
 +              goto out_dput;
 +      }
 +      file = dentry_open(dget(dentry), mntget(base_file->f_vfsmnt),
-+                         O_RDWR | O_CREAT | O_EXCL | O_LARGEFILE);
++                         O_RDWR | O_CREAT | O_EXCL | O_LARGEFILE, base_file->f_cred);
 +      if (IS_ERR(file)) {
 +              AuErr("%.*s open err %ld\n", AuLNPair(name), PTR_ERR(file));
 +              goto out_dput;
@@ -29493,14 +29481,11 @@ diff -urN linux/fs/Kconfig linux-aufs/fs/Kconfig
 diff -urN linux/fs/Makefile linux-aufs/fs/Makefile
 --- linux/fs/Makefile  2009-03-12 11:25:26.000000000 +0100
 +++ linux-aufs/fs/Makefile     2009-03-12 17:03:22.897115295 +0100
-@@ -89,6 +89,7 @@
- obj-$(CONFIG_HFS_FS)          += hfs/
- obj-$(CONFIG_ECRYPT_FS)               += ecryptfs/
- obj-$(CONFIG_UNION_FS)                += unionfs/
+@@ -125,3 +125,4 @@
+ obj-$(CONFIG_BTRFS_FS)                += btrfs/
+ obj-$(CONFIG_GFS2_FS)           += gfs2/
+ obj-$(CONFIG_EXOFS_FS)          += exofs/
 +obj-$(CONFIG_AUFS)            += aufs/
- obj-$(CONFIG_VXFS_FS)         += freevxfs/
- obj-$(CONFIG_NFS_FS)          += nfs/
- obj-$(CONFIG_EXPORTFS)                += exportfs/
 diff -urN linux/include/linux/aufs_type.h linux-aufs/include/linux/aufs_type.h
 --- linux/include/linux/aufs_type.h    1970-01-01 01:00:00.000000000 +0100
 +++ linux-aufs/include/linux/aufs_type.h       2009-03-12 16:18:04.000000000 +0100
This page took 0.051099 seconds and 4 git commands to generate.