[kernel] r19431 - in dists/sid/linux/debian: . patches/features/all/aufs3

Ben Hutchings benh at alioth.debian.org
Wed Oct 10 05:43:54 UTC 2012


Author: benh
Date: Wed Oct 10 05:43:52 2012
New Revision: 19431

Log:
[aufs] Update to aufs3.2-20120827

Modified:
   dists/sid/linux/debian/changelog
   dists/sid/linux/debian/patches/features/all/aufs3/aufs3-add.patch

Modified: dists/sid/linux/debian/changelog
==============================================================================
--- dists/sid/linux/debian/changelog	Wed Oct 10 05:25:56 2012	(r19430)
+++ dists/sid/linux/debian/changelog	Wed Oct 10 05:43:52 2012	(r19431)
@@ -6,6 +6,8 @@
   * SUNRPC: Set alloc_slot for backchannel tcp ops (regression in 3.2.30)
   * iwlwifi: Do not request unreleased firmware for IWL6000 (Closes: #689416)
   * [rt] Update to 3.2.30-rt45
+  * [aufs] Update to aufs3.2-20120827:
+    - Fix statfs() values when different block sizes are in use
 
  -- Ben Hutchings <ben at decadent.org.uk>  Sat, 29 Sep 2012 14:19:46 +0200
 

Modified: dists/sid/linux/debian/patches/features/all/aufs3/aufs3-add.patch
==============================================================================
--- dists/sid/linux/debian/patches/features/all/aufs3/aufs3-add.patch	Wed Oct 10 05:25:56 2012	(r19430)
+++ dists/sid/linux/debian/patches/features/all/aufs3/aufs3-add.patch	Wed Oct 10 05:43:52 2012	(r19431)
@@ -205,7 +205,7 @@
 +	When aufs supports Magic SysRq, enabled automatically.
 +endif
 --- a/fs/aufs/Makefile	1970-01-01 01:00:00.000000000 +0100
-+++ b/fs/aufs/Makefile	2012-01-10 02:15:56.545455955 +0000
++++ b/fs/aufs/Makefile	2012-08-01 03:41:52.619414717 +0100
 @@ -0,0 +1,42 @@
 +
 +include ${src}/magic.mk
@@ -313,7 +313,7 @@
 +#endif /* __KERNEL__ */
 +#endif /* __AUFS_H__ */
 --- a/fs/aufs/branch.c	1970-01-01 01:00:00.000000000 +0100
-+++ b/fs/aufs/branch.c	2012-01-10 02:15:56.545455955 +0000
++++ b/fs/aufs/branch.c	2012-10-10 06:26:21.201348727 +0100
 @@ -0,0 +1,1169 @@
 +/*
 + * Copyright (C) 2005-2012 Junjiro R. Okajima
@@ -570,12 +570,12 @@
 +		if ((h_inode->i_mode & S_IALLUGO) != (inode->i_mode & S_IALLUGO)
 +		    || h_inode->i_uid != inode->i_uid
 +		    || h_inode->i_gid != inode->i_gid)
-+			pr_warning("uid/gid/perm %s %u/%u/0%o, %u/%u/0%o\n",
-+				   add->pathname,
-+				   inode->i_uid, inode->i_gid,
-+				   (inode->i_mode & S_IALLUGO),
-+				   h_inode->i_uid, h_inode->i_gid,
-+				   (h_inode->i_mode & S_IALLUGO));
++			pr_warn("uid/gid/perm %s %u/%u/0%o, %u/%u/0%o\n",
++				add->pathname,
++				inode->i_uid, inode->i_gid,
++				(inode->i_mode & S_IALLUGO),
++				h_inode->i_uid, h_inode->i_gid,
++				(h_inode->i_mode & S_IALLUGO));
 +	}
 +
 +out:
@@ -1170,8 +1170,8 @@
 +	/* revert */
 +	rerr = au_br_init_wh(sb, br, br->br_perm, del->h_path.dentry);
 +	if (rerr)
-+		pr_warning("failed re-creating base whiteout, %s. (%d)\n",
-+			   del->pathname, rerr);
++		pr_warn("failed re-creating base whiteout, %s. (%d)\n",
++			del->pathname, rerr);
 +out:
 +	return err;
 +}
@@ -1759,7 +1759,7 @@
 +
 +-include ${srctree}/${src}/conf_priv.mk
 --- a/fs/aufs/cpup.c	1970-01-01 01:00:00.000000000 +0100
-+++ b/fs/aufs/cpup.c	2012-03-20 03:45:28.417045299 +0000
++++ b/fs/aufs/cpup.c	2012-10-10 06:26:21.205348749 +0100
 @@ -0,0 +1,1079 @@
 +/*
 + * Copyright (C) 2005-2012 Junjiro R. Okajima
@@ -1902,7 +1902,7 @@
 +
 +	err = vfsub_notify_change(&dt->dt_h_path, &attr);
 +	if (unlikely(err))
-+		pr_warning("restoring timestamps failed(%d). ignored\n", err);
++		pr_warn("restoring timestamps failed(%d). ignored\n", err);
 +}
 +
 +/* ---------------------------------------------------------------------- */
@@ -3657,7 +3657,7 @@
 +#endif /* __KERNEL__ */
 +#endif /* __AUFS_DCSUB_H__ */
 --- a/fs/aufs/debug.c	1970-01-01 01:00:00.000000000 +0100
-+++ b/fs/aufs/debug.c	2012-01-10 02:15:56.545455955 +0000
++++ b/fs/aufs/debug.c	2012-10-10 06:26:21.205348749 +0100
 @@ -0,0 +1,489 @@
 +/*
 + * Copyright (C) 2005-2012 Junjiro R. Okajima
@@ -4139,7 +4139,7 @@
 +	AuDebugOn(destr.len < NAME_MAX);
 +
 +#ifdef CONFIG_4KSTACKS
-+	pr_warning("CONFIG_4KSTACKS is defined.\n");
++	pr_warn("CONFIG_4KSTACKS is defined.\n");
 +#endif
 +
 +#ifdef AuForceNoBrs
@@ -4149,7 +4149,7 @@
 +	return 0;
 +}
 --- a/fs/aufs/debug.h	1970-01-01 01:00:00.000000000 +0100
-+++ b/fs/aufs/debug.h	2012-01-10 02:15:56.545455955 +0000
++++ b/fs/aufs/debug.h	2012-10-10 06:26:21.225348843 +0100
 @@ -0,0 +1,243 @@
 +/*
 + * Copyright (C) 2005-2012 Junjiro R. Okajima
@@ -4217,7 +4217,7 @@
 +#define AuWarn1(fmt, ...) do { \
 +	static unsigned char _c; \
 +	if (!_c++) \
-+		pr_warning(fmt, ##__VA_ARGS__); \
++		pr_warn(fmt, ##__VA_ARGS__); \
 +} while (0)
 +
 +#define AuErr1(fmt, ...) do { \
@@ -4395,7 +4395,7 @@
 +#endif /* __KERNEL__ */
 +#endif /* __AUFS_DEBUG_H__ */
 --- a/fs/aufs/dentry.c	1970-01-01 01:00:00.000000000 +0100
-+++ b/fs/aufs/dentry.c	2012-01-10 02:15:56.545455955 +0000
++++ b/fs/aufs/dentry.c	2012-10-10 06:26:21.225348843 +0100
 @@ -0,0 +1,1140 @@
 +/*
 + * Copyright (C) 2005-2012 Junjiro R. Okajima
@@ -5538,7 +5538,7 @@
 +	.d_release	= aufs_d_release
 +};
 --- a/fs/aufs/dentry.h	1970-01-01 01:00:00.000000000 +0100
-+++ b/fs/aufs/dentry.h	2012-01-10 02:15:56.549455982 +0000
++++ b/fs/aufs/dentry.h	2012-10-10 06:26:21.225348843 +0100
 @@ -0,0 +1,237 @@
 +/*
 + * Copyright (C) 2005-2012 Junjiro R. Okajima
@@ -6324,7 +6324,7 @@
 +	return -1;
 +}
 --- a/fs/aufs/dir.c	1970-01-01 01:00:00.000000000 +0100
-+++ b/fs/aufs/dir.c	2012-03-20 03:45:28.417045299 +0000
++++ b/fs/aufs/dir.c	2012-10-10 06:26:21.225348843 +0100
 @@ -0,0 +1,634 @@
 +/*
 + * Copyright (C) 2005-2012 Junjiro R. Okajima
@@ -7101,7 +7101,7 @@
 +#endif /* __KERNEL__ */
 +#endif /* __AUFS_DIR_H__ */
 --- a/fs/aufs/dynop.c	1970-01-01 01:00:00.000000000 +0100
-+++ b/fs/aufs/dynop.c	2012-01-10 02:15:56.549455982 +0000
++++ b/fs/aufs/dynop.c	2012-10-10 06:26:21.225348843 +0100
 @@ -0,0 +1,377 @@
 +/*
 + * Copyright (C) 2010-2012 Junjiro R. Okajima
@@ -7560,7 +7560,7 @@
 +#endif /* __KERNEL__ */
 +#endif /* __AUFS_DYNOP_H__ */
 --- a/fs/aufs/export.c	1970-01-01 01:00:00.000000000 +0100
-+++ b/fs/aufs/export.c	2012-03-20 03:45:28.417045299 +0000
++++ b/fs/aufs/export.c	2012-10-10 06:26:21.241348914 +0100
 @@ -0,0 +1,804 @@
 +/*
 + * Copyright (C) 2005-2012 Junjiro R. Okajima
@@ -8367,7 +8367,7 @@
 +	atomic_set(&sbinfo->si_xigen_next, u);
 +}
 --- a/fs/aufs/f_op.c	1970-01-01 01:00:00.000000000 +0100
-+++ b/fs/aufs/f_op.c	2012-01-10 02:15:56.549455982 +0000
++++ b/fs/aufs/f_op.c	2012-10-10 06:26:21.241348914 +0100
 @@ -0,0 +1,729 @@
 +/*
 + * Copyright (C) 2005-2012 Junjiro R. Okajima
@@ -9099,7 +9099,7 @@
 +#endif
 +};
 --- a/fs/aufs/f_op_sp.c	1970-01-01 01:00:00.000000000 +0100
-+++ b/fs/aufs/f_op_sp.c	2012-01-10 02:15:56.549455982 +0000
++++ b/fs/aufs/f_op_sp.c	2012-10-10 06:26:21.241348914 +0100
 @@ -0,0 +1,298 @@
 +/*
 + * Copyright (C) 2005-2012 Junjiro R. Okajima
@@ -9400,7 +9400,7 @@
 +	return ret;
 +}
 --- a/fs/aufs/file.c	1970-01-01 01:00:00.000000000 +0100
-+++ b/fs/aufs/file.c	2012-03-20 03:45:28.417045299 +0000
++++ b/fs/aufs/file.c	2012-10-10 06:26:21.241348914 +0100
 @@ -0,0 +1,673 @@
 +/*
 + * Copyright (C) 2005-2012 Junjiro R. Okajima
@@ -10076,7 +10076,7 @@
 +#endif /* CONFIG_AUFS_DEBUG */
 +};
 --- a/fs/aufs/file.h	1970-01-01 01:00:00.000000000 +0100
-+++ b/fs/aufs/file.h	2012-01-10 02:15:56.549455982 +0000
++++ b/fs/aufs/file.h	2012-08-01 03:41:52.619414717 +0100
 @@ -0,0 +1,298 @@
 +/*
 + * Copyright (C) 2005-2012 Junjiro R. Okajima
@@ -10307,7 +10307,7 @@
 +{
 +	if (atomic_inc_return(&au_fi(f)->fi_mmapped))
 +		return;
-+	pr_warning("fi_mmapped wrapped around\n");
++	pr_warn("fi_mmapped wrapped around\n");
 +	while (!atomic_inc_return(&au_fi(f)->fi_mmapped))
 +		;
 +}
@@ -10536,7 +10536,7 @@
 +	return err;
 +}
 --- a/fs/aufs/fstype.h	1970-01-01 01:00:00.000000000 +0100
-+++ b/fs/aufs/fstype.h	2012-01-10 02:15:56.553455997 +0000
++++ b/fs/aufs/fstype.h	2012-10-10 06:26:21.241348914 +0100
 @@ -0,0 +1,496 @@
 +/*
 + * Copyright (C) 2005-2012 Junjiro R. Okajima
@@ -11035,7 +11035,7 @@
 +#endif /* __KERNEL__ */
 +#endif /* __AUFS_FSTYPE_H__ */
 --- a/fs/aufs/hfsnotify.c	1970-01-01 01:00:00.000000000 +0100
-+++ b/fs/aufs/hfsnotify.c	2012-03-11 05:01:22.570973560 +0000
++++ b/fs/aufs/hfsnotify.c	2012-10-10 06:26:21.241348914 +0100
 @@ -0,0 +1,260 @@
 +/*
 + * Copyright (C) 2005-2012 Junjiro R. Okajima
@@ -11358,7 +11358,7 @@
 +	}
 +}
 --- a/fs/aufs/hnotify.c	1970-01-01 01:00:00.000000000 +0100
-+++ b/fs/aufs/hnotify.c	2012-03-11 05:01:22.570973560 +0000
++++ b/fs/aufs/hnotify.c	2012-10-10 06:26:21.241348914 +0100
 @@ -0,0 +1,712 @@
 +/*
 + * Copyright (C) 2005-2012 Junjiro R. Okajima
@@ -11470,7 +11470,7 @@
 +
 +	err = 0;
 +	if (unlikely(inode->i_ino == AUFS_ROOT_INO)) {
-+		pr_warning("branch root dir was changed\n");
++		pr_warn("branch root dir was changed\n");
 +		goto out;
 +	}
 +
@@ -11565,7 +11565,7 @@
 +
 +	err = 1;
 +	if (unlikely(inode->i_ino == AUFS_ROOT_INO)) {
-+		pr_warning("branch root dir was changed\n");
++		pr_warn("branch root dir was changed\n");
 +		err = 0;
 +		goto out;
 +	}
@@ -11621,7 +11621,7 @@
 +	if (IS_ROOT(dentry)
 +	    /* || (inode && inode->i_ino == AUFS_ROOT_INO) */
 +		) {
-+		pr_warning("branch root dir was changed\n");
++		pr_warn("branch root dir was changed\n");
 +		return 0;
 +	}
 +
@@ -11720,8 +11720,8 @@
 +	if (au_ftest_hnjob(a->flags, MNTPNT)
 +	    && a->dentry
 +	    && d_mountpoint(a->dentry))
-+		pr_warning("mount-point %.*s is removed or renamed\n",
-+			   AuDLNPair(a->dentry));
++		pr_warn("mount-point %.*s is removed or renamed\n",
++			AuDLNPair(a->dentry));
 +
 +	return 0;
 +}
@@ -11783,7 +11783,7 @@
 +		goto out;
 +
 +	if (unlikely(inode->i_ino == AUFS_ROOT_INO)) {
-+		pr_warning("wrong root branch\n");
++		pr_warn("wrong root branch\n");
 +		iput(inode);
 +		inode = NULL;
 +		goto out;
@@ -12073,8 +12073,8 @@
 +		au_hn_destroy_cache();
 +}
 --- a/fs/aufs/i_op.c	1970-01-01 01:00:00.000000000 +0100
-+++ b/fs/aufs/i_op.c	2012-03-20 03:45:28.417045299 +0000
-@@ -0,0 +1,992 @@
++++ b/fs/aufs/i_op.c	2012-10-10 06:26:21.241348914 +0100
+@@ -0,0 +1,987 @@
 +/*
 + * Copyright (C) 2005-2012 Junjiro R. Okajima
 + *
@@ -12282,18 +12282,13 @@
 +	ret = d_splice_alias(inode, dentry);
 +	if (unlikely(IS_ERR(ret) && inode)) {
 +		ii_write_unlock(inode);
-+		lc_idx = AuLcNonDir_IIINFO;
-+		if (S_ISLNK(inode->i_mode))
-+			lc_idx = AuLcSymlink_IIINFO;
-+		else if (S_ISDIR(inode->i_mode))
-+			lc_idx = AuLcDir_IIINFO;
-+		au_rw_class(&au_ii(inode)->ii_rwsem, au_lc_key + lc_idx);
 +		iput(inode);
++		inode = NULL;
 +	}
 +
 +out_unlock:
 +	di_write_unlock(dentry);
-+	if (unlikely(IS_ERR(ret) && inode)) {
++	if (inode) {
 +		lc_idx = AuLcNonDir_DIINFO;
 +		if (S_ISLNK(inode->i_mode))
 +			lc_idx = AuLcSymlink_DIINFO;
@@ -13068,7 +13063,7 @@
 +	.truncate_range	= aufs_truncate_range
 +};
 --- a/fs/aufs/i_op_add.c	1970-01-01 01:00:00.000000000 +0100
-+++ b/fs/aufs/i_op_add.c	2012-03-20 03:45:28.425045336 +0000
++++ b/fs/aufs/i_op_add.c	2012-10-10 06:26:21.261349000 +0100
 @@ -0,0 +1,711 @@
 +/*
 + * Copyright (C) 2005-2012 Junjiro R. Okajima
@@ -13782,7 +13777,7 @@
 +	return err;
 +}
 --- a/fs/aufs/i_op_del.c	1970-01-01 01:00:00.000000000 +0100
-+++ b/fs/aufs/i_op_del.c	2012-01-10 02:15:56.557456016 +0000
++++ b/fs/aufs/i_op_del.c	2012-10-10 06:26:21.261349000 +0100
 @@ -0,0 +1,478 @@
 +/*
 + * Copyright (C) 2005-2012 Junjiro R. Okajima
@@ -14263,7 +14258,7 @@
 +	return err;
 +}
 --- a/fs/aufs/i_op_ren.c	1970-01-01 01:00:00.000000000 +0100
-+++ b/fs/aufs/i_op_ren.c	2012-03-11 05:01:22.570973560 +0000
++++ b/fs/aufs/i_op_ren.c	2012-10-10 06:26:21.261349000 +0100
 @@ -0,0 +1,1026 @@
 +/*
 + * Copyright (C) 2005-2012 Junjiro R. Okajima
@@ -14521,8 +14516,8 @@
 +	    || au_test_fs_remote(a->h_dst->d_sb)) {
 +		err = au_whtmp_rmdir(dir, a->btgt, a->h_dst, &a->whlist);
 +		if (unlikely(err))
-+			pr_warning("failed removing whtmp dir %.*s (%d), "
-+				   "ignored.\n", AuDLNPair(a->h_dst), err);
++			pr_warn("failed removing whtmp dir %.*s (%d), "
++				"ignored.\n", AuDLNPair(a->h_dst), err);
 +	} else {
 +		au_nhash_wh_free(&a->thargs->whlist);
 +		a->thargs->whlist = a->whlist;
@@ -15559,8 +15554,8 @@
 +	AuRwDestroy(&iinfo->ii_rwsem);
 +}
 --- a/fs/aufs/inode.c	1970-01-01 01:00:00.000000000 +0100
-+++ b/fs/aufs/inode.c	2012-01-10 02:15:56.557456016 +0000
-@@ -0,0 +1,471 @@
++++ b/fs/aufs/inode.c	2012-10-10 06:26:21.261349000 +0100
+@@ -0,0 +1,478 @@
 +/*
 + * Copyright (C) 2005-2012 Junjiro R. Okajima
 + *
@@ -15889,7 +15884,7 @@
 +	struct super_block *sb;
 +	struct mutex *mtx;
 +	ino_t h_ino, ino;
-+	int err;
++	int err, lc_idx;
 +	aufs_bindex_t bstart;
 +
 +	sb = dentry->d_sb;
@@ -15930,6 +15925,13 @@
 +
 +	AuDbg("%lx, new %d\n", inode->i_state, !!(inode->i_state & I_NEW));
 +	if (inode->i_state & I_NEW) {
++		lc_idx = AuLcNonDir_IIINFO;
++		if (S_ISLNK(h_inode->i_mode))
++			lc_idx = AuLcSymlink_IIINFO;
++		else if (S_ISDIR(h_inode->i_mode))
++			lc_idx = AuLcDir_IIINFO;
++		au_rw_class(&au_ii(inode)->ii_rwsem, au_lc_key + lc_idx);
++
 +		ii_write_lock_new_child(inode);
 +		err = set_inode(inode, dentry);
 +		if (!err) {
@@ -16033,7 +16035,7 @@
 +	return au_test_h_perm(h_inode, mask);
 +}
 --- a/fs/aufs/inode.h	1970-01-01 01:00:00.000000000 +0100
-+++ b/fs/aufs/inode.h	2012-03-20 03:45:28.425045336 +0000
++++ b/fs/aufs/inode.h	2012-10-10 06:26:21.261349000 +0100
 @@ -0,0 +1,559 @@
 +/*
 + * Copyright (C) 2005-2012 Junjiro R. Okajima
@@ -16794,7 +16796,7 @@
 +#endif
 +#endif
 --- a/fs/aufs/loop.c	1970-01-01 01:00:00.000000000 +0100
-+++ b/fs/aufs/loop.c	2012-01-10 02:15:56.557456016 +0000
++++ b/fs/aufs/loop.c	2012-07-22 01:31:00.162115458 +0100
 @@ -0,0 +1,133 @@
 +/*
 + * Copyright (C) 2005-2012 Junjiro R. Okajima
@@ -16905,8 +16907,8 @@
 +
 +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);
++	pr_warn("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)
@@ -17347,7 +17349,7 @@
 +#endif /* __KERNEL__ */
 +#endif /* __AUFS_MODULE_H__ */
 --- a/fs/aufs/opts.c	1970-01-01 01:00:00.000000000 +0100
-+++ b/fs/aufs/opts.c	2012-01-10 02:15:56.561456041 +0000
++++ b/fs/aufs/opts.c	2012-07-22 01:31:00.166115467 +0100
 @@ -0,0 +1,1677 @@
 +/*
 + * Copyright (C) 2005-2012 Junjiro R. Okajima
@@ -17565,7 +17567,7 @@
 +		else {
 +			if (p)
 +				*p = '+';
-+			pr_warning("ignored branch attribute %s\n", str);
++			pr_warn("ignored branch attribute %s\n", str);
 +			break;
 +		}
 +		if (p)
@@ -17588,7 +17590,7 @@
 +	if (!val) {
 +		if (p)
 +			*p = '+';
-+		pr_warning("ignored branch permission %s\n", perm);
++		pr_warn("ignored branch permission %s\n", perm);
 +		val = AuBrPerm_RO;
 +		goto out;
 +	}
@@ -18474,7 +18476,7 @@
 +			break;
 +
 +		case Opt_ignore:
-+			pr_warning("ignored %s\n", opt_str);
++			pr_warn("ignored %s\n", opt_str);
 +			/*FALLTHROUGH*/
 +		case Opt_ignore_silent:
 +			skipped = 1;
@@ -18810,14 +18812,14 @@
 +
 +	if (!(sb_flags & MS_RDONLY)) {
 +		if (unlikely(!au_br_writable(au_sbr_perm(sb, 0))))
-+			pr_warning("first branch should be rw\n");
++			pr_warn("first branch should be rw\n");
 +		if (unlikely(au_opt_test(sbinfo->si_mntflags, SHWH)))
-+			pr_warning("shwh should be used with ro\n");
++			pr_warn("shwh should be used with ro\n");
 +	}
 +
 +	if (au_opt_test((sbinfo->si_mntflags | pending), UDBA_HNOTIFY)
 +	    && !au_opt_test(sbinfo->si_mntflags, XINO))
-+		pr_warning("udba=*notify requires xino\n");
++		pr_warn("udba=*notify requires xino\n");
 +
 +	err = 0;
 +	root = sb->s_root;
@@ -19239,7 +19241,7 @@
 +#endif /* __KERNEL__ */
 +#endif /* __AUFS_OPTS_H__ */
 --- a/fs/aufs/plink.c	1970-01-01 01:00:00.000000000 +0100
-+++ b/fs/aufs/plink.c	2012-01-10 02:15:56.561456041 +0000
++++ b/fs/aufs/plink.c	2012-10-10 06:26:21.261349000 +0100
 @@ -0,0 +1,515 @@
 +/*
 + * Copyright (C) 2005-2012 Junjiro R. Okajima
@@ -19667,7 +19669,7 @@
 +
 +out:
 +	if (unlikely(err)) {
-+		pr_warning("err %d, damaged pseudo link.\n", err);
++		pr_warn("err %d, damaged pseudo link.\n", err);
 +		if (tmp) {
 +			au_spl_del_rcu(&tmp->list, &sbinfo->si_plink);
 +			call_rcu(&tmp->rcu, do_put_plink_rcu);
@@ -19989,7 +19991,7 @@
 +	return err;
 +}
 --- a/fs/aufs/rdu.c	1970-01-01 01:00:00.000000000 +0100
-+++ b/fs/aufs/rdu.c	2012-01-10 02:15:56.561456041 +0000
++++ b/fs/aufs/rdu.c	2012-10-10 06:26:21.261349000 +0100
 @@ -0,0 +1,383 @@
 +/*
 + * Copyright (C) 2005-2012 Junjiro R. Okajima
@@ -20977,8 +20979,8 @@
 +#endif /* __KERNEL__ */
 +#endif /* __AUFS_SPL_H__ */
 --- a/fs/aufs/super.c	1970-01-01 01:00:00.000000000 +0100
-+++ b/fs/aufs/super.c	2012-03-20 03:45:28.425045336 +0000
-@@ -0,0 +1,938 @@
++++ b/fs/aufs/super.c	2012-10-10 06:26:21.261349000 +0100
+@@ -0,0 +1,968 @@
 +/*
 + * Copyright (C) 2005-2012 Junjiro R. Okajima
 + *
@@ -21286,7 +21288,18 @@
 +
 +	old = a;
 +	a += b;
-+	if (old < a)
++	if (old <= a)
++		return a;
++	return ULLONG_MAX;
++}
++
++static u64 au_mul_till_max(u64 a, long mul)
++{
++	u64 old;
++
++	old = a;
++	a *= mul;
++	if (old <= a)
 +		return a;
 +	return ULLONG_MAX;
 +}
@@ -21294,25 +21307,26 @@
 +static int au_statfs_sum(struct super_block *sb, struct kstatfs *buf)
 +{
 +	int err;
++	long bsize, factor;
 +	u64 blocks, bfree, bavail, files, ffree;
 +	aufs_bindex_t bend, bindex, i;
 +	unsigned char shared;
 +	struct path h_path;
 +	struct super_block *h_sb;
 +
++	err = 0;
++	bsize = LONG_MAX;
++	files = 0;
++	ffree = 0;
 +	blocks = 0;
 +	bfree = 0;
 +	bavail = 0;
-+	files = 0;
-+	ffree = 0;
-+
-+	err = 0;
 +	bend = au_sbend(sb);
-+	for (bindex = bend; bindex >= 0; bindex--) {
++	for (bindex = 0; bindex <= bend; bindex++) {
 +		h_path.mnt = au_sbr_mnt(sb, bindex);
 +		h_sb = h_path.mnt->mnt_sb;
 +		shared = 0;
-+		for (i = bindex + 1; !shared && i <= bend; i++)
++		for (i = 0; !shared && i < bindex; i++)
 +			shared = (au_sbr_sb(sb, i) == h_sb);
 +		if (shared)
 +			continue;
@@ -21323,18 +21337,36 @@
 +		if (unlikely(err))
 +			goto out;
 +
-+		blocks = au_add_till_max(blocks, buf->f_blocks);
-+		bfree = au_add_till_max(bfree, buf->f_bfree);
-+		bavail = au_add_till_max(bavail, buf->f_bavail);
++		if (bsize > buf->f_bsize) {
++			/*
++			 * we will reduce bsize, so we have to expand blocks
++			 * etc. to match them again
++			 */
++			factor = (bsize / buf->f_bsize);
++			blocks = au_mul_till_max(blocks, factor);
++			bfree = au_mul_till_max(bfree, factor);
++			bavail = au_mul_till_max(bavail, factor);
++			bsize = buf->f_bsize;
++		}
++
++		factor = (buf->f_bsize / bsize);
++		blocks = au_add_till_max(blocks,
++				au_mul_till_max(buf->f_blocks, factor));
++		bfree = au_add_till_max(bfree,
++				au_mul_till_max(buf->f_bfree, factor));
++		bavail = au_add_till_max(bavail,
++				au_mul_till_max(buf->f_bavail, factor));
 +		files = au_add_till_max(files, buf->f_files);
 +		ffree = au_add_till_max(ffree, buf->f_ffree);
 +	}
 +
++	buf->f_bsize = bsize;
 +	buf->f_blocks = blocks;
 +	buf->f_bfree = bfree;
 +	buf->f_bavail = bavail;
 +	buf->f_files = files;
 +	buf->f_ffree = ffree;
++	buf->f_frsize = 0;
 +
 +out:
 +	return err;
@@ -22682,7 +22714,7 @@
 +#endif /* __KERNEL__ */
 +#endif /* __SYSAUFS_H__ */
 --- a/fs/aufs/sysfs.c	1970-01-01 01:00:00.000000000 +0100
-+++ b/fs/aufs/sysfs.c	2012-01-10 02:15:56.569456073 +0000
++++ b/fs/aufs/sysfs.c	2012-07-22 01:31:00.166115467 +0100
 @@ -0,0 +1,257 @@
 +/*
 + * Copyright (C) 2005-2012 Junjiro R. Okajima
@@ -22937,12 +22969,12 @@
 +			 "%d", bindex);
 +		err = sysfs_create_file(kobj, &br->br_attr);
 +		if (unlikely(err))
-+			pr_warning("failed %s under sysfs(%d)\n",
-+				   br->br_name, err);
++			pr_warn("failed %s under sysfs(%d)\n",
++				br->br_name, err);
 +	}
 +}
 --- a/fs/aufs/sysrq.c	1970-01-01 01:00:00.000000000 +0100
-+++ b/fs/aufs/sysrq.c	2012-01-10 02:15:56.569456073 +0000
++++ b/fs/aufs/sysrq.c	2012-10-10 06:26:21.261349000 +0100
 @@ -0,0 +1,148 @@
 +/*
 + * Copyright (C) 2005-2012 Junjiro R. Okajima
@@ -23981,7 +24013,7 @@
 +	return 0;
 +}
 --- a/fs/aufs/vfsub.c	1970-01-01 01:00:00.000000000 +0100
-+++ b/fs/aufs/vfsub.c	2012-03-20 03:45:28.425045336 +0000
++++ b/fs/aufs/vfsub.c	2012-10-10 06:26:21.265349041 +0100
 @@ -0,0 +1,835 @@
 +/*
 + * Copyright (C) 2005-2012 Junjiro R. Okajima
@@ -24819,7 +24851,7 @@
 +	return err;
 +}
 --- a/fs/aufs/vfsub.h	1970-01-01 01:00:00.000000000 +0100
-+++ b/fs/aufs/vfsub.h	2012-03-20 03:45:28.425045336 +0000
++++ b/fs/aufs/vfsub.h	2012-10-10 06:26:21.265349041 +0100
 @@ -0,0 +1,232 @@
 +/*
 + * Copyright (C) 2005-2012 Junjiro R. Okajima
@@ -25757,7 +25789,7 @@
 +	}
 +};
 --- a/fs/aufs/whout.c	1970-01-01 01:00:00.000000000 +0100
-+++ b/fs/aufs/whout.c	2012-01-10 02:15:56.573456100 +0000
++++ b/fs/aufs/whout.c	2012-10-10 06:26:21.265349041 +0100
 @@ -0,0 +1,1049 @@
 +/*
 + * Copyright (C) 2005-2012 Junjiro R. Okajima
@@ -25917,7 +25949,7 @@
 +			goto out_name;
 +		dput(dentry);
 +	}
-+	/* pr_warning("could not get random name\n"); */
++	/* pr_warn("could not get random name\n"); */
 +	dentry = ERR_PTR(-EEXIST);
 +	AuDbg("%.*s\n", AuLNPair(&qs));
 +	BUG();
@@ -26035,8 +26067,8 @@
 +		mnt_drop_write(whpath->mnt);
 +	}
 +	if (unlikely(err))
-+		pr_warning("failed removing %.*s (%d), ignored.\n",
-+			   AuDLNPair(whpath->dentry), err);
++		pr_warn("failed removing %.*s (%d), ignored.\n",
++			AuDLNPair(whpath->dentry), err);
 +}
 +
 +static int test_linkable(struct dentry *h_root)
@@ -26340,8 +26372,8 @@
 +			mnt_drop_write(a->br->br_mnt);
 +		}
 +	} else {
-+		pr_warning("%.*s is moved, ignored\n",
-+			   AuDLNPair(wbr->wbr_whbase));
++		pr_warn("%.*s is moved, ignored\n",
++			AuDLNPair(wbr->wbr_whbase));
 +		err = 0;
 +	}
 +	dput(wbr->wbr_whbase);
@@ -26732,8 +26764,8 @@
 +		return 0; /* success */
 +	}
 +
-+	pr_warning("failed removing %.*s(%d), ignored\n",
-+		   AuDLNPair(wh_dentry), err);
++	pr_warn("failed removing %.*s(%d), ignored\n",
++		AuDLNPair(wh_dentry), err);
 +	return err;
 +}
 +
@@ -26803,8 +26835,8 @@
 +	args->wh_dentry = dget(wh_dentry);
 +	wkq_err = au_wkq_nowait(call_rmdir_whtmp, args, sb, /*flags*/0);
 +	if (unlikely(wkq_err)) {
-+		pr_warning("rmdir error %.*s (%d), ignored\n",
-+			   AuDLNPair(wh_dentry), wkq_err);
++		pr_warn("rmdir error %.*s (%d), ignored\n",
++			AuDLNPair(wh_dentry), wkq_err);
 +		au_whtmp_rmdir_free(args);
 +	}
 +}
@@ -26900,7 +26932,7 @@
 +#endif /* __KERNEL__ */
 +#endif /* __AUFS_WHOUT_H__ */
 --- a/fs/aufs/wkq.c	1970-01-01 01:00:00.000000000 +0100
-+++ b/fs/aufs/wkq.c	2012-01-10 02:15:56.573456100 +0000
++++ b/fs/aufs/wkq.c	2012-10-10 06:26:21.265349041 +0100
 @@ -0,0 +1,214 @@
 +/*
 + * Copyright (C) 2005-2012 Junjiro R. Okajima
@@ -27212,7 +27244,7 @@
 +#endif /* __KERNEL__ */
 +#endif /* __AUFS_WKQ_H__ */
 --- a/fs/aufs/xino.c	1970-01-01 01:00:00.000000000 +0100
-+++ b/fs/aufs/xino.c	2012-01-10 02:15:56.573456100 +0000
++++ b/fs/aufs/xino.c	2012-07-22 01:31:00.166115467 +0100
 @@ -0,0 +1,1264 @@
 +/*
 + * Copyright (C) 2005-2012 Junjiro R. Okajima
@@ -27532,7 +27564,7 @@
 +
 +	ii_read_unlock(dir);
 +	if (unlikely(err))
-+		pr_warning("err b%d, (%d)\n", bindex, err);
++		pr_warn("err b%d, (%d)\n", bindex, err);
 +	atomic_dec(&br->br_xino_running);
 +	atomic_dec(&br->br_count);
 +	si_write_unlock(sb);
@@ -28479,7 +28511,7 @@
 +	return err;
 +}
 --- a/include/linux/aufs_type.h	1970-01-01 01:00:00.000000000 +0100
-+++ b/include/linux/aufs_type.h	2012-03-20 03:45:28.425045336 +0000
++++ b/include/linux/aufs_type.h	2012-10-10 06:26:21.265349041 +0100
 @@ -0,0 +1,233 @@
 +/*
 + * Copyright (C) 2005-2012 Junjiro R. Okajima
@@ -28522,7 +28554,7 @@
 +
 +#include <linux/limits.h>
 +
-+#define AUFS_VERSION	"3.2-20120312"
++#define AUFS_VERSION	"3.2-20120827"
 +
 +/* todo? move this to linux-2.6.19/include/magic.h */
 +#define AUFS_SUPER_MAGIC	('a' << 24 | 'u' << 16 | 'f' << 8 | 's')



More information about the Kernel-svn-changes mailing list