packages (LINUX_2_6_33): kernel/kernel-aufs2.patch - 2010.04.15 snapshot

zbyniu zbyniu at pld-linux.org
Fri May 21 11:59:45 CEST 2010


Author: zbyniu                       Date: Fri May 21 09:59:45 2010 GMT
Module: packages                      Tag: LINUX_2_6_33
---- Log message:
- 2010.04.15 snapshot

---- Files affected:
packages/kernel:
   kernel-aufs2.patch (1.6 -> 1.6.2.1) 

---- Diffs:

================================================================
Index: packages/kernel/kernel-aufs2.patch
diff -u packages/kernel/kernel-aufs2.patch:1.6 packages/kernel/kernel-aufs2.patch:1.6.2.1
--- packages/kernel/kernel-aufs2.patch:1.6	Tue Sep 22 01:32:18 2009
+++ packages/kernel/kernel-aufs2.patch	Fri May 21 11:59:39 2010
@@ -1,6 +1,8 @@
-diff -uprN -x .git linux-2.6.31/Documentation/ABI/testing/debugfs-aufs aufs2-2.6.git/Documentation/ABI/testing/debugfs-aufs
---- linux-2.6.31/Documentation/ABI/testing/debugfs-aufs	1970-01-01 00:00:00.000000000 +0000
-+++ aufs2-2.6.git/Documentation/ABI/testing/debugfs-aufs	2009-09-14 14:52:35.032396516 +0000
+diff --git a/Documentation/ABI/testing/debugfs-aufs b/Documentation/ABI/testing/debugfs-aufs
+new file mode 100644
+index 0000000..4110b94
+--- /dev/null
++++ b/Documentation/ABI/testing/debugfs-aufs
 @@ -0,0 +1,40 @@
 +What:		/debug/aufs/si_<id>/
 +Date:		March 2009
@@ -42,9 +44,11 @@
 +		When the aufs mount option 'noxino' is specified, it
 +		will be empty. About XINO files, see
 +		Documentation/filesystems/aufs/aufs.5 in detail.
-diff -uprN -x .git linux-2.6.31/Documentation/ABI/testing/sysfs-aufs aufs2-2.6.git/Documentation/ABI/testing/sysfs-aufs
---- linux-2.6.31/Documentation/ABI/testing/sysfs-aufs	1970-01-01 00:00:00.000000000 +0000
-+++ aufs2-2.6.git/Documentation/ABI/testing/sysfs-aufs	2009-09-14 14:52:35.032396516 +0000
+diff --git a/Documentation/ABI/testing/sysfs-aufs b/Documentation/ABI/testing/sysfs-aufs
+new file mode 100644
+index 0000000..ca49330
+--- /dev/null
++++ b/Documentation/ABI/testing/sysfs-aufs
 @@ -0,0 +1,25 @@
 +What:		/sys/fs/aufs/si_<id>/
 +Date:		March 2009
@@ -71,10 +75,12 @@
 +		When the aufs mount option 'noxino' is specified, it
 +		will be empty. About XINO files, see
 +		Documentation/filesystems/aufs/aufs.5 in detail.
-diff -uprN -x .git linux-2.6.31/Documentation/filesystems/aufs/README aufs2-2.6.git/Documentation/filesystems/aufs/README
---- linux-2.6.31/Documentation/filesystems/aufs/README	1970-01-01 00:00:00.000000000 +0000
-+++ aufs2-2.6.git/Documentation/filesystems/aufs/README	2009-09-21 21:48:58.761610020 +0000
-@@ -0,0 +1,342 @@
+diff --git a/Documentation/filesystems/aufs/README b/Documentation/filesystems/aufs/README
+new file mode 100644
+index 0000000..7b5969b
+--- /dev/null
++++ b/Documentation/filesystems/aufs/README
+@@ -0,0 +1,349 @@
 +
 +Aufs2 -- advanced multi layered unification filesystem version 2
 +http://aufs.sf.net
@@ -148,6 +154,7 @@
 +- pseudo hardlink (hardlink over branches)
 +- allow a direct access manually to a file on branch, e.g. bypassing aufs.
 +  including NFS or remote filesystem branch.
++- userspace wrapper for pathconf(3)/fpathconf(3) with _PC_LINK_MAX.
 +- and more...
 +
 +Currently these features are dropped temporary from this version, aufs2.
@@ -203,9 +210,10 @@
 +- generate a ChangeLog file from git-log.
 +- commit the files newly and no log messages. this is not git-pull.
 +
-+Both of aufs2-2.6 and aufs2-standalone trees have a branch whose name is
-+in form of "aufs2-xx" where "xx" represents the linux kernel version,
-+"linux-2.6.xx".
++Both of aufs2-2.6 and aufs2-standalone trees have branches whose name is
++in form of "aufs2" or "aufs2-xx" where "xx" represents the linux kernel
++version, "linux-2.6.xx". For instance, "aufs2" (no -xx) for the latest
++-rc version, and "aufs2-27" for linux-2.6.27,
 +
 +o aufs2-2.6 tree
 +$ git clone --reference /your/linux-2.6/git/tree \
@@ -213,15 +221,13 @@
 +	aufs2-2.6.git
 +- if you don't have linux-2.6 GIT tree, then remove "--reference ..."
 +$ cd aufs2-2.6.git
-+$ git checkout origin/aufs2-xx	# for instance, aufs2-27 for linux-2.6.27
-+				# aufs2 (no -xx) for the latest -rc version.
++$ git checkout origin/aufs2-27
 +
 +o aufs2-standalone tree
 +$ git clone http://git.c3sl.ufpr.br/pub/scm/aufs/aufs2-standalone.git \
 +	aufs2-standalone.git
 +$ cd aufs2-standalone.git
-+$ git checkout origin/aufs2-xx	# for instance, aufs2-27 for linux-2.6.27
-+				# aufs2 (no -xx) for the latest -rc version.
++$ git checkout origin/aufs2-27
 +
 +o aufs2-util tree
 +$ git clone http://git.c3sl.ufpr.br/pub/scm/aufs/aufs2-util.git \
@@ -283,6 +289,8 @@
 +
 +3. Configuration and Compilation
 +----------------------------------------
++Make sure you have git-checkout'ed the correct branch.
++
 +For aufs2-2.6 tree,
 +- enable CONFIG_EXPERIMENTAL and CONFIG_AUFS_FS.
 +- set other aufs configurations if necessary.
@@ -325,8 +333,9 @@
 +
 +And then,
 +- read README in aufs2-util, build and install it
-+- if you want to use readdir(3) in userspace, then run
-+  "make install_ulib" too. And refer to the aufs manual in detail.
++- if you want to use readdir(3) in userspace or pathconf(3) wrapper,
++  then run "make install_ulib" too. And refer to the aufs manual in
++  detail.
 +
 +
 +4. Usage
@@ -352,6 +361,9 @@
 +the one under /tmp/rw. This is called the file based Copy on Write
 +(COW) method.
 +Aufs mount options are described in aufs.5.
++If you run chroot or something and make your aufs as a root directory,
++then you need to customize the shutdown script. See the aufs manual in
++detail.
 +
 +Additionally, there are some sample usages of aufs which are a
 +diskless system with network booting, and LiveCD over NFS.
@@ -399,7 +411,8 @@
 +William Grant made a donation (2009/3).
 +Patrick Lane made a donation (2009/4).
 +The Mail Archive (mail-archive.com) made donations (2009/5).
-+Nippy Networks (Ed Wildgoose) a donation (2009/7).
++Nippy Networks (Ed Wildgoose) made a donation (2009/7).
++New Dream Network, LLC (www.dreamhost.com) made a donation (2009/11).
 +
 +Thank you very much.
 +Donations are always, including future donations, very important and
@@ -417,12 +430,14 @@
 +# Local variables: ;
 +# mode: text;
 +# End: ;
-diff -uprN -x .git linux-2.6.31/Documentation/filesystems/aufs/design/01intro.txt aufs2-2.6.git/Documentation/filesystems/aufs/design/01intro.txt
---- linux-2.6.31/Documentation/filesystems/aufs/design/01intro.txt	1970-01-01 00:00:00.000000000 +0000
-+++ aufs2-2.6.git/Documentation/filesystems/aufs/design/01intro.txt	2009-09-21 21:48:58.761610020 +0000
+diff --git a/Documentation/filesystems/aufs/design/01intro.txt b/Documentation/filesystems/aufs/design/01intro.txt
+new file mode 100644
+index 0000000..d09710a
+--- /dev/null
++++ b/Documentation/filesystems/aufs/design/01intro.txt
 @@ -0,0 +1,137 @@
 +
-+# Copyright (C) 2005-2009 Junjiro R. Okajima
++# Copyright (C) 2005-2010 Junjiro R. Okajima
 +# 
 +# This program is free software; you can redistribute it and/or modify
 +# it under the terms of the GNU General Public License as published by
@@ -514,7 +529,7 @@
 +3. a virtual filesystem which maintains persistent inode number
 +4. reader/writer of files on branches such like an application
 +
-+1. Caller of VFS Helper
++1. Callee of VFS Helper
 +As an ordinary linux filesystem, aufs is a callee of VFS. For instance,
 +unlink(2) from an application reaches sys_unlink() kernel function and
 +then vfs_unlink() is called. vfs_unlink() is one of VFS helper and it
@@ -558,12 +573,14 @@
 +Some people may think it is better to pass such work to user space
 +helper, instead of doing in kernel space. Actually I am still thinking
 +about it. But currently I have implemented it in kernel space.
-diff -uprN -x .git linux-2.6.31/Documentation/filesystems/aufs/design/02struct.txt aufs2-2.6.git/Documentation/filesystems/aufs/design/02struct.txt
---- linux-2.6.31/Documentation/filesystems/aufs/design/02struct.txt	1970-01-01 00:00:00.000000000 +0000
-+++ aufs2-2.6.git/Documentation/filesystems/aufs/design/02struct.txt	2009-09-21 21:48:58.761610020 +0000
-@@ -0,0 +1,218 @@
+diff --git a/Documentation/filesystems/aufs/design/02struct.txt b/Documentation/filesystems/aufs/design/02struct.txt
+new file mode 100644
+index 0000000..4b8e253
+--- /dev/null
++++ b/Documentation/filesystems/aufs/design/02struct.txt
+@@ -0,0 +1,217 @@
 +
-+# Copyright (C) 2005-2009 Junjiro R. Okajima
++# Copyright (C) 2005-2010 Junjiro R. Okajima
 +# 
 +# This program is free software; you can redistribute it and/or modify
 +# it under the terms of the GNU General Public License as published by
@@ -691,7 +708,7 @@
 +reduce the number of consumed disk blocks for these files.
 +
 +
-+Virtual or Vertical Dir
++Virtual or Vertical Dir, and Readdir in Userspace
 +----------------------------------------------------------------------
 +In order to support multiple layers (branches), aufs readdir operation
 +constructs a virtual dir block on memory. For readdir, aufs calls
@@ -738,11 +755,10 @@
 +If aufs didn't adopt the workqueue and changed the privilege of the
 +process, and if the mkdir/write call arises SIGXFSZ or other signal,
 +then the user process might gain a privilege or the generated core file
-+was owned by a superuser. But I have a plan to switch to a new
-+credential approach which will be introduced in linux-2.6.29.
++was owned by a superuser.
 +
 +Also aufs uses the system global workqueue ("events" kernel thread) too
-+for asynchronous tasks, such like handling inotify, re-creating a
++for asynchronous tasks, such like handling inotify/fsnotify, re-creating a
 +whiteout base and etc. This is unrelated to a privilege.
 +Most of aufs operation tries acquiring a rw_semaphore for aufs
 +superblock at the beginning, at the same time waits for the completion
@@ -780,12 +796,14 @@
 +internally and makes change to the new file on the upper writable branch.
 +When the trigger systemcall does not update the timestamps of the parent
 +dir, aufs reverts it after copy-up.
-diff -uprN -x .git linux-2.6.31/Documentation/filesystems/aufs/design/03lookup.txt aufs2-2.6.git/Documentation/filesystems/aufs/design/03lookup.txt
---- linux-2.6.31/Documentation/filesystems/aufs/design/03lookup.txt	1970-01-01 00:00:00.000000000 +0000
-+++ aufs2-2.6.git/Documentation/filesystems/aufs/design/03lookup.txt	2009-09-21 21:48:58.761610020 +0000
+diff --git a/Documentation/filesystems/aufs/design/03lookup.txt b/Documentation/filesystems/aufs/design/03lookup.txt
+new file mode 100644
+index 0000000..60c95ba
+--- /dev/null
++++ b/Documentation/filesystems/aufs/design/03lookup.txt
 @@ -0,0 +1,104 @@
 +
-+# Copyright (C) 2005-2009 Junjiro R. Okajima
++# Copyright (C) 2005-2010 Junjiro R. Okajima
 +# 
 +# This program is free software; you can redistribute it and/or modify
 +# it under the terms of the GNU General Public License as published by
@@ -870,11 +888,11 @@
 +   branch in the "actual operation" (step 4). When this validation
 +   fails, aufs returns EBUSY. ->d_revalidate() (step 3) in aufs still
 +   checks the validation of the dentry on branches.
-+2. Monitor Changes Internally by Inotify
++2. Monitor Changes Internally by Inotify/Fsnotify
 +   Addition to above, in the "actual operation" (step 4) aufs re-lookup
 +   the dentry on the branch, and returns EBUSY if it finds different
 +   dentry.
-+   Additionally, aufs sets the inotify watch for every dir on branches
++   Additionally, aufs sets the inotify/fsnotify watch for every dir on branches
 +   during it is in cache. When the event is notified, aufs registers a
 +   function to kernel 'events' thread by schedule_work(). And the
 +   function sets some special status to the cached aufs dentry and inode
@@ -888,12 +906,14 @@
 +   test, and skip therevalidatin in step 4. It is useful and improves
 +   aufs performance when system surely hide the aufs branches from user,
 +   by over-mounting something (or another method).
-diff -uprN -x .git linux-2.6.31/Documentation/filesystems/aufs/design/04branch.txt aufs2-2.6.git/Documentation/filesystems/aufs/design/04branch.txt
---- linux-2.6.31/Documentation/filesystems/aufs/design/04branch.txt	1970-01-01 00:00:00.000000000 +0000
-+++ aufs2-2.6.git/Documentation/filesystems/aufs/design/04branch.txt	2009-09-21 21:48:58.761610020 +0000
+diff --git a/Documentation/filesystems/aufs/design/04branch.txt b/Documentation/filesystems/aufs/design/04branch.txt
+new file mode 100644
+index 0000000..fb0f7f4
+--- /dev/null
++++ b/Documentation/filesystems/aufs/design/04branch.txt
 @@ -0,0 +1,76 @@
 +
-+# Copyright (C) 2005-2009 Junjiro R. Okajima
++# Copyright (C) 2005-2010 Junjiro R. Okajima
 +# 
 +# This program is free software; you can redistribute it and/or modify
 +# it under the terms of the GNU General Public License as published by
@@ -945,7 +965,7 @@
 +  manipulate branches. It is to discard caches. At deleting a branch,
 +  aufs checks the still cached (and connected) dentries and inodes. If
 +  there are any, then they are all in-use. An inode without its
-+  corresponding dentry can be alive alone (for example, inotify case).
++  corresponding dentry can be alive alone (for example, inotify/fsnotify case).
 +
 +  For the cached one, aufs checks whether the same named entry exists on
 +  other branches.
@@ -968,12 +988,14 @@
 +  - a file on the branch is mmap-ed.
 +  - a regular file on the branch is opened for write and there is no
 +    same named entry on the upper branch.
-diff -uprN -x .git linux-2.6.31/Documentation/filesystems/aufs/design/05wbr_policy.txt aufs2-2.6.git/Documentation/filesystems/aufs/design/05wbr_policy.txt
---- linux-2.6.31/Documentation/filesystems/aufs/design/05wbr_policy.txt	1970-01-01 00:00:00.000000000 +0000
-+++ aufs2-2.6.git/Documentation/filesystems/aufs/design/05wbr_policy.txt	2009-09-21 21:48:58.761610020 +0000
+diff --git a/Documentation/filesystems/aufs/design/05wbr_policy.txt b/Documentation/filesystems/aufs/design/05wbr_policy.txt
+new file mode 100644
+index 0000000..0ad1dd0
+--- /dev/null
++++ b/Documentation/filesystems/aufs/design/05wbr_policy.txt
 @@ -0,0 +1,65 @@
 +
-+# Copyright (C) 2005-2009 Junjiro R. Okajima
++# Copyright (C) 2005-2010 Junjiro R. Okajima
 +# 
 +# This program is free software; you can redistribute it and/or modify
 +# it under the terms of the GNU General Public License as published by
@@ -1037,49 +1059,14 @@
 +  where the source and the target exists and selects the higher
 +  one. If the selected branch is readonly, then aufs follows the
 +  copyup policy.
-diff -uprN -x .git linux-2.6.31/Documentation/filesystems/aufs/design/06fmode_exec.txt aufs2-2.6.git/Documentation/filesystems/aufs/design/06fmode_exec.txt
---- linux-2.6.31/Documentation/filesystems/aufs/design/06fmode_exec.txt	1970-01-01 00:00:00.000000000 +0000
-+++ aufs2-2.6.git/Documentation/filesystems/aufs/design/06fmode_exec.txt	2009-09-21 21:48:58.761610020 +0000
-@@ -0,0 +1,33 @@
-+
-+# Copyright (C) 2005-2009 Junjiro R. Okajima
-+# 
-+# This program is free software; you can redistribute it and/or modify
-+# it under the terms of the GNU General Public License as published by
-+# the Free Software Foundation; either version 2 of the License, or
-+# (at your option) any later version.
-+# 
-+# This program is distributed in the hope that it will be useful,
-+# but WITHOUT ANY WARRANTY; without even the implied warranty of
-+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+# GNU General Public License for more details.
-+# 
-+# You should have received a copy of the GNU General Public License
-+# along with this program; if not, write to the Free Software
-+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
-+
-+FMODE_EXEC and deny_write()
-+----------------------------------------------------------------------
-+Generally Unix prevents an executing file from writing its filedata.
-+In linux it is implemented by deny_write() and allow_write().
-+When a file is executed by exec() family, open_exec() (and sys_uselib())
-+they opens the file and calls deny_write(). If the file is aufs's virtual
-+one, it has no meaning. The file which deny_write() is really necessary
-+is the file on a branch. But the FMODE_EXEC flag is not passed to
-+->open() operation. So aufs adopt a dirty trick.
-+
-+- in order to get FMODE_EXEC, aufs ->lookup() and ->d_revalidate() set
-+  nd->intent.open.file->private_data to nd->intent.open.flags temporary.
-+- in aufs ->open(), when FMODE_EXEC is set in file->private_data, it
-+  calls deny_write() for the file on a branch.
-+- when the aufs file is released, allow_write() for the file on a branch
-+  is called.
-diff -uprN -x .git linux-2.6.31/Documentation/filesystems/aufs/design/07mmap.txt aufs2-2.6.git/Documentation/filesystems/aufs/design/07mmap.txt
---- linux-2.6.31/Documentation/filesystems/aufs/design/07mmap.txt	1970-01-01 00:00:00.000000000 +0000
-+++ aufs2-2.6.git/Documentation/filesystems/aufs/design/07mmap.txt	2009-09-21 21:48:58.761610020 +0000
+diff --git a/Documentation/filesystems/aufs/design/06mmap.txt b/Documentation/filesystems/aufs/design/06mmap.txt
+new file mode 100644
+index 0000000..ae2655f
+--- /dev/null
++++ b/Documentation/filesystems/aufs/design/06mmap.txt
 @@ -0,0 +1,53 @@
 +
-+# Copyright (C) 2005-2009 Junjiro R. Okajima
++# Copyright (C) 2005-2010 Junjiro R. Okajima
 +# 
 +# This program is free software; you can redistribute it and/or modify
 +# it under the terms of the GNU General Public License as published by
@@ -1131,12 +1118,14 @@
 +filedata are copied from the lower (real) file into the Unionfs's
 +virtual one and handles it by address_space operations. Recently Unionfs
 +changed it to this approach which aufs adopted since Jul 2006.
-diff -uprN -x .git linux-2.6.31/Documentation/filesystems/aufs/design/08export.txt aufs2-2.6.git/Documentation/filesystems/aufs/design/08export.txt
---- linux-2.6.31/Documentation/filesystems/aufs/design/08export.txt	1970-01-01 00:00:00.000000000 +0000
-+++ aufs2-2.6.git/Documentation/filesystems/aufs/design/08export.txt	2009-09-21 21:48:58.761610020 +0000
+diff --git a/Documentation/filesystems/aufs/design/07export.txt b/Documentation/filesystems/aufs/design/07export.txt
+new file mode 100644
+index 0000000..8e2422b
+--- /dev/null
++++ b/Documentation/filesystems/aufs/design/07export.txt
 @@ -0,0 +1,59 @@
 +
-+# Copyright (C) 2005-2009 Junjiro R. Okajima
++# Copyright (C) 2005-2010 Junjiro R. Okajima
 +# 
 +# This program is free software; you can redistribute it and/or modify
 +# it under the terms of the GNU General Public License as published by
@@ -1194,12 +1183,14 @@
 +  convert it into ESTALE for NFSD.
 +- readdir(): call lockdep_on/off() because filldir in NFSD calls
 +  lookup_one_len(), vfs_getattr(), encode_fh() and others.
-diff -uprN -x .git linux-2.6.31/Documentation/filesystems/aufs/design/09shwh.txt aufs2-2.6.git/Documentation/filesystems/aufs/design/09shwh.txt
---- linux-2.6.31/Documentation/filesystems/aufs/design/09shwh.txt	1970-01-01 00:00:00.000000000 +0000
-+++ aufs2-2.6.git/Documentation/filesystems/aufs/design/09shwh.txt	2009-09-21 21:48:58.761610020 +0000
+diff --git a/Documentation/filesystems/aufs/design/08shwh.txt b/Documentation/filesystems/aufs/design/08shwh.txt
+new file mode 100644
+index 0000000..36e4b3c
+--- /dev/null
++++ b/Documentation/filesystems/aufs/design/08shwh.txt
 @@ -0,0 +1,53 @@
 +
-+# Copyright (C) 2005-2009 Junjiro R. Okajima
++# Copyright (C) 2005-2010 Junjiro R. Okajima
 +# 
 +# This program is free software; you can redistribute it and/or modify
 +# it under the terms of the GNU General Public License as published by
@@ -1251,12 +1242,14 @@
 +
 +This new squashfs archive can be stored on the boot device and the
 +initramfs will use it to replace the old one at the next boot.
-diff -uprN -x .git linux-2.6.31/Documentation/filesystems/aufs/design/99plan.txt aufs2-2.6.git/Documentation/filesystems/aufs/design/99plan.txt
---- linux-2.6.31/Documentation/filesystems/aufs/design/99plan.txt	1970-01-01 00:00:00.000000000 +0000
-+++ aufs2-2.6.git/Documentation/filesystems/aufs/design/99plan.txt	2009-09-21 21:48:58.765776628 +0000
+diff --git a/Documentation/filesystems/aufs/design/99plan.txt b/Documentation/filesystems/aufs/design/99plan.txt
+new file mode 100644
+index 0000000..5dddd41
+--- /dev/null
++++ b/Documentation/filesystems/aufs/design/99plan.txt
 @@ -0,0 +1,96 @@
 +
-+# Copyright (C) 2005-2009 Junjiro R. Okajima
++# Copyright (C) 2005-2010 Junjiro R. Okajima
 +# 
 +# This program is free software; you can redistribute it and/or modify
 +# it under the terms of the GNU General Public License as published by
@@ -1351,29 +1344,33 @@
 +Opened File) is specified (by default), aufs returns the filedata from
 +/new.
 +Otherwise from /new.
-diff -uprN -x .git linux-2.6.31/fs/Kconfig aufs2-2.6.git/fs/Kconfig
---- linux-2.6.31/fs/Kconfig	2009-09-09 22:13:59.000000000 +0000
-+++ aufs2-2.6.git/fs/Kconfig	2009-09-21 21:49:23.315008102 +0000
-@@ -187,6 +187,7 @@ source "fs/sysv/Kconfig"
+diff --git a/fs/Kconfig b/fs/Kconfig
+index 64d44ef..3e1f2f0 100644
+--- a/fs/Kconfig
++++ b/fs/Kconfig
+@@ -188,6 +188,7 @@ source "fs/romfs/Kconfig"
+ source "fs/sysv/Kconfig"
  source "fs/ufs/Kconfig"
  source "fs/exofs/Kconfig"
- source "fs/nilfs2/Kconfig"
 +source "fs/aufs/Kconfig"
  
  endif # MISC_FILESYSTEMS
  
-diff -uprN -x .git linux-2.6.31/fs/Makefile aufs2-2.6.git/fs/Makefile
---- linux-2.6.31/fs/Makefile	2009-09-09 22:13:59.000000000 +0000
-+++ aufs2-2.6.git/fs/Makefile	2009-09-14 14:52:35.065948532 +0000
+diff --git a/fs/Makefile b/fs/Makefile
+index af6d047..dba1ce1 100644
+--- a/fs/Makefile
++++ b/fs/Makefile
 @@ -124,3 +124,4 @@ obj-$(CONFIG_OCFS2_FS)		+= ocfs2/
  obj-$(CONFIG_BTRFS_FS)		+= btrfs/
  obj-$(CONFIG_GFS2_FS)           += gfs2/
  obj-$(CONFIG_EXOFS_FS)          += exofs/
 +obj-$(CONFIG_AUFS_FS)           += aufs/
-diff -uprN -x .git linux-2.6.31/fs/aufs/Kconfig aufs2-2.6.git/fs/aufs/Kconfig
---- linux-2.6.31/fs/aufs/Kconfig	1970-01-01 00:00:00.000000000 +0000
-+++ aufs2-2.6.git/fs/aufs/Kconfig	2009-09-21 21:49:23.374524295 +0000
-@@ -0,0 +1,140 @@
+diff --git a/fs/aufs/Kconfig b/fs/aufs/Kconfig
+new file mode 100644
+index 0000000..4c9f524
+--- /dev/null
++++ b/fs/aufs/Kconfig
+@@ -0,0 +1,172 @@
 +config AUFS_FS
 +	bool "Aufs (Advanced multi layered unification filesystem) support"
 +	depends on EXPERIMENTAL
@@ -1420,16 +1417,28 @@
 +	resources and has a minor impact to performance.
 +endchoice
 +
-+config AUFS_HINOTIFY
-+	bool "Use inotify to detect actions on a branch"
-+	depends on INOTIFY
++config AUFS_HNOTIFY
++	bool "Detect direct branch access (bypassing aufs)"
 +	help
 +	If you want to modify files on branches directly, eg. bypassing aufs,
 +	and want aufs to detect the changes of them fully, then enable this
-+	option and use 'udba=inotify' mount option.
++	option and use 'udba=notify' mount option.
 +	It will have a negative impact to the performance.
 +	See detail in aufs.5.
 +
++if AUFS_HNOTIFY
++choice
++	prompt ""
++	default AUFS_HFSNOTIFY
++config AUFS_HFSNOTIFY
++	bool "fsnotify"
++	select FSNOTIFY
++config AUFS_HINOTIFY
++	bool "inotify (DEPRECATED)"
++	depends on INOTIFY
++endchoice
++endif
++
 +config AUFS_EXPORT
 +	bool "NFS-exportable aufs"
 +	depends on EXPORTFS = y
@@ -1438,6 +1447,16 @@
 +	option. There are several requirements for this configuration.
 +	See detail in aufs.5.
 +
++config AUFS_INO_T_64
++	bool
++	depends on AUFS_EXPORT
++	depends on 64BIT && !(ALPHA || S390)
++	default y
++	help
++	Automatic configuration for internal use.
++	/* typedef unsigned long/int __kernel_ino_t */
++	/* alpha and s390x are int */
++
 +config AUFS_RDU
 +	bool "Readdir in userspace"
 +	help
@@ -1446,6 +1465,17 @@
 +	environment variables for your readdir(3).
 +	See detail in aufs.5.
 +
++config AUFS_SP_IATTR
++	bool "Respect the attributes (mtime/ctime mainly) of special files"
++	help
++	When you write something to a special file, some attributes of it
++	(mtime/ctime mainly) may be updated. Generally such updates are
++	less important (actually some device drivers and NFS ignore
++	it). But some applications (such like test program) requires
++	such updates. If you need these updates, then enable this
++	configuration which introduces some overhead.
++	Currently this configuration handles FIFO only.
++
 +config AUFS_SHWH
 +	bool "Show whiteouts"
 +	help
@@ -1477,19 +1507,19 @@
 +	It implements the internal poll(2) operation which is
 +	implemented by fuse only (curretnly).
 +
-+config AUFS_DEBUG
-+	bool "Debug aufs"
++config AUFS_POLL
++	bool
 +	help
-+	Enable this to compile aufs internal debug code.
-+	It will have a negative impact to the performance.
++	Automatic configuration for internal use.
 +
-+config AUFS_MAGIC_SYSRQ
-+	bool
-+	depends on AUFS_DEBUG && MAGIC_SYSRQ
++config AUFS_BR_HFSPLUS
++	bool "Hfsplus as an aufs branch"
++	depends on HFSPLUS_FS
 +	default y
 +	help
-+	Automatic configuration for internal use.
-+	When aufs supports Magic SysRq, enabled automatically.
++	If you want to use hfsplus fs as an aufs branch fs, then enable
++	this option. This option introduces a small overhead at
++	copying-up a file on hfsplus.
 +
 +config AUFS_BDEV_LOOP
 +	bool
@@ -1499,28 +1529,35 @@
 +	Automatic configuration for internal use.
 +	Convert =[ym] into =y.
 +
-+config AUFS_INO_T_64
-+	bool
-+	depends on AUFS_EXPORT
-+	depends on 64BIT && !(ALPHA || S390)
-+	default y
++config AUFS_DEBUG
++	bool "Debug aufs"
 +	help
-+	Automatic configuration for internal use.
-+	/* typedef unsigned long/int __kernel_ino_t */
-+	/* alpha and s390x are int */
++	Enable this to compile aufs internal debug code.
++	It will have a negative impact to the performance.
 +
-+config AUFS_POLL
++config AUFS_MAGIC_SYSRQ
 +	bool
++	depends on AUFS_DEBUG && MAGIC_SYSRQ
++	default y
 +	help
 +	Automatic configuration for internal use.
++	When aufs supports Magic SysRq, enabled automatically.
 +endif
-diff -uprN -x .git linux-2.6.31/fs/aufs/Makefile aufs2-2.6.git/fs/aufs/Makefile
---- linux-2.6.31/fs/aufs/Makefile	1970-01-01 00:00:00.000000000 +0000
-+++ aufs2-2.6.git/fs/aufs/Makefile	2009-09-21 21:49:23.374524295 +0000
-@@ -0,0 +1,23 @@
+diff --git a/fs/aufs/Makefile b/fs/aufs/Makefile
+new file mode 100644
+index 0000000..a093c45
+--- /dev/null
++++ b/fs/aufs/Makefile
+@@ -0,0 +1,33 @@
 +
 +include ${srctree}/${src}/magic.mk
 +
++# cf. include/linux/kernel.h
++# enable pr_debug
++ccflags-y += -DDEBUG
++ccflags-y += -D'pr_fmt(fmt)="aufs %s:%d:%s[%d]: " fmt, \
++	__func__, __LINE__, current->comm, current->pid'
++
 +obj-$(CONFIG_AUFS_FS) += aufs.o
 +aufs-y := module.o sbinfo.o super.o branch.o xino.o sysaufs.o opts.o \
 +	wkq.o vfsub.o dcsub.o \
@@ -1535,18 +1572,24 @@
 +aufs-$(CONFIG_SYSFS) += sysfs.o
 +aufs-$(CONFIG_DEBUG_FS) += dbgaufs.o
 +aufs-$(CONFIG_AUFS_BDEV_LOOP) += loop.o
++aufs-$(CONFIG_AUFS_HNOTIFY) += hnotify.o
++aufs-$(CONFIG_AUFS_HFSNOTIFY) += hfsnotify.o
 +aufs-$(CONFIG_AUFS_HINOTIFY) += hinotify.o
 +aufs-$(CONFIG_AUFS_EXPORT) += export.o
 +aufs-$(CONFIG_AUFS_POLL) += poll.o
 +aufs-$(CONFIG_AUFS_RDU) += rdu.o
++aufs-$(CONFIG_AUFS_SP_IATTR) += f_op_sp.o
<<Diff was trimmed, longer than 597 lines>>

---- CVS-web:
    http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/packages/kernel/kernel-aufs2.patch?r1=1.6&r2=1.6.2.1&f=u



More information about the pld-cvs-commit mailing list