From b5443affdf0b6c822bfecdd6f8d9d25cb8a62d06 Mon Sep 17 00:00:00 2001 From: Kevin Mihelich <kevin@archlinuxarm.org> Date: Thu, 18 Dec 2014 07:47:20 +0000 Subject: [PATCH] core/linux-am33x aufs fix --- .../0001-AUFS-fix-for-3.18.1.patch | 86 +++++++++++++++++++ core/linux-am33x/PKGBUILD | 7 +- 2 files changed, 92 insertions(+), 1 deletion(-) create mode 100644 core/linux-am33x/0001-AUFS-fix-for-3.18.1.patch diff --git a/core/linux-am33x/0001-AUFS-fix-for-3.18.1.patch b/core/linux-am33x/0001-AUFS-fix-for-3.18.1.patch new file mode 100644 index 000000000..d94b704ba --- /dev/null +++ b/core/linux-am33x/0001-AUFS-fix-for-3.18.1.patch @@ -0,0 +1,86 @@ +From b4e9c2511bfe0eed13f7d0550241b60f6730d76a Mon Sep 17 00:00:00 2001 +From: Kevin Mihelich <kevin@archlinuxarm.org> +Date: Thu, 18 Dec 2014 00:41:44 -0700 +Subject: [PATCH] AUFS fix for 3.18.1 + +Signed-off-by: Kevin Mihelich <kevin@archlinuxarm.org> +--- + fs/aufs/dcsub.c | 4 ++-- + fs/aufs/debug.c | 2 +- + fs/aufs/export.c | 2 +- + fs/aufs/hnotify.c | 4 ++-- + 4 files changed, 6 insertions(+), 6 deletions(-) + +diff --git a/fs/aufs/dcsub.c b/fs/aufs/dcsub.c +index 9fbc218..04663e5 100644 +--- a/fs/aufs/dcsub.c ++++ b/fs/aufs/dcsub.c +@@ -134,7 +134,7 @@ resume: + while (next != &this_parent->d_subdirs) { + struct list_head *tmp = next; + struct dentry *dentry = list_entry(tmp, struct dentry, +- d_u.d_child); ++ d_child); + + next = tmp->next; + spin_lock_nested(&dentry->d_lock, DENTRY_D_LOCK_NESTED); +@@ -170,7 +170,7 @@ resume: + this_parent = tmp; + spin_lock(&this_parent->d_lock); + rcu_read_unlock(); +- next = child->d_u.d_child.next; ++ next = child->d_child.next; + goto resume; + } + +diff --git a/fs/aufs/debug.c b/fs/aufs/debug.c +index e3ee24d..563bac0 100644 +--- a/fs/aufs/debug.c ++++ b/fs/aufs/debug.c +@@ -169,7 +169,7 @@ void au_dpri_dalias(struct inode *inode) + struct dentry *d; + + spin_lock(&inode->i_lock); +- hlist_for_each_entry(d, &inode->i_dentry, d_alias) ++ hlist_for_each_entry(d, &inode->i_dentry, d_u.d_alias) + au_dpri_dentry(d); + spin_unlock(&inode->i_lock); + } +diff --git a/fs/aufs/export.c b/fs/aufs/export.c +index 32df1ed..864ec30 100644 +--- a/fs/aufs/export.c ++++ b/fs/aufs/export.c +@@ -243,7 +243,7 @@ static struct dentry *decode_by_ino(struct super_block *sb, ino_t ino, + dentry = d_find_alias(inode); + else { + spin_lock(&inode->i_lock); +- hlist_for_each_entry(d, &inode->i_dentry, d_alias) { ++ hlist_for_each_entry(d, &inode->i_dentry, d_u.d_alias) { + spin_lock(&d->d_lock); + if (!au_test_anon(d) + && d->d_parent->d_inode->i_ino == dir_ino) { +diff --git a/fs/aufs/hnotify.c b/fs/aufs/hnotify.c +index e120c55..94d6d6e 100644 +--- a/fs/aufs/hnotify.c ++++ b/fs/aufs/hnotify.c +@@ -211,7 +211,7 @@ static int hn_gen_by_inode(char *name, unsigned int nlen, struct inode *inode, + AuDebugOn(!name); + au_iigen_dec(inode); + spin_lock(&inode->i_lock); +- hlist_for_each_entry(d, &inode->i_dentry, d_alias) { ++ hlist_for_each_entry(d, &inode->i_dentry, d_u.d_alias) { + spin_lock(&d->d_lock); + dname = &d->d_name; + if (dname->len != nlen +@@ -378,7 +378,7 @@ static struct dentry *lookup_wlock_by_name(char *name, unsigned int nlen, + + dentry = NULL; + spin_lock(&parent->d_lock); +- list_for_each_entry(d, &parent->d_subdirs, d_u.d_child) { ++ list_for_each_entry(d, &parent->d_subdirs, d_child) { + /* AuDbg("%pd\n", d); */ + spin_lock_nested(&d->d_lock, DENTRY_D_LOCK_NESTED); + dname = &d->d_name; +-- +2.1.3 + diff --git a/core/linux-am33x/PKGBUILD b/core/linux-am33x/PKGBUILD index ec1d363e4..f614228bb 100644 --- a/core/linux-am33x/PKGBUILD +++ b/core/linux-am33x/PKGBUILD @@ -19,12 +19,14 @@ source=("http://www.kernel.org/pub/linux/kernel/v3.x/${_srcname}.tar.xz" "http://www.kernel.org/pub/linux/kernel/v3.x/patch-${pkgver}.xz" "http://rcn-ee.net/deb/sid-armhf/v${pkgver}-${rcnrel}/patch-${pkgver%.0}-${rcnrel}.diff.gz" "git://git.code.sf.net/p/aufs/aufs3-standalone#branch=aufs${pkgver%.*}" - #"git://git.code.sf.net/p/aufs/aufs3-standalone#branch=aufs3.x-rcN" + #"git://git.code.sf.net/p/aufs/aufs3-standalone#branch=aufs3.x-rcN" + '0001-AUFS-fix-for-3.18.1.patch' 'config') md5sums=('9e854df51ca3fef8bfe566dbd7b89241' '82864000fde42252dd5e80cceb971479' '46ce48685ed5cd57ad8b81715aa9b31b' 'SKIP' + 'aa83d1bca3a3583aa4011d03ff23bfd5' 'cdca1e95ac460aa6d8fb04c5c99e9238') prepare() { @@ -47,6 +49,9 @@ prepare() { git apply ../aufs3-standalone/aufs3-mmap.patch git apply ../aufs3-standalone/aufs3-standalone.patch + # Fix until patched upstream + git apply ../0001-AUFS-fix-for-3.18.1.patch + cat "${srcdir}/config" > ./.config # add pkgrel to extraversion