~ubuntu-branches/ubuntu/utopic/aufs/utopic

« back to all changes in this revision

Viewing changes to debian/patches/01_vserver_apparmor.dpatch

  • Committer: Bazaar Package Importer
  • Author(s): Julian Andres Klode
  • Date: 2008-01-30 15:27:04 UTC
  • mfrom: (1.1.3 upstream)
  • Revision ID: james.westby@ubuntu.com-20080130152704-uvd64xgdg17ro2s8
Tags: 0+20080129-1
* New upstream snapshot
* 01_vserver_apparmor: Combined patch for vServer and AppArmor Kernels
  - AppArmor kernels have no ia_file, do not use it (LP: #182481)
  - AppArmor patch written by Joerg Schirottke for Kanotix (thank you!)
  - Replaces 01_vserver and 06_ubuntu
* 03_missing_headers: Define the magic numbers for XFS and TMPFS
* 04_sec_perm: Do not use security_inode_permission with kernel >= 2.6.24
* Inform about available pre-compiled modules in aufs-source description
* conf.mk:
  - Rewrite automatic configuration part, define a function and call it
  - Activate the AUFS_FAKE_DM only if the lhash patch has not been applied

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#! /bin/sh /usr/share/dpatch/dpatch-run
 
2
## 01_vserver_apparmor.dpatch by Julian Andres Klode <jak@jak-linux.org>
 
3
##
 
4
## DP: Patch aufs to work with vserver and apparmor (Ubuntu) kernels
 
5
 
 
6
@DPATCH@
 
7
diff -urNad aufs-0+20080129~/fs/aufs/misc.c aufs-0+20080129/fs/aufs/misc.c
 
8
--- aufs-0+20080129~/fs/aufs/misc.c     2008-01-29 16:43:38.000000000 +0100
 
9
+++ aufs-0+20080129/fs/aufs/misc.c      2008-01-29 18:41:03.000000000 +0100
 
10
@@ -265,8 +265,12 @@
 
11
                } while (err == -EAGAIN || err == -EINTR);
 
12
                if (err == 1) {
 
13
                        ia->ia_size = dst->f_pos;
 
14
+                       #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,24) && defined(CONFIG_SECURITY_APPARMOR)
 
15
+                       ia->ia_valid = ATTR_SIZE;
 
16
+                       #else
 
17
                        ia->ia_valid = ATTR_SIZE | ATTR_FILE;
 
18
                        ia->ia_file = dst;
 
19
+                       #endif
 
20
                        vfsub_i_lock_nested(h_i, AuLsc_I_CHILD2);
 
21
                        err = vfsub_notify_change(h_d, ia, &vargs);
 
22
                        vfsub_i_unlock(h_i);
 
23
diff -urNad aufs-0+20080129~/fs/aufs/vfsub.c aufs-0+20080129/fs/aufs/vfsub.c
 
24
--- aufs-0+20080129~/fs/aufs/vfsub.c    2008-01-29 16:43:38.000000000 +0100
 
25
+++ aufs-0+20080129/fs/aufs/vfsub.c     2008-01-29 18:41:03.000000000 +0100
 
26
@@ -1075,7 +1075,11 @@
 
27
        if (!IS_IMMUTABLE(h_inode) && !IS_APPEND(h_inode)) {
 
28
                vfsub_ignore(a->vargs);
 
29
                lockdep_off();
 
30
+               #ifdef CONFIG_SECURITY_APPARMOR
 
31
+               *a->errp = notify_change(a->h_dentry, NULL, a->ia);
 
32
+               #else
 
33
                *a->errp = notify_change(a->h_dentry, a->ia);
 
34
+               #endif
 
35
                lockdep_on();
 
36
                if (!*a->errp)
 
37
                        au_update_fuse_h_inode(NULL, a->h_dentry); /*ignore*/
 
38
diff -urNad aufs-0+20080129~/fs/aufs/vfsub.h aufs-0+20080129/fs/aufs/vfsub.h
 
39
--- aufs-0+20080129~/fs/aufs/vfsub.h    2008-01-29 16:43:38.000000000 +0100
 
40
+++ aufs-0+20080129/fs/aufs/vfsub.h     2008-01-29 18:41:03.000000000 +0100
 
41
@@ -376,7 +376,13 @@
 
42
                  dir->i_ino, AuDLNPair(dentry), symname, mode);
 
43
        IMustLock(dir);
 
44
 
 
45
+#ifdef CONFIG_VSERVER
 
46
+       err = vfs_symlink(dir, dentry, symname, mode, NULL);
 
47
+#elif defined(CONFIG_SECURITY_APPARMOR)
 
48
+       err = vfs_symlink(dir, dentry, NULL, symname, mode);
 
49
+#else
 
50
        err = vfs_symlink(dir, dentry, symname, mode);
 
51
+#endif
 
52
        if (!err) {
 
53
                /* dir inode is locked */
 
54
                au_update_fuse_h_inode(NULL, dentry->d_parent); /*ignore*/
 
55
@@ -394,7 +400,13 @@
 
56
        LKTRTrace("i%lu, %.*s, 0x%x\n", dir->i_ino, AuDLNPair(dentry), mode);
 
57
        IMustLock(dir);
 
58
 
 
59
+#ifdef CONFIG_VSERVER
 
60
+       err = vfs_mknod(dir, dentry, mode, dev, NULL);
 
61
+#elif defined(CONFIG_SECURITY_APPARMOR)
 
62
+       err = vfs_mknod(dir, dentry, NULL, mode, dev);
 
63
+#else
 
64
        err = vfs_mknod(dir, dentry, mode, dev);
 
65
+#endif
 
66
        if (!err) {
 
67
                /* dir inode is locked */
 
68
                au_update_fuse_h_inode(NULL, dentry->d_parent); /*ignore*/
 
69
@@ -414,7 +426,13 @@
 
70
        IMustLock(dir);
 
71
 
 
72
        lockdep_off();
 
73
+#ifdef CONFIG_VSERVER
 
74
+       err = vfs_link(src_dentry, dir, dentry, NULL);
 
75
+#elif defined(CONFIG_SECURITY_APPARMOR)
 
76
+       err = vfs_link(src_dentry, NULL, dir, dentry, NULL);
 
77
+#else
 
78
        err = vfs_link(src_dentry, dir, dentry);
 
79
+#endif
 
80
        lockdep_on();
 
81
        if (!err) {
 
82
                LKTRTrace("src_i %p, dst_i %p\n",
 
83
@@ -441,7 +459,11 @@
 
84
        IMustLock(src_dir);
 
85
 
 
86
        lockdep_off();
 
87
+       #ifdef CONFIG_SECURITY_APPARMOR
 
88
+       err = vfs_rename(src_dir, src_dentry, NULL, dir, dentry, NULL);
 
89
+       #else
 
90
        err = vfs_rename(src_dir, src_dentry, dir, dentry);
 
91
+       #endif
 
92
        lockdep_on();
 
93
        if (!err) {
 
94
                /* dir inode is locked */
 
95
@@ -460,7 +482,13 @@
 
96
        LKTRTrace("i%lu, %.*s, 0x%x\n", dir->i_ino, AuDLNPair(dentry), mode);
 
97
        IMustLock(dir);
 
98
 
 
99
+#ifdef CONFIG_VSERVER
 
100
+       err = vfs_mkdir(dir, dentry, mode, NULL);
 
101
+#elif defined(CONFIG_SECURITY_APPARMOR)
 
102
+       err = vfs_mkdir(dir, dentry, NULL, mode);
 
103
+#else
 
104
        err = vfs_mkdir(dir, dentry, mode);
 
105
+#endif
 
106
        if (!err) {
 
107
                /* dir inode is locked */
 
108
                au_update_fuse_h_inode(NULL, dentry->d_parent); /*ignore*/
 
109
@@ -477,7 +505,11 @@
 
110
        IMustLock(dir);
 
111
 
 
112
        lockdep_off();
 
113
+#if defined(CONFIG_VSERVER) || defined(CONFIG_SECURITY_APPARMOR)
 
114
+       err = vfs_rmdir(dir, dentry, NULL);
 
115
+#else
 
116
        err = vfs_rmdir(dir, dentry);
 
117
+#endif
 
118
        lockdep_on();
 
119
        /* dir inode is locked */
 
120
        if (!err)
 
121
@@ -494,7 +526,11 @@
 
122
 
 
123
        /* vfs_unlink() locks inode */
 
124
        lockdep_off();
 
125
+#if defined(CONFIG_VSERVER) || defined(CONFIG_SECURITY_APPARMOR)
 
126
+       err = vfs_unlink(dir, dentry, NULL);
 
127
+#else
 
128
        err = vfs_unlink(dir, dentry);
 
129
+#endif
 
130
        lockdep_on();
 
131
        /* dir inode is locked */
 
132
        if (!err)