Bugfix: au_add_till_max wrongly detects overflow if b==0

If argument b is set to 0, au_add_till_max returns the value of constant ULLONG_MAX. In this case, old is equal to a and the condition fails.
(cherry picked from commit 2cb94043a1b0f7deec7ea3b963a21e6ad80d67bf)
New function: au_add_muldiv_till_max

Preparation patch for bugfix-sums-with-different-block-size.patch

A new function au_add_muldiv_till_max which works like au_add_till_max but adds the result of b*mul/div instead of just b.

NEED SOME HELP HERE: the function is not overflow-safe yet. I think there must be such functions in the kernel already, but I'm to new to know where to find it.

Possibly this function could also be implemented by using bit shifting.
===================================================================
(cherry picked from commit 35a354a673540f75513b66ca03f37d64b2850895)
Bugfix: au_statfs_sum calculates wrong sums when different block sizes are used

If aufs is mounted in sum mode, but the source file systems have different block sizes, the result of the statfs is the sum of all block counts which does not make sense. This patch corrects this problem by normalizing the block counts to the same block size and then adds them.
(cherry picked from commit 333b15f12677220f40bed3a8f61ff4a485875889)
aufs: statfs, support various bsize

Signed-off-by: J. R. Okajima <hooanon05@yahoo.co.jp>
aufs: au_statfs_sum calculates wrong sums when different block sizes are in use

If aufs is mounted in sum mode, but the source file systems have different
block sizes, the result of statfs is the sum of all block counts which does
not make sense. This patch corrects this problem by normalizing the block
counts to the same block size and then adds them.

Signed-off-by: Daniel Alder <hackie@wolke7.net>
Signed-off-by: J. R. Okajima <hooanon05@yahoo.co.jp>
(cherry picked from commit 724a7be5e4d35a6642f5002c209f2973b678eda9)
Merge branch 'aufs3.0/00base' into aufs3.0/01modular
Merge branch 'aufs3.0/01modular' into aufs3.0/30stdalone
Merge branch 'aufs3.0/30stdalone' into aufs3.0/39public
aufs3.0 20120326

Signed-off-by: J. R. Okajima <hooanon05@yahoo.co.jp>
aufs: update the donator

Signed-off-by: J. R. Okajima <hooanon05@yahoo.co.jp>
Merge branch 'aufs3.0/00base' into aufs3.0/01modular
Merge branch 'aufs3.0/01modular' into aufs3.0/30stdalone
Merge branch 'aufs3.0/30stdalone' into aufs3.0/39public
aufs3.0 20120402

Signed-off-by: J. R. Okajima <hooanon05@yahoo.co.jp>
Parallel make patch

Hi,

I like to propose a small and simple patch for parallel builds via make
-j#. Currently I see

make[1]: Entering directory `/usr/src/linux-3.3.4-lh'
make[1]: warning: jobserver unavailable: using -j1.  Add `+' to parent
make rule.

Which gets fixed with the patch attached. I didn't do a clean git
format-patch on all branches, I am sorry. But the principle should apply
there too.

Here some background informations from one of our devs
http://blog.flameeyes.eu/2008/11/for-a-parallel-world-case-study-n-4-jobserver-unavailable

Thanks for inclusion,
Justin

Originally-written-by: Justin <jlec@gentoo.org>
Signed-off-by: J. R. Okajima <hooanon05@yahoo.co.jp>
(cherry picked from commit c1a29ca1f60ec77efe869924d968c72dbcbc714d)
Merge branch 'aufs3.0/30stdalone' into aufs3.0/39public
aufs3.0 20120430

Signed-off-by: J. R. Okajima <hooanon05@yahoo.co.jp>