summaryrefslogtreecommitdiffstats
path: root/abs/core/aufs2/aufs2-module-2.6.36.patch
diff options
context:
space:
mode:
authorMichael Hanson <hansonorders@verizon.net>2010-11-09 01:43:59 (GMT)
committerMichael Hanson <hansonorders@verizon.net>2010-11-09 01:43:59 (GMT)
commit6b218299785aedd78128a9c7831aff1a6eefdcb8 (patch)
tree79f48e3bac89f7120496e6b3021072212fa6a780 /abs/core/aufs2/aufs2-module-2.6.36.patch
parentf33c5716af099ce4d779cf67f65204f11b551ed6 (diff)
parente40ac065f9a09f99b37e898b8684d70a0984f399 (diff)
downloadlinhes_pkgbuild-6b218299785aedd78128a9c7831aff1a6eefdcb8.zip
linhes_pkgbuild-6b218299785aedd78128a9c7831aff1a6eefdcb8.tar.gz
linhes_pkgbuild-6b218299785aedd78128a9c7831aff1a6eefdcb8.tar.bz2
Merge branch 'testing' of knoppmyth.net:linhes_pkgbuild into testing
Diffstat (limited to 'abs/core/aufs2/aufs2-module-2.6.36.patch')
-rw-r--r--abs/core/aufs2/aufs2-module-2.6.36.patch47
1 files changed, 47 insertions, 0 deletions
diff --git a/abs/core/aufs2/aufs2-module-2.6.36.patch b/abs/core/aufs2/aufs2-module-2.6.36.patch
new file mode 100644
index 0000000..3b43f7a
--- /dev/null
+++ b/abs/core/aufs2/aufs2-module-2.6.36.patch
@@ -0,0 +1,47 @@
+diff --git a/ubuntu/aufs/branch.c b/ubuntu/aufs/branch.c
+index cd4463c..ff6b158 100644
+--- a/fs/aufs/branch.c
++++ b/fs/aufs/branch.c
+@@ -22,6 +22,8 @@
+
+ #include <linux/file.h>
+ #include <linux/statfs.h>
++#include <linux/lglock.h>
++#include <linux/percpu.h>
+ #include "aufs.h"
+
+ /*
+@@ -851,7 +853,8 @@ static int au_br_mod_files_ro(struct super_block *sb, aufs_bindex_t bindex)
+ goto out;
+
+ /* no need file_list_lock() since sbinfo is locked? defered? */
+- list_for_each_entry(file, &sb->s_files, f_u.fu_list) {
++ lg_global_lock(files_lglock);
++ do_file_list_for_each_entry(sb, file) {
+ if (special_file(file->f_dentry->d_inode->i_mode))
+ continue;
+
+@@ -861,6 +864,7 @@ static int au_br_mod_files_ro(struct super_block *sb, aufs_bindex_t bindex)
+ err = -EBUSY;
+ FiMustNoWaiters(file);
+ fi_read_unlock(file);
++ lg_global_unlock(files_lglock);
+ goto out_free;
+ }
+
+@@ -889,10 +893,13 @@ static int au_br_mod_files_ro(struct super_block *sb, aufs_bindex_t bindex)
+ if (p) {
+ a = p;
+ a[n++] = hf;
+- } else
++ } else {
++ lg_global_unlock(files_lglock);
+ goto out_free;
++ }
+ }
+- }
++ } while_file_list_for_each_entry;
++ lg_global_unlock(files_lglock);
+
+ err = 0;
+ if (n)