Hi J.R.,
as I'm almost build all kernels for Manjaro Linux, I found another issue
with your aufs316-20150105 release.
Starting with 3.16.7-ckt4 followed new stuff got backported from
linux319 series:
- move d_rcu from overlapping d_child to overlapping d_alias [1]
You find the needed changes as patch with this mail.
kind regards
Philip Mueller
------------------------------
Manjaro Project-Lead
[1]
https://github.com/torvalds/linux/commit/946e51f2bf37f1656916eb75bd0742ba33983c28
Am 04.01.2015 um 22:06 schrieb sf...@users.sourceforge.net:
o bugfix
- possible bugfix, signedness of d_count
o news
- aufs3.18.1+ branch is created.
- now aufs3.9 .. aufs3.13 becomes obsolete. my development base is
aufs3.14.
- and aufs3.14 branch is created in aufs-util.git.
Many of the commits to follow the change made in linux-3.19 and
linux-3.18.1 are made by Philip Muller. Thanx.
The codebase of this aufs3.x-rcN is linux-3.19-rc1 (instead of rc2).
J. R. Okajima
----------------------------------------
- aufs3-linux.git#aufs3.14 .. aufs3.18 branch
aufs: optimize ac_dcsub_pages() by dcache:d_walk()
aufs: tiny, remove unused variables
aufs: tiny, fix forgotten replacing file_inode()
for aufs: make d_walk() public
aufs: possible bugfix, signedness of d_count
- aufs3-linux.git#aufs3.18.1+ branch
addition to above,
aufs: for linux-3.19, d_alias and d_child
- aufs3-linux.git#aufs3.x-rcN branch
addition to above,
aufs: for linux-3.19, remove au_diractor()
aufs: for linux-3.19, vfs_fallocate()
aufs: for linux-3.19, get_unused_fd_flags()
aufs: for linux-3.19, f_dentry
aufs: for linux-3.19, d_materialise_unique()
- aufs3-standalone.git
ditto
- aufs-util.git
none
diff -Npur a/linux-3.16/fs/aufs/debug.c b/linux-3.16/fs/aufs/debug.c
--- a/linux-3.16/fs/aufs/debug.c 2015-01-16 18:41:15.986192886 +0100
+++ b/linux-3.16/fs/aufs/debug.c 2015-01-16 19:08:24.402790066 +0100
@@ -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 -Npur a/linux-3.16/fs/aufs/export.c b/linux-3.16/fs/aufs/export.c
--- a/linux-3.16/fs/aufs/export.c 2015-01-16 18:41:15.989527885 +0100
+++ b/linux-3.16/fs/aufs/export.c 2015-01-16 19:08:24.416130064 +0100
@@ -243,7 +243,7 @@ static struct dentry *decode_by_ino(stru
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 -Npur a/linux-3.16/fs/aufs/hnotify.c b/linux-3.16/fs/aufs/hnotify.c
--- a/linux-3.16/fs/aufs/hnotify.c 2015-01-16 18:41:15.992862885 +0100
+++ b/linux-3.16/fs/aufs/hnotify.c 2015-01-16 19:08:24.429470064 +0100
@@ -211,7 +211,7 @@ static int hn_gen_by_inode(char *name, u
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_na
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;
------------------------------------------------------------------------------
New Year. New Location. New Benefits. New Data Center in Ashburn, VA.
GigeNET is offering a free month of service with a new server in Ashburn.
Choose from 2 high performing configs, both with 100TB of bandwidth.
Higher redundancy.Lower latency.Increased capacity.Completely compliant.
http://p.sf.net/sfu/gigenet