packages: kernel/kernel-aufs2.patch - up for 3.0

arekm arekm at pld-linux.org
Fri Jul 22 08:44:28 CEST 2011


Author: arekm                        Date: Fri Jul 22 06:44:28 2011 GMT
Module: packages                      Tag: HEAD
---- Log message:
- up for 3.0

---- Files affected:
packages/kernel:
   kernel-aufs2.patch (1.22 -> 1.23) 

---- Diffs:

================================================================
Index: packages/kernel/kernel-aufs2.patch
diff -u packages/kernel/kernel-aufs2.patch:1.22 packages/kernel/kernel-aufs2.patch:1.23
--- packages/kernel/kernel-aufs2.patch:1.22	Tue Jul 12 14:49:24 2011
+++ packages/kernel/kernel-aufs2.patch	Fri Jul 22 08:44:23 2011
@@ -259,11 +259,12 @@
 index a93b3b7..024282c 100644
 --- a/security/commoncap.c
 +++ b/security/commoncap.c
-@@ -971,3 +971,4 @@ int cap_file_mmap(struct file *file, unsigned long reqprot,
+@@ -978,4 +978,5 @@
  	}
  	return ret;
  }
 +EXPORT_SYMBOL(cap_file_mmap);
+ 
 diff --git a/security/device_cgroup.c b/security/device_cgroup.c
 index 1be6826..215278c 100644
 --- a/security/device_cgroup.c
@@ -362,7 +363,7 @@
  			    unsigned long prot)
 diff -urN /usr/share/empty/Documentation/ABI/testing/debugfs-aufs linux/Documentation/ABI/testing/debugfs-aufs
 --- /usr/share/empty/Documentation/ABI/testing/debugfs-aufs	1970-01-01 01:00:00.000000000 +0100
-+++ linux/Documentation/ABI/testing/debugfs-aufs	2011-07-11 11:34:24.068331673 +0200
++++ linux/Documentation/ABI/testing/debugfs-aufs	2011-03-17 10:46:59.000000000 +0100
 @@ -0,0 +1,37 @@
 +What:		/debug/aufs/si_<id>/
 +Date:		March 2009
@@ -403,7 +404,7 @@
 +		will be empty. About XINO files, see the aufs manual.
 diff -urN /usr/share/empty/Documentation/ABI/testing/sysfs-aufs linux/Documentation/ABI/testing/sysfs-aufs
 --- /usr/share/empty/Documentation/ABI/testing/sysfs-aufs	1970-01-01 01:00:00.000000000 +0100
-+++ linux/Documentation/ABI/testing/sysfs-aufs	2011-07-11 11:34:24.068331673 +0200
++++ linux/Documentation/ABI/testing/sysfs-aufs	2011-03-17 10:46:59.000000000 +0100
 @@ -0,0 +1,24 @@
 +What:		/sys/fs/aufs/si_<id>/
 +Date:		March 2009
@@ -431,7 +432,7 @@
 +		will be empty. About XINO files, see the aufs manual.
 diff -urN /usr/share/empty/fs/aufs/aufs.h linux/fs/aufs/aufs.h
 --- /usr/share/empty/fs/aufs/aufs.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/aufs.h	2011-07-11 11:34:24.070331673 +0200
++++ linux/fs/aufs/aufs.h	2011-07-22 08:26:47.854303107 +0200
 @@ -0,0 +1,60 @@
 +/*
 + * Copyright (C) 2005-2011 Junjiro R. Okajima
@@ -495,7 +496,7 @@
 +#endif /* __AUFS_H__ */
 diff -urN /usr/share/empty/fs/aufs/branch.c linux/fs/aufs/branch.c
 --- /usr/share/empty/fs/aufs/branch.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/branch.c	2011-07-11 11:34:24.070331673 +0200
++++ linux/fs/aufs/branch.c	2011-03-17 10:46:59.000000000 +0100
 @@ -0,0 +1,1160 @@
 +/*
 + * Copyright (C) 2005-2011 Junjiro R. Okajima
@@ -1659,7 +1660,7 @@
 +}
 diff -urN /usr/share/empty/fs/aufs/branch.h linux/fs/aufs/branch.h
 --- /usr/share/empty/fs/aufs/branch.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/branch.h	2011-07-11 11:34:24.070331673 +0200
++++ linux/fs/aufs/branch.h	2011-03-17 10:46:59.000000000 +0100
 @@ -0,0 +1,233 @@
 +/*
 + * Copyright (C) 2005-2011 Junjiro R. Okajima
@@ -1896,7 +1897,7 @@
 +#endif /* __AUFS_BRANCH_H__ */
 diff -urN /usr/share/empty/fs/aufs/conf.mk linux/fs/aufs/conf.mk
 --- /usr/share/empty/fs/aufs/conf.mk	1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/conf.mk	2011-07-11 11:34:24.071331673 +0200
++++ linux/fs/aufs/conf.mk	2011-07-22 08:26:47.854303107 +0200
 @@ -0,0 +1,38 @@
 +
 +AuConfStr = CONFIG_AUFS_FS=${CONFIG_AUFS_FS}
@@ -1938,7 +1939,7 @@
 +-include ${srctree}/${src}/conf_priv.mk
 diff -urN /usr/share/empty/fs/aufs/cpup.c linux/fs/aufs/cpup.c
 --- /usr/share/empty/fs/aufs/cpup.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/cpup.c	2011-07-11 11:34:24.071331673 +0200
++++ linux/fs/aufs/cpup.c	2011-03-17 10:46:59.000000000 +0100
 @@ -0,0 +1,1063 @@
 +/*
 + * Copyright (C) 2005-2011 Junjiro R. Okajima
@@ -3005,7 +3006,7 @@
 +}
 diff -urN /usr/share/empty/fs/aufs/cpup.h linux/fs/aufs/cpup.h
 --- /usr/share/empty/fs/aufs/cpup.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/cpup.h	2011-07-11 11:34:24.071331673 +0200
++++ linux/fs/aufs/cpup.h	2011-03-17 10:46:59.000000000 +0100
 @@ -0,0 +1,83 @@
 +/*
 + * Copyright (C) 2005-2011 Junjiro R. Okajima
@@ -3092,7 +3093,7 @@
 +#endif /* __AUFS_CPUP_H__ */
 diff -urN /usr/share/empty/fs/aufs/dbgaufs.c linux/fs/aufs/dbgaufs.c
 --- /usr/share/empty/fs/aufs/dbgaufs.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/dbgaufs.c	2011-07-11 11:34:24.071331673 +0200
++++ linux/fs/aufs/dbgaufs.c	2011-03-17 10:46:59.000000000 +0100
 @@ -0,0 +1,334 @@
 +/*
 + * Copyright (C) 2005-2011 Junjiro R. Okajima
@@ -3430,7 +3431,7 @@
 +}
 diff -urN /usr/share/empty/fs/aufs/dbgaufs.h linux/fs/aufs/dbgaufs.h
 --- /usr/share/empty/fs/aufs/dbgaufs.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/dbgaufs.h	2011-07-11 11:34:24.071331673 +0200
++++ linux/fs/aufs/dbgaufs.h	2011-03-17 10:46:59.000000000 +0100
 @@ -0,0 +1,52 @@
 +/*
 + * Copyright (C) 2005-2011 Junjiro R. Okajima
@@ -3486,7 +3487,7 @@
 +#endif /* __DBGAUFS_H__ */
 diff -urN /usr/share/empty/fs/aufs/dcsub.c linux/fs/aufs/dcsub.c
 --- /usr/share/empty/fs/aufs/dcsub.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/dcsub.c	2011-07-11 11:34:24.071331673 +0200
++++ linux/fs/aufs/dcsub.c	2011-03-17 10:46:59.000000000 +0100
 @@ -0,0 +1,243 @@
 +/*
 + * Copyright (C) 2005-2011 Junjiro R. Okajima
@@ -3733,7 +3734,7 @@
 +}
 diff -urN /usr/share/empty/fs/aufs/dcsub.h linux/fs/aufs/dcsub.h
 --- /usr/share/empty/fs/aufs/dcsub.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/dcsub.h	2011-07-11 11:34:24.071331673 +0200
++++ linux/fs/aufs/dcsub.h	2011-03-17 10:46:59.000000000 +0100
 @@ -0,0 +1,95 @@
 +/*
 + * Copyright (C) 2005-2011 Junjiro R. Okajima
@@ -3832,7 +3833,7 @@
 +#endif /* __AUFS_DCSUB_H__ */
 diff -urN /usr/share/empty/fs/aufs/debug.c linux/fs/aufs/debug.c
 --- /usr/share/empty/fs/aufs/debug.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/debug.c	2011-07-11 11:34:24.071331673 +0200
++++ linux/fs/aufs/debug.c	2011-07-22 08:26:47.854303107 +0200
 @@ -0,0 +1,479 @@
 +/*
 + * Copyright (C) 2005-2011 Junjiro R. Okajima
@@ -4315,7 +4316,7 @@
 +}
 diff -urN /usr/share/empty/fs/aufs/debug.h linux/fs/aufs/debug.h
 --- /usr/share/empty/fs/aufs/debug.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/debug.h	2011-07-11 11:34:24.072331673 +0200
++++ linux/fs/aufs/debug.h	2011-07-22 08:26:47.854303107 +0200
 @@ -0,0 +1,252 @@
 +/*
 + * Copyright (C) 2005-2011 Junjiro R. Okajima
@@ -4571,7 +4572,7 @@
 +#endif /* __AUFS_DEBUG_H__ */
 diff -urN /usr/share/empty/fs/aufs/dentry.c linux/fs/aufs/dentry.c
 --- /usr/share/empty/fs/aufs/dentry.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/dentry.c	2011-07-11 11:34:24.072331673 +0200
++++ linux/fs/aufs/dentry.c	2011-07-22 08:26:47.854303107 +0200
 @@ -0,0 +1,1140 @@
 +/*
 + * Copyright (C) 2005-2011 Junjiro R. Okajima
@@ -5715,7 +5716,7 @@
 +};
 diff -urN /usr/share/empty/fs/aufs/dentry.h linux/fs/aufs/dentry.h
 --- /usr/share/empty/fs/aufs/dentry.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/dentry.h	2011-07-11 11:34:24.072331673 +0200
++++ linux/fs/aufs/dentry.h	2011-07-22 08:26:47.854303107 +0200
 @@ -0,0 +1,238 @@
 +/*
 + * Copyright (C) 2005-2011 Junjiro R. Okajima
@@ -5957,7 +5958,7 @@
 +#endif /* __AUFS_DENTRY_H__ */
 diff -urN /usr/share/empty/fs/aufs/dinfo.c linux/fs/aufs/dinfo.c
 --- /usr/share/empty/fs/aufs/dinfo.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/dinfo.c	2011-07-11 11:34:24.072331673 +0200
++++ linux/fs/aufs/dinfo.c	2011-07-22 08:26:47.854303107 +0200
 @@ -0,0 +1,543 @@
 +/*
 + * Copyright (C) 2005-2011 Junjiro R. Okajima
@@ -6504,7 +6505,7 @@
 +}
 diff -urN /usr/share/empty/fs/aufs/dir.c linux/fs/aufs/dir.c
 --- /usr/share/empty/fs/aufs/dir.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/dir.c	2011-07-11 11:34:24.072331673 +0200
++++ linux/fs/aufs/dir.c	2011-03-17 10:46:59.000000000 +0100
 @@ -0,0 +1,647 @@
 +/*
 + * Copyright (C) 2005-2011 Junjiro R. Okajima
@@ -7155,7 +7156,7 @@
 +};
 diff -urN /usr/share/empty/fs/aufs/dir.h linux/fs/aufs/dir.h
 --- /usr/share/empty/fs/aufs/dir.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/dir.h	2011-07-11 11:34:24.072331673 +0200
++++ linux/fs/aufs/dir.h	2011-03-17 10:46:59.000000000 +0100
 @@ -0,0 +1,138 @@
 +/*
 + * Copyright (C) 2005-2011 Junjiro R. Okajima
@@ -7297,7 +7298,7 @@
 +#endif /* __AUFS_DIR_H__ */
 diff -urN /usr/share/empty/fs/aufs/dynop.c linux/fs/aufs/dynop.c
 --- /usr/share/empty/fs/aufs/dynop.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/dynop.c	2011-07-11 11:34:24.072331673 +0200
++++ linux/fs/aufs/dynop.c	2011-07-22 08:26:47.854303107 +0200
 @@ -0,0 +1,377 @@
 +/*
 + * Copyright (C) 2010-2011 Junjiro R. Okajima
@@ -7678,7 +7679,7 @@
 +}
 diff -urN /usr/share/empty/fs/aufs/dynop.h linux/fs/aufs/dynop.h
 --- /usr/share/empty/fs/aufs/dynop.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/dynop.h	2011-07-11 11:34:24.073331673 +0200
++++ linux/fs/aufs/dynop.h	2011-07-22 08:26:47.854303107 +0200
 @@ -0,0 +1,80 @@
 +/*
 + * Copyright (C) 2010-2011 Junjiro R. Okajima
@@ -7762,7 +7763,7 @@
 +#endif /* __AUFS_DYNOP_H__ */
 diff -urN /usr/share/empty/fs/aufs/export.c linux/fs/aufs/export.c
 --- /usr/share/empty/fs/aufs/export.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/export.c	2011-07-11 11:34:24.073331673 +0200
++++ linux/fs/aufs/export.c	2011-07-22 08:26:47.854303107 +0200
 @@ -0,0 +1,805 @@
 +/*
 + * Copyright (C) 2005-2011 Junjiro R. Okajima
@@ -8571,7 +8572,7 @@
 +}
 diff -urN /usr/share/empty/fs/aufs/file.c linux/fs/aufs/file.c
 --- /usr/share/empty/fs/aufs/file.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/file.c	2011-07-11 11:34:24.073331673 +0200
++++ linux/fs/aufs/file.c	2011-07-22 08:26:47.857636522 +0200
 @@ -0,0 +1,676 @@
 +/*
 + * Copyright (C) 2005-2011 Junjiro R. Okajima
@@ -9251,7 +9252,7 @@
 +};
 diff -urN /usr/share/empty/fs/aufs/file.h linux/fs/aufs/file.h
 --- /usr/share/empty/fs/aufs/file.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/file.h	2011-07-11 11:34:24.073331673 +0200
++++ linux/fs/aufs/file.h	2011-07-22 08:26:47.857636522 +0200
 @@ -0,0 +1,293 @@
 +/*
 + * Copyright (C) 2005-2011 Junjiro R. Okajima
@@ -9548,7 +9549,7 @@
 +#endif /* __AUFS_FILE_H__ */
 diff -urN /usr/share/empty/fs/aufs/finfo.c linux/fs/aufs/finfo.c
 --- /usr/share/empty/fs/aufs/finfo.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/finfo.c	2011-07-11 11:34:24.074331673 +0200
++++ linux/fs/aufs/finfo.c	2011-07-22 08:26:47.857636522 +0200
 @@ -0,0 +1,153 @@
 +/*
 + * Copyright (C) 2005-2011 Junjiro R. Okajima
@@ -9705,8 +9706,8 @@
 +}
 diff -urN /usr/share/empty/fs/aufs/f_op.c linux/fs/aufs/f_op.c
 --- /usr/share/empty/fs/aufs/f_op.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/f_op.c	2011-07-11 11:34:24.073331673 +0200
-@@ -0,0 +1,728 @@
++++ linux/fs/aufs/f_op.c	2011-07-22 08:26:47.857636522 +0200
+@@ -0,0 +1,731 @@
 +/*
 + * Copyright (C) 2005-2011 Junjiro R. Okajima
 + *
@@ -10032,8 +10033,11 @@
 +	err = -EINVAL;
 +	h_file = au_hf_top(file);
 +	if (au_test_loopback_kthread()) {
-+		file->f_mapping = h_file->f_mapping;
-+		smp_mb(); /* unnecessary? */
++		au_warn_loopback(h_file->f_dentry->d_sb);
++		if (file->f_mapping != h_file->f_mapping) {
++			file->f_mapping = h_file->f_mapping;
++			smp_mb(); /* unnecessary? */
++		}
 +	}
 +	err = vfsub_splice_to(h_file, ppos, pipe, len, flags);
 +	/* todo: necessasry? */
@@ -10437,7 +10441,7 @@
 +};
 diff -urN /usr/share/empty/fs/aufs/f_op_sp.c linux/fs/aufs/f_op_sp.c
 --- /usr/share/empty/fs/aufs/f_op_sp.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/f_op_sp.c	2011-07-11 11:34:24.073331673 +0200
++++ linux/fs/aufs/f_op_sp.c	2011-03-17 10:46:59.000000000 +0100
 @@ -0,0 +1,299 @@
 +/*
 + * Copyright (C) 2005-2011 Junjiro R. Okajima
@@ -10740,7 +10744,7 @@
 +}
 diff -urN /usr/share/empty/fs/aufs/fstype.h linux/fs/aufs/fstype.h
 --- /usr/share/empty/fs/aufs/fstype.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/fstype.h	2011-07-11 11:34:24.074331673 +0200
++++ linux/fs/aufs/fstype.h	2011-03-17 10:46:59.000000000 +0100
 @@ -0,0 +1,497 @@
 +/*
 + * Copyright (C) 2005-2011 Junjiro R. Okajima
@@ -11241,7 +11245,7 @@
 +#endif /* __AUFS_FSTYPE_H__ */
 diff -urN /usr/share/empty/fs/aufs/hfsnotify.c linux/fs/aufs/hfsnotify.c
 --- /usr/share/empty/fs/aufs/hfsnotify.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/hfsnotify.c	2011-07-11 11:34:24.074331673 +0200
++++ linux/fs/aufs/hfsnotify.c	2011-03-17 10:46:59.000000000 +0100
 @@ -0,0 +1,247 @@
 +/*
 + * Copyright (C) 2005-2011 Junjiro R. Okajima
@@ -11492,7 +11496,7 @@
 +};
 diff -urN /usr/share/empty/fs/aufs/hfsplus.c linux/fs/aufs/hfsplus.c
 --- /usr/share/empty/fs/aufs/hfsplus.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/hfsplus.c	2011-07-11 11:34:24.074331673 +0200
++++ linux/fs/aufs/hfsplus.c	2011-03-17 10:46:59.000000000 +0100
 @@ -0,0 +1,58 @@
 +/*
 + * Copyright (C) 2010-2011 Junjiro R. Okajima
@@ -11554,7 +11558,7 @@
 +}
 diff -urN /usr/share/empty/fs/aufs/hnotify.c linux/fs/aufs/hnotify.c
 --- /usr/share/empty/fs/aufs/hnotify.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/hnotify.c	2011-07-11 11:34:24.074331673 +0200
++++ linux/fs/aufs/hnotify.c	2011-03-17 10:46:59.000000000 +0100
 @@ -0,0 +1,709 @@
 +/*
 + * Copyright (C) 2005-2011 Junjiro R. Okajima
@@ -12267,7 +12271,7 @@
 +}
 diff -urN /usr/share/empty/fs/aufs/iinfo.c linux/fs/aufs/iinfo.c
 --- /usr/share/empty/fs/aufs/iinfo.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/iinfo.c	2011-07-11 11:34:24.075331673 +0200
++++ linux/fs/aufs/iinfo.c	2011-03-17 10:46:59.000000000 +0100
 @@ -0,0 +1,264 @@
 +/*
 + * Copyright (C) 2005-2011 Junjiro R. Okajima
@@ -12535,7 +12539,7 @@
 +}
 diff -urN /usr/share/empty/fs/aufs/inode.c linux/fs/aufs/inode.c
 --- /usr/share/empty/fs/aufs/inode.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/inode.c	2011-07-11 11:34:24.075331673 +0200
++++ linux/fs/aufs/inode.c	2011-03-17 10:46:59.000000000 +0100
 @@ -0,0 +1,471 @@
 +/*
 + * Copyright (C) 2005-2011 Junjiro R. Okajima
@@ -13010,7 +13014,7 @@
 +}
 diff -urN /usr/share/empty/fs/aufs/inode.h linux/fs/aufs/inode.h
 --- /usr/share/empty/fs/aufs/inode.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/inode.h	2011-07-11 11:34:24.075331673 +0200
++++ linux/fs/aufs/inode.h	2011-03-17 10:46:59.000000000 +0100
 @@ -0,0 +1,546 @@
 +/*
 + * Copyright (C) 2005-2011 Junjiro R. Okajima
@@ -13560,7 +13564,7 @@
 +#endif /* __AUFS_INODE_H__ */
 diff -urN /usr/share/empty/fs/aufs/ioctl.c linux/fs/aufs/ioctl.c
 --- /usr/share/empty/fs/aufs/ioctl.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/ioctl.c	2011-07-11 11:34:24.075331673 +0200
++++ linux/fs/aufs/ioctl.c	2011-03-17 10:46:59.000000000 +0100
 @@ -0,0 +1,158 @@
 +/*
 + * Copyright (C) 2005-2011 Junjiro R. Okajima
@@ -13722,7 +13726,7 @@
 +#endif
 diff -urN /usr/share/empty/fs/aufs/i_op_add.c linux/fs/aufs/i_op_add.c
 --- /usr/share/empty/fs/aufs/i_op_add.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/i_op_add.c	2011-07-11 11:34:24.074331673 +0200
++++ linux/fs/aufs/i_op_add.c	2011-07-22 08:26:47.857636522 +0200
 @@ -0,0 +1,711 @@
 +/*
 + * Copyright (C) 2005-2011 Junjiro R. Okajima
@@ -14437,7 +14441,7 @@
 +}
 diff -urN /usr/share/empty/fs/aufs/i_op.c linux/fs/aufs/i_op.c
 --- /usr/share/empty/fs/aufs/i_op.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/i_op.c	2011-07-11 11:34:24.074331673 +0200
++++ linux/fs/aufs/i_op.c	2011-03-17 10:46:59.000000000 +0100
 @@ -0,0 +1,976 @@
 +/*
 + * Copyright (C) 2005-2011 Junjiro R. Okajima
@@ -15417,7 +15421,7 @@
 +};
 diff -urN /usr/share/empty/fs/aufs/i_op_del.c linux/fs/aufs/i_op_del.c
 --- /usr/share/empty/fs/aufs/i_op_del.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/i_op_del.c	2011-07-11 11:34:24.075331673 +0200
++++ linux/fs/aufs/i_op_del.c	2011-03-17 10:46:59.000000000 +0100
 @@ -0,0 +1,481 @@
 +/*
 + * Copyright (C) 2005-2011 Junjiro R. Okajima
@@ -15902,7 +15906,7 @@
 +}
 diff -urN /usr/share/empty/fs/aufs/i_op_ren.c linux/fs/aufs/i_op_ren.c
 --- /usr/share/empty/fs/aufs/i_op_ren.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/i_op_ren.c	2011-07-11 11:34:24.075331673 +0200
++++ linux/fs/aufs/i_op_ren.c	2011-03-17 10:46:59.000000000 +0100
 @@ -0,0 +1,1017 @@
 +/*
 + * Copyright (C) 2005-2011 Junjiro R. Okajima
@@ -16923,7 +16927,7 @@
 +}
 diff -urN /usr/share/empty/fs/aufs/Kconfig linux/fs/aufs/Kconfig
 --- /usr/share/empty/fs/aufs/Kconfig	1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/Kconfig	2011-07-11 11:34:24.070331673 +0200
++++ linux/fs/aufs/Kconfig	2011-07-22 08:26:47.854303107 +0200
 @@ -0,0 +1,203 @@
 +config AUFS_FS
 +	tristate "Aufs (Advanced multi layered unification filesystem) support"
@@ -17130,8 +17134,8 @@
 +endif
 diff -urN /usr/share/empty/fs/aufs/loop.c linux/fs/aufs/loop.c
 --- /usr/share/empty/fs/aufs/loop.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/loop.c	2011-07-11 11:34:24.075331673 +0200
-@@ -0,0 +1,63 @@
++++ linux/fs/aufs/loop.c	2011-07-22 08:26:47.857636522 +0200
+@@ -0,0 +1,133 @@
 +/*
 + * Copyright (C) 2005-2011 Junjiro R. Okajima
 + *
@@ -17195,10 +17199,80 @@
 +
 +	return ret;
 +}
++
++/* ---------------------------------------------------------------------- */
++
++#define au_warn_loopback_step	16
++static int au_warn_loopback_nelem = au_warn_loopback_step;
++static unsigned long *au_warn_loopback_array;
++
++void au_warn_loopback(struct super_block *h_sb)
++{
++	int i, new_nelem;
++	unsigned long *a, magic;
++	static DEFINE_SPINLOCK(spin);
++
++	magic = h_sb->s_magic;
++	spin_lock(&spin);
++	a = au_warn_loopback_array;
++	for (i = 0; i < au_warn_loopback_nelem && *a; i++)
++		if (a[i] == magic) {
++			spin_unlock(&spin);
++			return;
++		}
++
++	/* h_sb is new to us, print it */
++	if (i < au_warn_loopback_nelem) {
++		a[i] = magic;
++		goto pr;
++	}
++
++	/* expand the array */
++	new_nelem = au_warn_loopback_nelem + au_warn_loopback_step;
++	a = au_kzrealloc(au_warn_loopback_array,
++			 au_warn_loopback_nelem * sizeof(unsigned long),
++			 new_nelem * sizeof(unsigned long), GFP_ATOMIC);
++	if (a) {
++		au_warn_loopback_nelem = new_nelem;
++		au_warn_loopback_array = a;
++		a[i] = magic;
++		goto pr;
++	}
++
++	spin_unlock(&spin);
++	AuWarn1("realloc failed, ignored\n");
++	return;
++
++pr:
++	spin_unlock(&spin);
++	pr_warning("you may want to try another patch for loopback file "
++		   "on %s(0x%lx) branch\n", au_sbtype(h_sb), magic);
++}
++
++int au_loopback_init(void)
++{
++	int err;
++	struct super_block *sb __maybe_unused;
++
++	AuDebugOn(sizeof(sb->s_magic) != sizeof(unsigned long));
++
++	err = 0;
++	au_warn_loopback_array = kcalloc(au_warn_loopback_step,
++					 sizeof(unsigned long), GFP_NOFS);
++	if (unlikely(!au_warn_loopback_array))
++		err = -ENOMEM;
++
++	return err;
++}
++
++void au_loopback_fin(void)
++{
++	kfree(au_warn_loopback_array);
++}
 diff -urN /usr/share/empty/fs/aufs/loop.h linux/fs/aufs/loop.h
 --- /usr/share/empty/fs/aufs/loop.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/loop.h	2011-07-11 11:34:24.075331673 +0200
-@@ -0,0 +1,42 @@
++++ linux/fs/aufs/loop.h	2011-07-22 08:26:47.857636522 +0200
+@@ -0,0 +1,50 @@
 +/*
 + * Copyright (C) 2005-2011 Junjiro R. Okajima
 + *
@@ -17233,17 +17307,25 @@
 +/* loop.c */
 +int au_test_loopback_overlap(struct super_block *sb, struct dentry *h_adding);
 +int au_test_loopback_kthread(void);
++void au_warn_loopback(struct super_block *h_sb);
++
++int au_loopback_init(void);
++void au_loopback_fin(void);
 +#else
 +AuStubInt0(au_test_loopback_overlap, struct super_block *sb,
 +	   struct dentry *h_adding)
 +AuStubInt0(au_test_loopback_kthread, void)
++AuStubVoid(au_warn_loopback, struct super_block *h_sb)
++
++AuStubInt0(au_loopback_init, void)
++AuStubVoid(au_loopback_fin, void)
 +#endif /* BLK_DEV_LOOP */
 +
 +#endif /* __KERNEL__ */
 +#endif /* __AUFS_LOOP_H__ */
 diff -urN /usr/share/empty/fs/aufs/magic.mk linux/fs/aufs/magic.mk
 --- /usr/share/empty/fs/aufs/magic.mk	1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/magic.mk	2011-07-11 11:34:24.076331673 +0200
++++ linux/fs/aufs/magic.mk	2011-03-17 10:46:59.000000000 +0100
 @@ -0,0 +1,54 @@
 +
 +# defined in ${srctree}/fs/fuse/inode.c
@@ -17301,7 +17383,7 @@
 +endif
 diff -urN /usr/share/empty/fs/aufs/Makefile linux/fs/aufs/Makefile
 --- /usr/share/empty/fs/aufs/Makefile	1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/Makefile	2011-07-11 11:34:24.070331673 +0200
++++ linux/fs/aufs/Makefile	2011-03-17 10:46:59.000000000 +0100
 @@ -0,0 +1,38 @@
 +
 +include ${src}/magic.mk
@@ -17343,8 +17425,8 @@
 +aufs-$(CONFIG_AUFS_MAGIC_SYSRQ) += sysrq.o
 diff -urN /usr/share/empty/fs/aufs/module.c linux/fs/aufs/module.c
 --- /usr/share/empty/fs/aufs/module.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/module.c	2011-07-11 11:34:24.076331673 +0200
-@@ -0,0 +1,183 @@
++++ linux/fs/aufs/module.c	2011-07-22 08:26:47.857636522 +0200
+@@ -0,0 +1,189 @@
 +/*
 + * Copyright (C) 2005-2011 Junjiro R. Okajima
 + *
@@ -17481,9 +17563,12 @@
 +	err = au_wkq_init();
 +	if (unlikely(err))
 +		goto out_procfs;
-+	err = au_hnotify_init();
++	err = au_loopback_init();
 +	if (unlikely(err))
 +		goto out_wkq;
++	err = au_hnotify_init();
++	if (unlikely(err))
++		goto out_loopback;
 +	err = au_sysrq_init();
 +	if (unlikely(err))
 +		goto out_hin;
@@ -17503,6 +17588,8 @@
 +	au_sysrq_fin();
 +out_hin:
 +	au_hnotify_fin();
++out_loopback:
++	au_loopback_fin();
 +out_wkq:
 +	au_wkq_fin();
 +out_procfs:
@@ -17520,6 +17607,7 @@
 +	au_cache_fin();
 +	au_sysrq_fin();
 +	au_hnotify_fin();
++	au_loopback_fin();
 +	au_wkq_fin();
 +	au_procfs_fin();
 +	sysaufs_fin();
@@ -17530,7 +17618,7 @@
 +module_exit(aufs_exit);
 diff -urN /usr/share/empty/fs/aufs/module.h linux/fs/aufs/module.h
 --- /usr/share/empty/fs/aufs/module.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/module.h	2011-07-11 11:34:24.076331673 +0200
++++ linux/fs/aufs/module.h	2011-03-17 10:46:59.000000000 +0100
 @@ -0,0 +1,91 @@
 +/*
 + * Copyright (C) 2005-2011 Junjiro R. Okajima
@@ -17625,7 +17713,7 @@
 +#endif /* __AUFS_MODULE_H__ */
 diff -urN /usr/share/empty/fs/aufs/opts.c linux/fs/aufs/opts.c
 --- /usr/share/empty/fs/aufs/opts.c	1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/opts.c	2011-07-11 11:34:24.076331673 +0200
++++ linux/fs/aufs/opts.c	2011-03-17 10:46:59.000000000 +0100
 @@ -0,0 +1,1595 @@
 +/*
 + * Copyright (C) 2005-2011 Junjiro R. Okajima
@@ -19224,7 +19312,7 @@
 +}
 diff -urN /usr/share/empty/fs/aufs/opts.h linux/fs/aufs/opts.h
 --- /usr/share/empty/fs/aufs/opts.h	1970-01-01 01:00:00.000000000 +0100
-+++ linux/fs/aufs/opts.h	2011-07-11 11:34:24.076331673 +0200
++++ linux/fs/aufs/opts.h	2011-03-17 10:46:59.000000000 +0100
 @@ -0,0 +1,210 @@
 +/*
 + * Copyright (C) 2005-2011 Junjiro R. Okajima
@@ -19438,7 +19526,7 @@
 +#endif /* __AUFS_OPTS_H__ */
 diff -urN /usr/share/empty/fs/aufs/plink.c linux/fs/aufs/plink.c
<<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.22&r2=1.23&f=u



More information about the pld-cvs-commit mailing list