o news - new scheme to pin the hierarchy on lower branch (introduced in last Monday release) is still in testing phase. after its completions, the fix will be backported to fs/aufs (linux-2.6.24 and earlier). - some other bugfixes are made in this release. they will be backported to fs/aufs too when I have time.
o bugfix - bugfix (fs/aufs25 only, currently): pin the hierarchy on lower branch and new ignore scheme for inotify (still testing). + add a prefix 'au_' to struct link_args, cpup_before_link() and cpup_or_link(). + aufs_link() allocates some large variables dynamically. + au_do_pin() never returns until all locks and verifications are completed. + call au_pin() from lock_hdir_create_wh() instead of several manual lockings. + call au_pin utility functions from aufs_unlink() and aufs_rmdir(). + call di_downgrade_lock() from aufs_write(), aufs_splice_write(), aufs_mmap() and aufs_fsync_nondir(). + make au_do_unpin() global. + make au_pin_gp() as CONFIG_AUFS_HINOTIFY local. + move au_unpin() from i_op.c to inode.h and make it inlined. + move au_unpin_gp() from i_op.c to hinotify.c. + new inline functions au_pin_do_set_parent_lflag(), au_pin_set_parent_lflag() and au_pin_set_gparent_lflag(). + refine au_cpup_before_link() by using au_pin/unpin(). + rename lsc_i to lsc_hi. + remove some parameters frome rename functions by passing struct au_ren_args. + rename struct rename_args to au_ren_args, add some members to reduce the stack size. + simplify aufs_d_revalidate() by write_lock + downgrade_lock. + simplify au_hi_lock() by removing some parameters. + simplify do_coo() and au_ready_to_write() by removing some variables. + simplify lock_hdir_create_wh(), aufs_unlink() and aufs_rmdir() by removing some variables. + simplify lock_hdir_lkup_wh(), add_simple(), struct au_link_args, au_cpup_or_link() and aufs_mkdir() by removing some variables. + simplify struct au_icpup_args, au_lock_and_icpup() and aufs_setattr() by removing/adding some members. + split do_rename() into some small functions. - bugfix (fs/aufs25 only, currently): lock child dentry first in aufs_lookup(), and unlock the parent as soon as possible. this fix will be backported to fs/aufs too. - bugfix (fs/aufs25 only, currently): stop locking child inode in reval_inode(). this fix will be backported to fs/aufs too. - bugfix (fs/aufs25 only, currently): revert the timestamps of the parent dir at flushing pseudo-links. this fix will be backported to fs/aufs too. o misc - declare copyright 2005-2008 in all files, because I was told it should be done per software instead of per file even in the files which I didn't change this year. - enhancement for CONFIG_4KSTACKS, allocate a large structure dynamically in au_wkq_run() instead of stack. - minor optimization, use unsigned long long pointer for testing a hole in a file. - call kzalloc() instead of kmalloc() + memset(,0,). - unset noinline_for_stack to epilog(), lock_hdir_lkup_wh() and au_cpup_or_link(). - unset noinline_for_stack to cpup_regular() and au_do_cpup_regular(). - unset noinline_for_stack to decode_by_dir_ino(). - reduce the stack size. Junjiro Okajima ---------------------------------------------------------------------- Index: fs/aufs25/cpup.c - unset noinline_for_stack to cpup_regular() and au_do_cpup_regular(). - bugfix (fs/aufs25 only, currently): revert the timestamps of the parent dir at flushing pseudo-links. this fix will be backported to fs/aufs too. Index: fs/aufs25/debug.c - call kzalloc() instead of kmalloc() + memset(,0,). Index: fs/aufs25/dentry.c - reduce the stack size. - bugfix (fs/aufs25 only, currently): pin the hierarchy on lower branch and new ignore scheme for inotify (still testing). + simplify aufs_d_revalidate() by write_lock + downgrade_lock. Index: fs/aufs25/export.c - declare copyright 2005-2008 in all files, because I was told it should be done per software instead of per file even in the files which I didn't change this year. - unset noinline_for_stack to decode_by_dir_ino(). Index: fs/aufs25/f_op.c - bugfix (fs/aufs25 only, currently): pin the hierarchy on lower branch and new ignore scheme for inotify (still testing). + call di_downgrade_lock() from aufs_write(), aufs_splice_write(), aufs_mmap() and aufs_fsync_nondir(). - reduce the stack size. Index: fs/aufs25/file.c - bugfix (fs/aufs25 only, currently): pin the hierarchy on lower branch and new ignore scheme for inotify (still testing). + simplify do_coo() and au_ready_to_write() by removing some variables. Index: fs/aufs25/hinotify.c - declare copyright 2005-2008 in all files, because I was told it should be done per software instead of per file even in the files which I didn't change this year. - bugfix (fs/aufs25 only, currently): pin the hierarchy on lower branch and new ignore scheme for inotify (still testing). + move au_unpin_gp() from i_op.c to hinotify.c. Index: fs/aufs25/i_op.c - bugfix (fs/aufs25 only, currently): lock child dentry first in aufs_lookup(), and unlock the parent as soon as possible. this fix will be backported to fs/aufs too. - bugfix (fs/aufs25 only, currently): pin the hierarchy on lower branch and new ignore scheme for inotify (still testing). + move au_unpin_gp() from i_op.c to hinotify.c. + make au_do_unpin() global. + move au_unpin() from i_op.c to inode.h and make it inlined. + au_do_pin() never returns until all locks and verifications are completed. + simplify au_hi_lock() by removing some parameters. + simplify struct au_icpup_args, au_lock_and_icpup() and aufs_setattr() by removing/adding some members. Index: fs/aufs25/i_op_add.c - unset noinline_for_stack to epilog(), lock_hdir_lkup_wh() and au_cpup_or_link(). - bugfix (fs/aufs25 only, currently): pin the hierarchy on lower branch and new ignore scheme for inotify (still testing). + simplify lock_hdir_lkup_wh(), add_simple(), struct au_link_args, au_cpup_or_link() and aufs_mkdir() by removing some variables. + add a prefix 'au_' to struct link_args, cpup_before_link() and cpup_or_link(). + refine au_cpup_before_link() by using au_pin/unpin(). + aufs_link() allocates some large variables dynamically. - reduce the stack size for aufs_mkdir() Index: fs/aufs25/i_op_del.c - bugfix (fs/aufs25 only, currently): pin the hierarchy on lower branch and new ignore scheme for inotify (still testing). + call au_pin() from lock_hdir_create_wh() instead of several manual lockings. + simplify lock_hdir_create_wh(), aufs_unlink() and aufs_rmdir() by removing some variables. + call au_pin utility functions from aufs_unlink() and aufs_rmdir(). Index: fs/aufs25/i_op_ren.c - bugfix (fs/aufs25 only, currently): pin the hierarchy on lower branch and new ignore scheme for inotify (still testing). + rename struct rename_args to au_ren_args, add some members to reduce the stack size. + remove some parameters frome rename functions by passing struct au_ren_args. + split do_rename() into some small functions. Index: fs/aufs25/inode.c - bugfix (fs/aufs25 only, currently): stop locking child inode in reval_inode(). this fix will be backported to fs/aufs too. Index: fs/aufs25/inode.h - bugfix (fs/aufs25 only, currently): pin the hierarchy on lower branch and new ignore scheme for inotify (still testing). + rename lsc_i to lsc_hi. + move au_unpin() from i_op.c to inode.h and make it inlined. + move au_unpin_gp() from i_op.c to hinotify.c. + make au_pin_gp() as CONFIG_AUFS_HINOTIFY local. + new inline functions au_pin_do_set_parent_lflag(), au_pin_set_parent_lflag() and au_pin_set_gparent_lflag(). Index: fs/aufs25/misc.c - minor optimization, use unsigned long long pointer for testing a hole in a file. Index: fs/aufs25/opts.c - reduce the stack size. Index: fs/aufs25/wkq.c - enhancement for CONFIG_4KSTACKS, allocate a large structure dynamically in au_wkq_run() instead of stack. Index: fs/aufs/br_fuse.c Index: fs/aufs/br_nfs.c Index: fs/aufs/br_xfs.c Index: fs/aufs/dcsub.c Index: fs/aufs/dcsub.h Index: fs/aufs/dlgt.c Index: fs/aufs/export.c Index: fs/aufs/hin_or_dlgt.c Index: fs/aufs/hinotify.c Index: fs/aufs/module.c Index: fs/aufs/module.h Index: fs/aufs/plink.c Index: fs/aufs/robr.c Index: fs/aufs/sysaufs.c Index: fs/aufs/sysaufs.h Index: fs/aufs/sysrq.c Index: fs/aufs/vfsub.c Index: fs/aufs/vfsub.h Index: fs/aufs/wbr_policy.c Index: fs/aufs25/br_fuse.c Index: fs/aufs25/br_nfs.c Index: fs/aufs25/br_xfs.c Index: fs/aufs25/dcsub.c Index: fs/aufs25/dcsub.h Index: fs/aufs25/dlgt.c Index: fs/aufs25/hin_or_dlgt.c Index: fs/aufs25/module.c Index: fs/aufs25/module.h Index: fs/aufs25/plink.c Index: fs/aufs25/robr.c Index: fs/aufs25/sysaufs.c Index: fs/aufs25/sysaufs.h Index: fs/aufs25/sysfs.c Index: fs/aufs25/sysrq.c Index: fs/aufs25/vfsub.c Index: fs/aufs25/vfsub.h Index: fs/aufs25/wbr_policy.c Index: include/linux/aufs_type.h Index: sample/unionctl Index: sample/auroot/auroot Index: sample/diskless/Makefile Index: sample/diskless/clients Index: sample/diskless/comount.sh Index: sample/diskless/custom.sh Index: sample/diskless/def.mk Index: sample/diskless/diskless.6aufs Index: sample/diskless/func.sh Index: sample/diskless/initrd.mk Index: sample/diskless/linuxrc Index: sample/diskless/local.mk Index: sample/diskless/local.sh Index: sample/diskless/preseed.sh Index: sample/diskless/retr.mk Index: sample/uloop/Makefile Index: sample/uloop/libuloop.c Index: sample/uloop/ulobdev.c Index: sample/uloop/ulohttp.c Index: sample/uloop/drivers/block/uloop.c Index: sample/uloop/include/linux/uloop.h Index: sample/watchguard/probe/probe.c Index: sample/watchguard/probe/probe.h Index: sample/watchguard/probe/cpup/cpup.c Index: sample/watchguard/probe/open/open.c Index: util/aufs.in.5 Index: util/auplink Index: util/fsck.aufs Index: util/mount.aufs Index: util/umount.aufs - declare copyright 2005-2008 in all files, because I was told it should be done per software instead of per file even in the files which I didn't change this year. Index: fs/aufs25/misc.h Index: fs/aufs25/hinode.h - less important changes. ------------------------------------------------------------------------- Sponsored by: SourceForge.net Community Choice Awards: VOTE NOW! Studies have shown that voting for your favorite open source project, along with a healthy diet, reduces your potential for chronic lameness and boredom. Vote Now at http://www.sourceforge.net/community/cca08