Discussion:
aufs3 with 3.12.52 kernel
M. J. Everitt
2017-01-23 20:12:43 UTC
Permalink
Hi,

I was attempting to apply the aufs3 kernel patches to a 3.12.52 kernel
I'm running under Gentoo linux, but the patchset for 3.12.31+ now fails.
I contacted the Gentoo maintainer[1] who pointed me to this kernel
commit[2], which tallies with my results of patch failure. Can you
suggest what my best course of action may be, or whether you could maybe
rustle-up a new fork for this kernel 'era' with this patch applied
maybe? I appreciate its probably deprecated and all that, but the
3.12.52 kernel remains a stable build in the Gentoo tree![3]
Thanks!
Best regards,

Michael Everitt.
[1] https://packages.gentoo.org/packages/sys-fs/aufs3
[2]
https://git.kernel.org/cgit/linux/kernel/git/stable/linux-stable.git/commit/?id=0da9ac29cddaaf0911fbeaf46e7b4e155cdc792e
[3] https://packages.gentoo.org/packages/sys-kernel/gentoo-sources
s***@users.sourceforge.net
2017-01-23 20:31:32 UTC
Permalink
Hello Michael,
Post by M. J. Everitt
I was attempting to apply the aufs3 kernel patches to a 3.12.52 kernel
I'm running under Gentoo linux, but the patchset for 3.12.31+ now fails.
I contacted the Gentoo maintainer[1] who pointed me to this kernel
commit[2], which tallies with my results of patch failure. Can you
suggest what my best course of action may be, or whether you could maybe
rustle-up a new fork for this kernel 'era' with this patch applied
maybe? I appreciate its probably deprecated and all that, but the
3.12.52 kernel remains a stable build in the Gentoo tree![3]
The commit you wrote as [2] is actually

eee5cc2 2013-11-09 get rid of s_files and files_lock

which was for linux-v3.13. And aufs3.13 supported it by

c4f4458 2013-12-17 aufs: for linux-3.13, s_files is gone and si_files has=
come

I'd suggest you to check this c4f4458 commit. And then consider these
commits too.

$ git log1 --no-merges aufs3.12.31+..aufs3.13 fs/aufs
31070ac 2014-07-03 aufs: move-up on open, for linux-3.13
f32702f 2014-01-13 aufs: linux-3.13, tiny, leave a comment for dentry test=
helopers
7824a63 2014-01-13 aufs: linux-3.13, tiny, printk format specifier for d_n=
ame
71a742f 2013-12-17 aufs: for linux-3.13, less important comment as a remin=
der
d09c9a9 2013-12-17 aufs: for linux-3.13, ->f_op is never NULL
c4f4458 2013-12-17 aufs: for linux-3.13, s_files is gone and si_files has =
come
0fe228b 2013-12-17 aufs: for linux-3.13, remove vfsmount_lock
1fda809 2013-12-17 aufs: for linux-3.13, replace I_MUTEX_QUOTA by I_MUTEX_=
NONDIR2
3a7b061 2013-12-17 aufs: for linux-3.13, support for NFSv4 delegation 4/4,=
vfs_rename()
6eb40c3 2013-12-17 aufs: for linux-3.13, support for NFSv4 delegation 3/4,=
vfs_link()
87baa7e 2013-12-17 aufs: for linux-3.13, support for NFSv4 delegation 2/4,=
vfs_unlink()
aee9478 2013-12-17 aufs: for linux-3.13, support for NFSv4 delegation 1/4,=
notify_change()

As you might know, all aufs3 version are not maintained now. I won't
create aufs3.12.52 or something.


J. R. Okajima
M. J. Everitt
2017-01-23 21:17:19 UTC
Permalink
Post by s***@users.sourceforge.net
Hello Michael,
Post by M. J. Everitt
I was attempting to apply the aufs3 kernel patches to a 3.12.52 kernel
I'm running under Gentoo linux, but the patchset for 3.12.31+ now fails.
I contacted the Gentoo maintainer[1] who pointed me to this kernel
commit[2], which tallies with my results of patch failure. Can you
suggest what my best course of action may be, or whether you could maybe
rustle-up a new fork for this kernel 'era' with this patch applied
maybe? I appreciate its probably deprecated and all that, but the
3.12.52 kernel remains a stable build in the Gentoo tree![3]
The commit you wrote as [2] is actually
eee5cc2 2013-11-09 get rid of s_files and files_lock
which was for linux-v3.13. And aufs3.13 supported it by
c4f4458 2013-12-17 aufs: for linux-3.13, s_files is gone and si_files has=
come
I'd suggest you to check this c4f4458 commit. And then consider these
commits too.
$ git log1 --no-merges aufs3.12.31+..aufs3.13 fs/aufs
31070ac 2014-07-03 aufs: move-up on open, for linux-3.13
f32702f 2014-01-13 aufs: linux-3.13, tiny, leave a comment for dentry test=
helopers
7824a63 2014-01-13 aufs: linux-3.13, tiny, printk format specifier for d_n=
ame
71a742f 2013-12-17 aufs: for linux-3.13, less important comment as a remin=
der
d09c9a9 2013-12-17 aufs: for linux-3.13, ->f_op is never NULL
c4f4458 2013-12-17 aufs: for linux-3.13, s_files is gone and si_files has =
come
0fe228b 2013-12-17 aufs: for linux-3.13, remove vfsmount_lock
1fda809 2013-12-17 aufs: for linux-3.13, replace I_MUTEX_QUOTA by I_MUTEX_=
NONDIR2
3a7b061 2013-12-17 aufs: for linux-3.13, support for NFSv4 delegation 4/4,=
vfs_rename()
6eb40c3 2013-12-17 aufs: for linux-3.13, support for NFSv4 delegation 3/4,=
vfs_link()
87baa7e 2013-12-17 aufs: for linux-3.13, support for NFSv4 delegation 2/4,=
vfs_unlink()
aee9478 2013-12-17 aufs: for linux-3.13, support for NFSv4 delegation 1/4,=
notify_change()
As you might know, all aufs3 version are not maintained now. I won't
create aufs3.12.52 or something.
J. R. Okajima
Hi,

Thanks for that, I'll give that a roll, see how I get on. Hopefully that
will be all!
Regards,

Michael.
s***@users.sourceforge.net
2017-01-24 08:57:58 UTC
Permalink
Post by M. J. Everitt
Thanks for that, I'll give that a roll, see how I get on. Hopefully that
will be all!
Good luck, but there is an irritating situation.
The list in my previous mail is the difference between aufs3.12.31+ and
aufs3.13, but I don't know whether all these commits are merged into
v3.12.52. Additionally v3.12.52 may contain the changes from v3.14,
v3.15 ... v4.9. So applying "all" will be very hard I am afraid.

I'll try explaining more.
Roughly saying your v3.12.52 is something like this.
- base is v3.12.0 obviously
- might be added a part of v3.13
- might be added a part of v3.14
:::
- might be added a part of v4.9

So in order to fully support, you have to do like this.
- check what change was added to v3.12.52
- find out the corresponding commits one by one from the mainline. in
the mainline, the corresponding verions may be distributed widely. I
mean some of them are originated v3.13, and the others are from v3.14,
v3.15 and so on.
- finding out all mainline versions per the change, then you need to
find the corresponding commits in aufs. and pick them up one by one
manually.

For example,
- you found out that v3.12.52 has the commit
0da9ac2 2015-07-30 get rid of s_files and files_lock
(originally you wrote as [2]).
- I found out that the corresponding commit in mainline is
eee5cc2 2013-11-09 get rid of s_files and files_lock
which is against v3.13.
- I searched aufs3.13 and found the corresponding commit
c4f4458 2013-12-17 aufs: for linux-3.13, s_files is gone and si_files has=
come
- finally we found that the commit c4f4458 in aufs3.13 will be
necessary. but it is not guranteed that c4f4458 can be applied
cleanly. it may be required to modify manually.

Do I make myself clear with my broken English?
I just give you a warning "ALL will be really hard."


J. R. Okajima
M. J. Everitt
2017-01-24 09:05:17 UTC
Permalink
Post by s***@users.sourceforge.net
Post by M. J. Everitt
Thanks for that, I'll give that a roll, see how I get on. Hopefully that
will be all!
Good luck, but there is an irritating situation.
The list in my previous mail is the difference between aufs3.12.31+ and
aufs3.13, but I don't know whether all these commits are merged into
v3.12.52. Additionally v3.12.52 may contain the changes from v3.14,
v3.15 ... v4.9. So applying "all" will be very hard I am afraid.
I'll try explaining more.
Roughly saying your v3.12.52 is something like this.
- base is v3.12.0 obviously
- might be added a part of v3.13
- might be added a part of v3.14
- might be added a part of v4.9
So in order to fully support, you have to do like this.
- check what change was added to v3.12.52
- find out the corresponding commits one by one from the mainline. in
the mainline, the corresponding verions may be distributed widely. I
mean some of them are originated v3.13, and the others are from v3.14,
v3.15 and so on.
- finding out all mainline versions per the change, then you need to
find the corresponding commits in aufs. and pick them up one by one
manually.
For example,
- you found out that v3.12.52 has the commit
0da9ac2 2015-07-30 get rid of s_files and files_lock
(originally you wrote as [2]).
- I found out that the corresponding commit in mainline is
eee5cc2 2013-11-09 get rid of s_files and files_lock
which is against v3.13.
- I searched aufs3.13 and found the corresponding commit
c4f4458 2013-12-17 aufs: for linux-3.13, s_files is gone and si_files has=
come
- finally we found that the commit c4f4458 in aufs3.13 will be
necessary. but it is not guranteed that c4f4458 can be applied
cleanly. it may be required to modify manually.
Do I make myself clear with my broken English?
I just give you a warning "ALL will be really hard."
J. R. Okajima
Hi,

Yes, I feared it would probably be a bit like that - but I see exactly
what you mean, and thank you for explaining it. I'm sure with a bit of
help and perseverance I should be able to work it out, and of course,
will post my findings to the ML for info.

Best regards,
Michael.
Philip Müller
2017-01-24 13:19:28 UTC
Permalink
Hi all,

it is much simplier than you think. As on Manjaro we still support linux
3.12 series. I already released patches to make it work. Simply adopt
them. You can find it here [1].

Please get all patches and the aufs tarfile you find in my github project:

aufs3.12.31+-20141215.patch.bz2

Pre-Patch:

aufs312-3.12.45.patch

Patches applied after:

aufs312-3.12.37.patch
aufs312-3.12.45-2.patch

I recommend to apply them like this [2]:

# fix aufs patches
rm ${srcdir}/aufs3-base.patch
rm ${srcdir}/aufs3-standalone.patch
cp -f ${startdir}/aufs3-base.patch ${srcdir}/aufs3-base.patch
cp -f ${startdir}/aufs3-standalone.patch ${srcdir}/aufs3-standalone.patch
cd "${srcdir}"
patch -Np0 -i "${srcdir}/aufs312-3.12.45.patch"

# add aufs3 support
patch -Np1 -i "${srcdir}/aufs3.12.31+-${_aufs}.patch"
patch -Np1 -i "${srcdir}/aufs3-base.patch"
patch -Np1 -i "${srcdir}/aufs3-kbuild.patch"
patch -Np1 -i "${srcdir}/aufs3-loopback.patch"
patch -Np1 -i "${srcdir}/aufs3-mmap.patch"
patch -Np1 -i "${srcdir}/aufs3-standalone.patch"
patch -Np1 -i "${srcdir}/tmpfs-idr.patch"
patch -Np1 -i "${srcdir}/vfs-ino.patch"
patch -Np2 -i "${srcdir}/aufs312-3.12.37.patch"
patch -Np1 -i "${srcdir}/aufs312-3.12.45-2.patch"

Good luck, Philip

[1] https://github.com/manjaro/packages-core/tree/master/linux312
[2] https://github.com/manjaro/packages-core/blob/master/linux312/PKGBUILD
M. J. Everitt
2017-01-24 15:39:16 UTC
Permalink
Post by Philip Müller
Hi all,
it is much simplier than you think. As on Manjaro we still support linux
3.12 series. I already released patches to make it work. Simply adopt
them. You can find it here [1].
aufs3.12.31+-20141215.patch.bz2
aufs312-3.12.45.patch
aufs312-3.12.37.patch
aufs312-3.12.45-2.patch
# fix aufs patches
rm ${srcdir}/aufs3-base.patch
rm ${srcdir}/aufs3-standalone.patch
cp -f ${startdir}/aufs3-base.patch ${srcdir}/aufs3-base.patch
cp -f ${startdir}/aufs3-standalone.patch ${srcdir}/aufs3-standalone.patch
cd "${srcdir}"
patch -Np0 -i "${srcdir}/aufs312-3.12.45.patch"
# add aufs3 support
patch -Np1 -i "${srcdir}/aufs3.12.31+-${_aufs}.patch"
patch -Np1 -i "${srcdir}/aufs3-base.patch"
patch -Np1 -i "${srcdir}/aufs3-kbuild.patch"
patch -Np1 -i "${srcdir}/aufs3-loopback.patch"
patch -Np1 -i "${srcdir}/aufs3-mmap.patch"
patch -Np1 -i "${srcdir}/aufs3-standalone.patch"
patch -Np1 -i "${srcdir}/tmpfs-idr.patch"
patch -Np1 -i "${srcdir}/vfs-ino.patch"
patch -Np2 -i "${srcdir}/aufs312-3.12.37.patch"
patch -Np1 -i "${srcdir}/aufs312-3.12.45-2.patch"
Good luck, Philip
[1] https://github.com/manjaro/packages-core/tree/master/linux312
[2] https://github.com/manjaro/packages-core/blob/master/linux312/PKGBUILD
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
Hi Philip,

Thanks very much for that - will give it a roll at the weekend. Got a
few python tasks to wade through, and a domestic upheaval .. and then
FOSDEM .. busy busy! :)
Cheers,
Michael.
M. J. Everitt
2017-02-22 04:06:46 UTC
Permalink
Post by M. J. Everitt
Post by Philip Müller
Hi all,
it is much simplier than you think. As on Manjaro we still support linux
3.12 series. I already released patches to make it work. Simply adopt
them. You can find it here [1].
aufs3.12.31+-20141215.patch.bz2
aufs312-3.12.45.patch
aufs312-3.12.37.patch
aufs312-3.12.45-2.patch
# fix aufs patches
rm ${srcdir}/aufs3-base.patch
rm ${srcdir}/aufs3-standalone.patch
cp -f ${startdir}/aufs3-base.patch ${srcdir}/aufs3-base.patch
cp -f ${startdir}/aufs3-standalone.patch ${srcdir}/aufs3-standalone.patch
cd "${srcdir}"
patch -Np0 -i "${srcdir}/aufs312-3.12.45.patch"
# add aufs3 support
patch -Np1 -i "${srcdir}/aufs3.12.31+-${_aufs}.patch"
patch -Np1 -i "${srcdir}/aufs3-base.patch"
patch -Np1 -i "${srcdir}/aufs3-kbuild.patch"
patch -Np1 -i "${srcdir}/aufs3-loopback.patch"
patch -Np1 -i "${srcdir}/aufs3-mmap.patch"
patch -Np1 -i "${srcdir}/aufs3-standalone.patch"
patch -Np1 -i "${srcdir}/tmpfs-idr.patch"
patch -Np1 -i "${srcdir}/vfs-ino.patch"
patch -Np2 -i "${srcdir}/aufs312-3.12.37.patch"
patch -Np1 -i "${srcdir}/aufs312-3.12.45-2.patch"
Good luck, Philip
[1] https://github.com/manjaro/packages-core/tree/master/linux312
[2] https://github.com/manjaro/packages-core/blob/master/linux312/PKGBUILD
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
Hi Philip,
Thanks very much for that - will give it a roll at the weekend. Got a
few python tasks to wade through, and a domestic upheaval .. and then
FOSDEM .. busy busy! :)
Cheers,
Michael.
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
Good news, all seemed to patch and compile successfully.

I'm a bit confused that all the Gentoo instructions point to using a
Hardened sources kernel .. I don't (yet) see a reason why, as Philip's
patches work fine on 3.12.52 "gentoo-sources" . If anyone has any
suggestions as to why this might (have) be(en) the case, it would fill
in another piece in the jigsaw of linux knowledge! :D

Cheers,
Michael.
s***@users.sourceforge.net
2017-02-23 14:35:20 UTC
Permalink
Post by M. J. Everitt
I'm a bit confused that all the Gentoo instructions point to using a
Hardened sources kernel .. I don't (yet) see a reason why, as Philip's
patches work fine on 3.12.52 "gentoo-sources" . If anyone has any
suggestions as to why this might (have) be(en) the case, it would fill
in another piece in the jigsaw of linux knowledge! :D
If your "Hardened sources kernel" means GRSEC, PAX or something, then
these mails may help you.

https://sourceforge.net/p/aufs/mailman/message/33190792/
and its thread.


J. R. Okajima

Loading...