UBUNTU: ubuntu: AUFS -- update to
b37c575759dc4535ccc03241c584ad5fe69e3b25
commit
b37c575759dc4535ccc03241c584ad5fe69e3b25
Author: J. R. Okajima <hooanon05@yahoo.co.jp>
Date: Sun Jul 4 21:06:02 2010 +0900
aufs: minor update abput the doubling donations
Signed-off-by: J. R. Okajima <hooanon05@yahoo.co.jp>
commit
799db4b1d59ea0ffc999889bc6985397333e9a13
Author: J. R. Okajima <hooanon05@yahoo.co.jp>
Date: Fri Jul 2 00:37:56 2010 +0900
aufs: compat_ioctl, implement the operations
(A commit in a series of supporting 32bit emulation under 64bit kernel.
While every commit is git-bisect-able, you shoule read all commits in
the series since a single commit may have less meaning.)
Implement f_op->compat_ioctl().
Signed-off-by: J. R. Okajima <hooanon05@yahoo.co.jp>
commit
765378b55abcabfe3344e5fcf2eabd6a1d52abc0
Author: J. R. Okajima <hooanon05@yahoo.co.jp>
Date: Fri Jul 2 00:35:17 2010 +0900
aufs: compat_ioctl, make a room for a pointer
(A commit in a series of supporting 32bit emulation under 64bit kernel.
While every commit is git-bisect-able, you shoule read all commits in
the series since a single commit may have less meaning.)
In order to make it compatible, make a room for a pointer and always
handle it as 64bit size.
Signed-off-by: J. R. Okajima <hooanon05@yahoo.co.jp>
commit
abd339c757ea095f1affdd648d0e9e598213a790
Author: J. R. Okajima <hooanon05@yahoo.co.jp>
Date: Fri Jul 2 00:29:00 2010 +0900
aufs: compat_ioctl, remove verifying the size of ptr
(A commit in a series of supporting 32bit emulation under 64bit kernel.
While every commit is git-bisect-able, you shoule read all commits in
the series since a single commit may have less meaning.)
Remove verifying the size of ptr which is meaningless.
Signed-off-by: J. R. Okajima <hooanon05@yahoo.co.jp>
commit
3c979528184058b184608e6e3086c4c59b0a6c86
Author: J. R. Okajima <hooanon05@yahoo.co.jp>
Date: Fri Jul 2 00:04:33 2010 +0900
aufs: follow 2.6.28, new flag LOOKUP_EXCL
NFS replaces the internal test for LOOKUP_CREATE by a new flag
LOOKUP_EXCL.
Aufs has to prohibit this internal test in order to know whether the
file exists or not.
Reported-by: "Ian Stakenvicius, Aerobiology Research" <ian@aerobiology.ca>
Signed-off-by: J. R. Okajima <hooanon05@yahoo.co.jp>
commit
396a2f097a6b278fc2a9e9da83b87255f60075fb
Author: J. R. Okajima <hooanon05@yahoo.co.jp>
Date: Tue Jun 29 14:32:26 2010 +0900
aufs: bugfix, separate the workqueue for preprocessing mmap
variation of common AB-BA deadlock problem.
ProcessA:
- aufs_mmap
+ pre-process with using a workqueue
+ wait until return from the workqueue
Workqueue task for ProcessA:
- acquire aufs rwsem
Processb
- lookup or readdir in aufs
+ acquire aufs rwsem
+ assign a new inode number
+ write the value to the XINO file using a workqueue
+ wait until return from the workqueue
Since the workqueue handles the request one by one, both of processA and
B waits forever.
This bug was introduced by the commit
d986fa5 2010-03-08
aufs: bugfix, another approach to keep the lock order of mmap_sem
which is the last added workqueue task.
And this is the only one task which acquires such lock in workqueue.
To fix it, introduce another workqueue which is for preprocessing mmap only.
This commit will make the approach more ugly, I don't have another option.
Reported-by: Oliver Welter <mail@oliwel.de>
Signed-off-by: J. R. Okajima <hooanon05@yahoo.co.jp>
commit
7c7f493d58745e45160ccebfbfb5e6244dbd0b52
Author: J. R. Okajima <hooanon05@yahoo.co.jp>
Date: Fri Jun 25 10:52:59 2010 +0900
aufs: tiny, debug print [if]_version
Signed-off-by: J. R. Okajima <hooanon05@yahoo.co.jp>
commit
ade8662cb1184703ebdd7c7d07cb42d2056a605b
Author: J. R. Okajima <hooanon05@yahoo.co.jp>
Date: Sat Jun 19 16:38:15 2010 +0900
aufs: follow the changes in 2.6.35, lockdep for sb->s_vfs_rename_mutex
lockdep_set_class() is applied to sb->s_vfs_rename_mutex, and
lockdep_off/on() in aufs become unnecessary.
Signed-off-by: J. R. Okajima <hooanon05@yahoo.co.jp>
commit
d405a78a328658600f1928309bfbd2ded6136c59
Author: J. R. Okajima <hooanon05@yahoo.co.jp>
Date: Sat Jun 19 03:36:21 2010 +0900
aufs: tiny, remove unused lockdep_off/on()
In linux-2.6.31, lockdep_set_class() was applited to them.
Signed-off-by: J. R. Okajima <hooanon05@yahoo.co.jp>
commit
a4862273fc684dd24a9e0b4c29f89aaf53723afc
Author: J. R. Okajima <hooanon05@yahoo.co.jp>
Date: Thu Jun 17 23:39:13 2010 +0900
aufs: several GIT servers
Signed-off-by: J. R. Okajima <hooanon05@yahoo.co.jp>
commit
135ac88ed89e4780dc71bef119b803d4c594ea07
Author: J. R. Okajima <hooanon05@yahoo.co.jp>
Date: Wed Jun 16 18:11:40 2010 +0900
aufs: possible bugfix, sbinfo lock in deleting inode, lockdep
(A commit in a series of introducing pid map/tree and making sure to
acquire sbinfo lock in deleting inode. While every commit is
git-bisect-able, you shoule read all commits in the series since a
single commit may have less meaning.)
A debugging feature in linux kernel, lockdep, warns
"inconsistent {RECLAIM_FS-ON-W} -> {IN-RECLAIM_FS-R} usage."
about sb->s_umount and aufs sbinfo lock.
This is bogus or "false positive" since {RECLAIM_FS-ON-W} state was
registered at allcating the root inode at mounting. This is definitly no
RECLAIM state. It may be a limitation of s_umount in lockdep.
Let's simply make it quiet.
Signed-off-by: J. R. Okajima <hooanon05@yahoo.co.jp>
commit
6ef8250091897e1cf7e8b77a7cfc61c7ffe58b58
Author: J. R. Okajima <hooanon05@yahoo.co.jp>
Date: Wed Jun 16 18:03:48 2010 +0900
aufs: possible bugfix, sbinfo lock in deleting inode, core
(A commit in a series of introducing pid map/tree and making sure to
acquire sbinfo lock in deleting inode. While every commit is
git-bisect-able, you shoule read all commits in the series since a
single commit may have less meaning.)
s_umount rwsem in struct super_block prevents a race condition among
umount, remount and kswapd. It is good.
But if an inode is going to be deleted by other than kswapd, aufs may be
doing another operation which requires a lock for sbinfo. In this case,
si_noflush_read_trylock() in au_iinfo_fin() will not acquire the
lock. Before au_iinfo_fin() completes or during its operations, another
operation may release the lock and remount or a branch management
process may start. Here if the branch management process changes the
union members, then xino management in au_iinfo_fin() will not work
correctly.
In order to fix this potential problem, there another bad approch is
introduced which uses a bitmap to mark the pid which acquired the sbinfo
lock. In au_iinfo_fin(), if the bit is set, then the function will not
try acquiring the lock.
To support the pid larger than PID_MAX_DEFAULT, sbinfo prepares a radix
tree too.
With this commit, we can remove si_noflush_read_trylock(). But it will
be necessary in aufs2-31 branch, so leave it now.
Signed-off-by: J. R. Okajima <hooanon05@yahoo.co.jp>
commit
eb6254f4b0080f01b3356a40bdd62d7130bf1951
Author: J. R. Okajima <hooanon05@yahoo.co.jp>
Date: Wed Jun 16 17:51:00 2010 +0900
aufs: possible bugfix, sbinfo lock in deleting inode, use si_pid
(A commit in a series of introducing pid map/tree and making sure to
acquire sbinfo lock in deleting inode. While every commit is
git-bisect-able, you shoule read all commits in the series since a
single commit may have less meaning.)
Use si_pid which was declared and implmented by last commit.
Signed-off-by: J. R. Okajima <hooanon05@yahoo.co.jp>
commit
89d59298f045a8a7e2c5a667dfc3ee3b3fe8745a
Author: J. R. Okajima <hooanon05@yahoo.co.jp>
Date: Wed Jun 16 17:43:12 2010 +0900
aufs: possible bugfix, sbinfo lock in deleting inode, si_pid functions
(A commit in a series of introducing pid map/tree and making sure to
acquire sbinfo lock in deleting inode. While every commit is
git-bisect-able, you shoule read all commits in the series since a
single commit may have less meaning.)
Declare and implement si_pid functions which are not used yet.
The pid from 1 to PID_MAX_DEFAULT are marked in a new bitmap in
sbinfo. The larger pids will go to a new radix tree in sbinfo.
These marks will be referenced by au_iinfo_fin() in succeeding commit.
Signed-off-by: J. R. Okajima <hooanon05@yahoo.co.jp>
commit
40d554b0f6a6bc588fd88235f39b59f30ec27114
Author: J. R. Okajima <hooanon05@yahoo.co.jp>
Date: Wed Jun 16 17:30:03 2010 +0900
aufs: possible bugfix, sbinfo lock in deleting inode, __si_ lock
(A commit in a series of introducing pid map/tree and making sure to
acquire sbinfo lock in deleting inode. While every commit is
git-bisect-able, you shoule read all commits in the series since a
single commit may have less meaning.)
Rename si_noflush_... lock macros to __si_..., and create new inlined
functions si_noflush_....
Signed-off-by: J. R. Okajima <hooanon05@yahoo.co.jp>
commit
f2f51daf576fa90ad7209288ed8b19c8151ff92a
Author: J. R. Okajima <hooanon05@yahoo.co.jp>
Date: Wed Jun 9 17:03:00 2010 +0900
aufs: tiny, simplify the locks in au_do_flush()
The read-lock for dinfo is unnecessary.
Also the write-lock for iinfo should be a read-lock.
Signed-off-by: J. R. Okajima <hooanon05@yahoo.co.jp>
commit
bdc941c464fd4181f7ab76fbb992b6ab150ac188
Author: J. R. Okajima <hooanon05@yahoo.co.jp>
Date: Tue Jun 8 23:28:03 2010 +0900
aufs: minor optimization au_iinfo_fin()
- extract a part of au_iinfo_fin(), create a new function
au_xino_delete_inode(), and remove au_iinfo_write0().
- simplify au_xino_write0() and rename to au_xib_clear_bit().
- convert the type of au_xigen_inc() into void.
- stop testing 'xino' option in au_xigen_inc().
Signed-off-by: J. R. Okajima <hooanon05@yahoo.co.jp>
commit
7e7b86c68cf5d3638ceb19a0a1d7a254d8501bde
Author: J. R. Okajima <hooanon05@yahoo.co.jp>
Date: Tue Jun 8 00:08:00 2010 +0900
aufs: tiny, remove an unnecessary variable
Signed-off-by: J. R. Okajima <hooanon05@yahoo.co.jp>
commit
ea824b7a71cd905fdadcb0998ab2005fcb3786e9
Author: J. R. Okajima <hooanon05@yahoo.co.jp>
Date: Tue Jun 8 00:06:55 2010 +0900
aufs: minor optimization, pass the 'verbose' flag
Stop testing the 'verbose' flag in all test_dentry_busy(),
test_inode_busy() and au_br_del() functions. Instead pass the tested
result from au_br_del() to test_dentry_busy() and test_inode_busy().
Signed-off-by: J. R. Okajima <hooanon05@yahoo.co.jp>
commit
cabc97fe740d2c7664988e76f218318aecd5ec18
Author: J. R. Okajima <hooanon05@yahoo.co.jp>
Date: Mon Jun 7 14:45:15 2010 +0900
aufs: tiny, test task flags instead of mm
Signed-off-by: J. R. Okajima <hooanon05@yahoo.co.jp>
commit
575bf8c6484fd12a0719a7ebcf6c0d2fd0af31f3
Author: J. R. Okajima <hooanon05@yahoo.co.jp>
Date: Fri Jun 4 14:55:42 2010 +0900
aufs: follow linux-2.6.35, simple_setsize()
Replace vmtruncate() by a new function simple_setsize().
Signed-off-by: J. R. Okajima <hooanon05@yahoo.co.jp>
commit
c503a51d10c9c7767f1eba8e47de545d31ab7858
Author: J. R. Okajima <hooanon05@yahoo.co.jp>
Date: Fri Jun 4 02:54:13 2010 +0900
aufs: bugfix, the dentry paramter for security funcs
Pass the correct parameter.
Signed-off-by: J. R. Okajima <hooanon05@yahoo.co.jp>
commit
92172f59e363f630ab44217e78135cdeff90ba0d
Author: J. R. Okajima <hooanon05@yahoo.co.jp>
Date: Fri Jun 4 02:09:23 2010 +0900
aufs: tiny, fake type-cast by union
Signed-off-by: J. R. Okajima <hooanon05@yahoo.co.jp>
commit
9f8ad8ca00cf7677e9d982c9e98d4b7586e759f6
Author: J. R. Okajima <hooanon05@yahoo.co.jp>
Date: Wed Jun 2 23:38:37 2010 +0900
aufs: possible bugfix, revalidate inode race between readdir and lookup
Both of readdir and lookup operation need to assign the aufs inode
number, but it requires other aufs locks including xi_nondir_mtx which
prevents hard-linked inode number from race condition. There can happen
a violation of the order of these locks.
They acquire these locks.
aufs_readdir("./dirA")
+ si_read_lock
+ fi_write_lock
+ di_write_lock
+ ii_write_lock for dirA
+ xi_nondir_mtx for non-dir
aufs_lookup("./dirA/fileB")
+ si_read_lock
+ di_write_lock
+ xi_nondir_mtx for non-dir
+ ii_write_lock_nested for fileB
Here the fileB may be in copy-up operation which acquires the parent's
dentry-info and inode->info lock. So aufs_lookup() waits for the
completion of copy-up, aufs_readdir() waits for xi_nondir_mtx, and the
copy-up waits for the parent, but it is held by readdir.
This is very complicated situation and I am afraid the design of aufs
inode assignment is not godd. But I don't have other idea.
This commit refines xi_nondir_mtx and releases it before
"ii_write_lock_nested for fileB."
Signed-off-by: J. R. Okajima <hooanon05@yahoo.co.jp>
commit
907f03a11f5a681de402d733b6e80532adece324
Author: J. R. Okajima <hooanon05@yahoo.co.jp>
Date: Tue Jun 1 01:41:43 2010 +0900
aufs: tiny, follow the changes in linux-2.6.35-rcN
The dentry parameter is removed from ->fsync().
Signed-off-by: J. R. Okajima <hooanon05@yahoo.co.jp>
Signed-off-by: Andy Whitcroft <apw@canonical.com>
Signed-off-by: Leann Ogasawara <leann.ogasawara@canonical.com>