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