From ca432f19778b644e6ac767662c18db25557577e3 Mon Sep 17 00:00:00 2001 From: Ben Hutchings Date: Sat, 4 May 2013 17:47:27 +0000 Subject: [PATCH] aufs: Update to aufs3.8-20130325 svn path=/dists/sid/linux/; revision=20015 --- debian/changelog | 4 + .../features/all/aufs3/aufs3-add.patch | 233 ++++++++++-------- .../features/all/aufs3/aufs3-kbuild.patch | 12 + .../features/all/aufs3/aufs3-standalone.patch | 12 +- 4 files changed, 151 insertions(+), 110 deletions(-) diff --git a/debian/changelog b/debian/changelog index 14ce62ee1..7784694ed 100644 --- a/debian/changelog +++ b/debian/changelog @@ -103,6 +103,10 @@ linux (3.8.11-1) UNRELEASED; urgency=high [ Ben Hutchings ] * [rt] Update to 3.8.10-rt6 + * aufs: Update to aufs3.8-20130325 + - ftruncate() supports sb_{start,end}_write() + - replace mnt_drop_write_file() by __mnt_drop_write() + - support for vfs_truncate() -- Ben Hutchings Sat, 04 May 2013 03:45:10 +0100 diff --git a/debian/patches/features/all/aufs3/aufs3-add.patch b/debian/patches/features/all/aufs3/aufs3-add.patch index 7874f9854..775e6fc43 100644 --- a/debian/patches/features/all/aufs3/aufs3-add.patch +++ b/debian/patches/features/all/aufs3/aufs3-add.patch @@ -250,7 +250,7 @@ +aufs-$(CONFIG_AUFS_DEBUG) += debug.o +aufs-$(CONFIG_AUFS_MAGIC_SYSRQ) += sysrq.o --- a/fs/aufs/aufs.h 1970-01-01 01:00:00.000000000 +0100 -+++ b/fs/aufs/aufs.h 2013-02-19 06:25:53.223644734 +0000 ++++ b/fs/aufs/aufs.h 2013-03-10 01:48:58.459093058 +0000 @@ -0,0 +1,60 @@ +/* + * Copyright (C) 2005-2013 Junjiro R. Okajima @@ -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 2013-02-19 06:25:53.227644734 +0000 ++++ b/fs/aufs/branch.c 2013-05-04 18:39:17.031157464 +0100 @@ -0,0 +1,1172 @@ +/* + * Copyright (C) 2005-2013 Junjiro R. Okajima @@ -1391,8 +1391,8 @@ + hf->f_mode &= ~FMODE_WRITE; + spin_unlock(&hf->f_lock); + if (!file_check_writeable(hf)) { ++ __mnt_drop_write(hf->f_path.mnt); + file_release_write(hf); -+ vfsub_mnt_drop_write(hf->f_vfsmnt); + } + } + @@ -1488,7 +1488,7 @@ + return err; +} --- a/fs/aufs/branch.h 1970-01-01 01:00:00.000000000 +0100 -+++ b/fs/aufs/branch.h 2013-02-19 06:25:53.227644734 +0000 ++++ b/fs/aufs/branch.h 2013-05-04 18:39:11.231157327 +0100 @@ -0,0 +1,236 @@ +/* + * Copyright (C) 2005-2013 Junjiro R. Okajima @@ -1768,7 +1768,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 2013-02-19 06:25:53.227644734 +0000 ++++ b/fs/aufs/cpup.c 2013-05-04 18:39:11.231157327 +0100 @@ -0,0 +1,1085 @@ +/* + * Copyright (C) 2005-2013 Junjiro R. Okajima @@ -2856,7 +2856,7 @@ + return err; +} --- a/fs/aufs/cpup.h 1970-01-01 01:00:00.000000000 +0100 -+++ b/fs/aufs/cpup.h 2013-02-19 06:25:53.227644734 +0000 ++++ b/fs/aufs/cpup.h 2013-03-10 01:48:58.459093058 +0000 @@ -0,0 +1,81 @@ +/* + * Copyright (C) 2005-2013 Junjiro R. Okajima @@ -2940,8 +2940,8 @@ +#endif /* __KERNEL__ */ +#endif /* __AUFS_CPUP_H__ */ --- a/fs/aufs/dbgaufs.c 1970-01-01 01:00:00.000000000 +0100 -+++ b/fs/aufs/dbgaufs.c 2013-02-19 06:25:53.227644734 +0000 -@@ -0,0 +1,334 @@ ++++ b/fs/aufs/dbgaufs.c 2013-05-04 18:39:17.031157464 +0100 +@@ -0,0 +1,332 @@ +/* + * Copyright (C) 2005-2013 Junjiro R. Okajima + * @@ -3119,10 +3119,8 @@ + for (; bindex <= bend; bindex++) { + br = au_sbr(sb, bindex); + xi = &br->br_xino; -+ if (xi->xi_dbgaufs) { -+ debugfs_remove(xi->xi_dbgaufs); -+ xi->xi_dbgaufs = NULL; -+ } ++ debugfs_remove(xi->xi_dbgaufs); ++ xi->xi_dbgaufs = NULL; + } +} + @@ -3277,7 +3275,7 @@ + return err; +} --- a/fs/aufs/dbgaufs.h 1970-01-01 01:00:00.000000000 +0100 -+++ b/fs/aufs/dbgaufs.h 2013-02-19 06:25:53.227644734 +0000 ++++ b/fs/aufs/dbgaufs.h 2013-03-10 01:48:58.459093058 +0000 @@ -0,0 +1,49 @@ +/* + * Copyright (C) 2005-2013 Junjiro R. Okajima @@ -3329,7 +3327,7 @@ +#endif /* __KERNEL__ */ +#endif /* __DBGAUFS_H__ */ --- a/fs/aufs/dcsub.c 1970-01-01 01:00:00.000000000 +0100 -+++ b/fs/aufs/dcsub.c 2013-02-19 06:25:53.227644734 +0000 ++++ b/fs/aufs/dcsub.c 2013-03-10 01:48:58.459093058 +0000 @@ -0,0 +1,243 @@ +/* + * Copyright (C) 2005-2013 Junjiro R. Okajima @@ -3575,7 +3573,7 @@ + return path_is_under(path + 0, path + 1); +} --- a/fs/aufs/dcsub.h 1970-01-01 01:00:00.000000000 +0100 -+++ b/fs/aufs/dcsub.h 2013-02-19 06:25:53.227644734 +0000 ++++ b/fs/aufs/dcsub.h 2013-03-10 01:48:58.459093058 +0000 @@ -0,0 +1,94 @@ +/* + * Copyright (C) 2005-2013 Junjiro R. Okajima @@ -3672,8 +3670,8 @@ +#endif /* __KERNEL__ */ +#endif /* __AUFS_DCSUB_H__ */ --- a/fs/aufs/debug.c 1970-01-01 01:00:00.000000000 +0100 -+++ b/fs/aufs/debug.c 2013-02-19 06:25:53.227644734 +0000 -@@ -0,0 +1,490 @@ ++++ b/fs/aufs/debug.c 2013-05-04 18:39:17.031157464 +0100 +@@ -0,0 +1,493 @@ +/* + * Copyright (C) 2005-2013 Junjiro R. Okajima + * @@ -4004,8 +4002,11 @@ + +void au_dbg_iattr(struct iattr *ia) +{ -+#define AuBit(name) if (ia->ia_valid & ATTR_ ## name) \ -+ dpri(#name "\n") ++#define AuBit(name) \ ++ do { \ ++ if (ia->ia_valid & ATTR_ ## name) \ ++ dpri(#name "\n"); \ ++ } while (0) + AuBit(MODE); + AuBit(UID); + AuBit(GID); @@ -4165,7 +4166,7 @@ + return 0; +} --- a/fs/aufs/debug.h 1970-01-01 01:00:00.000000000 +0100 -+++ b/fs/aufs/debug.h 2013-02-19 06:25:53.227644734 +0000 ++++ b/fs/aufs/debug.h 2013-05-04 18:39:11.235157327 +0100 @@ -0,0 +1,242 @@ +/* + * Copyright (C) 2005-2013 Junjiro R. Okajima @@ -4410,7 +4411,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 2013-02-19 06:25:53.231644735 +0000 ++++ b/fs/aufs/dentry.c 2013-05-04 18:39:11.235157327 +0100 @@ -0,0 +1,1060 @@ +/* + * Copyright (C) 2005-2013 Junjiro R. Okajima @@ -5473,7 +5474,7 @@ + .d_release = aufs_d_release +}; --- a/fs/aufs/dentry.h 1970-01-01 01:00:00.000000000 +0100 -+++ b/fs/aufs/dentry.h 2013-02-19 06:25:53.231644735 +0000 ++++ b/fs/aufs/dentry.h 2013-05-04 18:39:11.235157327 +0100 @@ -0,0 +1,234 @@ +/* + * Copyright (C) 2005-2013 Junjiro R. Okajima @@ -5710,7 +5711,7 @@ +#endif /* __KERNEL__ */ +#endif /* __AUFS_DENTRY_H__ */ --- a/fs/aufs/dinfo.c 1970-01-01 01:00:00.000000000 +0100 -+++ b/fs/aufs/dinfo.c 2013-02-19 06:25:53.231644735 +0000 ++++ b/fs/aufs/dinfo.c 2013-03-10 01:48:58.459093058 +0000 @@ -0,0 +1,543 @@ +/* + * Copyright (C) 2005-2013 Junjiro R. Okajima @@ -6256,7 +6257,7 @@ + return -1; +} --- a/fs/aufs/dir.c 1970-01-01 01:00:00.000000000 +0100 -+++ b/fs/aufs/dir.c 2013-02-19 06:25:53.231644735 +0000 ++++ b/fs/aufs/dir.c 2013-05-04 18:39:11.235157327 +0100 @@ -0,0 +1,633 @@ +/* + * Copyright (C) 2005-2013 Junjiro R. Okajima @@ -6892,7 +6893,7 @@ + .fsync = aufs_fsync_dir +}; --- a/fs/aufs/dir.h 1970-01-01 01:00:00.000000000 +0100 -+++ b/fs/aufs/dir.h 2013-02-19 06:25:53.231644735 +0000 ++++ b/fs/aufs/dir.h 2013-03-10 01:48:58.459093058 +0000 @@ -0,0 +1,137 @@ +/* + * Copyright (C) 2005-2013 Junjiro R. Okajima @@ -7032,7 +7033,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 2013-02-19 06:25:53.231644735 +0000 ++++ b/fs/aufs/dynop.c 2013-05-04 18:39:11.235157327 +0100 @@ -0,0 +1,379 @@ +/* + * Copyright (C) 2010-2013 Junjiro R. Okajima @@ -7414,7 +7415,7 @@ + WARN_ON(!list_empty(&dynop[i].head)); +} --- a/fs/aufs/dynop.h 1970-01-01 01:00:00.000000000 +0100 -+++ b/fs/aufs/dynop.h 2013-02-19 06:25:53.231644735 +0000 ++++ b/fs/aufs/dynop.h 2013-03-10 01:48:58.459093058 +0000 @@ -0,0 +1,76 @@ +/* + * Copyright (C) 2010-2013 Junjiro R. Okajima @@ -7493,7 +7494,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 2013-03-10 01:44:39.379086885 +0000 ++++ b/fs/aufs/export.c 2013-05-04 18:39:11.235157327 +0100 @@ -0,0 +1,827 @@ +/* + * Copyright (C) 2005-2013 Junjiro R. Okajima @@ -8323,7 +8324,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 2013-02-19 06:25:53.231644735 +0000 ++++ b/fs/aufs/f_op.c 2013-05-04 18:39:11.235157327 +0100 @@ -0,0 +1,723 @@ +/* + * Copyright (C) 2005-2013 Junjiro R. Okajima @@ -9049,7 +9050,7 @@ +#endif +}; --- a/fs/aufs/f_op_sp.c 1970-01-01 01:00:00.000000000 +0100 -+++ b/fs/aufs/f_op_sp.c 2013-02-19 06:25:53.231644735 +0000 ++++ b/fs/aufs/f_op_sp.c 2013-05-04 18:39:11.235157327 +0100 @@ -0,0 +1,295 @@ +/* + * Copyright (C) 2005-2013 Junjiro R. Okajima @@ -9347,7 +9348,7 @@ + return ret; +} --- a/fs/aufs/file.c 1970-01-01 01:00:00.000000000 +0100 -+++ b/fs/aufs/file.c 2013-02-19 06:25:53.231644735 +0000 ++++ b/fs/aufs/file.c 2013-05-04 18:39:11.235157327 +0100 @@ -0,0 +1,683 @@ +/* + * Copyright (C) 2005-2013 Junjiro R. Okajima @@ -10033,7 +10034,7 @@ +#endif /* CONFIG_AUFS_DEBUG */ +}; --- a/fs/aufs/file.h 1970-01-01 01:00:00.000000000 +0100 -+++ b/fs/aufs/file.h 2013-02-19 06:25:53.231644735 +0000 ++++ b/fs/aufs/file.h 2013-03-10 01:48:58.459093058 +0000 @@ -0,0 +1,298 @@ +/* + * Copyright (C) 2005-2013 Junjiro R. Okajima @@ -10334,7 +10335,7 @@ +#endif /* __KERNEL__ */ +#endif /* __AUFS_FILE_H__ */ --- a/fs/aufs/finfo.c 1970-01-01 01:00:00.000000000 +0100 -+++ b/fs/aufs/finfo.c 2013-02-19 06:25:53.231644735 +0000 ++++ b/fs/aufs/finfo.c 2013-03-10 01:48:58.459093058 +0000 @@ -0,0 +1,157 @@ +/* + * Copyright (C) 2005-2013 Junjiro R. Okajima @@ -10494,7 +10495,7 @@ + return err; +} --- a/fs/aufs/fstype.h 1970-01-01 01:00:00.000000000 +0100 -+++ b/fs/aufs/fstype.h 2013-02-19 06:25:53.231644735 +0000 ++++ b/fs/aufs/fstype.h 2013-05-04 18:39:11.235157327 +0100 @@ -0,0 +1,481 @@ +/* + * Copyright (C) 2005-2013 Junjiro R. Okajima @@ -10978,8 +10979,8 @@ +#endif /* __KERNEL__ */ +#endif /* __AUFS_FSTYPE_H__ */ --- a/fs/aufs/hfsnotify.c 1970-01-01 01:00:00.000000000 +0100 -+++ b/fs/aufs/hfsnotify.c 2013-02-19 06:25:53.231644735 +0000 -@@ -0,0 +1,293 @@ ++++ b/fs/aufs/hfsnotify.c 2013-05-04 18:39:17.031157464 +0100 +@@ -0,0 +1,296 @@ +/* + * Copyright (C) 2005-2013 Junjiro R. Okajima + * @@ -11098,8 +11099,11 @@ +static char *au_hfsn_name(u32 mask) +{ +#ifdef CONFIG_AUFS_DEBUG -+#define test_ret(flag) if (mask & flag) \ -+ return #flag; ++#define test_ret(flag) \ ++ do { \ ++ if (mask & flag) \ ++ return #flag; \ ++ } while (0) + test_ret(FS_ACCESS); + test_ret(FS_MODIFY); + test_ret(FS_ATTRIB); @@ -11274,7 +11278,7 @@ + .init_br = au_hfsn_init_br +}; --- a/fs/aufs/hfsplus.c 1970-01-01 01:00:00.000000000 +0100 -+++ b/fs/aufs/hfsplus.c 2013-02-19 06:25:53.231644735 +0000 ++++ b/fs/aufs/hfsplus.c 2013-03-10 01:48:58.463093058 +0000 @@ -0,0 +1,57 @@ +/* + * Copyright (C) 2010-2013 Junjiro R. Okajima @@ -11334,7 +11338,7 @@ + } +} --- a/fs/aufs/hnotify.c 1970-01-01 01:00:00.000000000 +0100 -+++ b/fs/aufs/hnotify.c 2013-02-19 06:25:53.231644735 +0000 ++++ b/fs/aufs/hnotify.c 2013-05-04 18:39:11.235157327 +0100 @@ -0,0 +1,713 @@ +/* + * Copyright (C) 2005-2013 Junjiro R. Okajima @@ -12050,7 +12054,7 @@ + au_hn_destroy_cache(); +} --- a/fs/aufs/i_op.c 1970-01-01 01:00:00.000000000 +0100 -+++ b/fs/aufs/i_op.c 2013-02-19 06:25:53.231644735 +0000 ++++ b/fs/aufs/i_op.c 2013-05-04 18:39:11.235157327 +0100 @@ -0,0 +1,1030 @@ +/* + * Copyright (C) 2005-2013 Junjiro R. Okajima @@ -13083,7 +13087,7 @@ + .update_time = aufs_update_time +}; --- a/fs/aufs/i_op_add.c 1970-01-01 01:00:00.000000000 +0100 -+++ b/fs/aufs/i_op_add.c 2013-02-19 06:25:53.231644735 +0000 ++++ b/fs/aufs/i_op_add.c 2013-05-04 18:39:11.235157327 +0100 @@ -0,0 +1,713 @@ +/* + * Copyright (C) 2005-2013 Junjiro R. Okajima @@ -13799,7 +13803,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 2013-02-19 06:25:53.231644735 +0000 ++++ b/fs/aufs/i_op_del.c 2013-05-04 18:39:11.235157327 +0100 @@ -0,0 +1,477 @@ +/* + * Copyright (C) 2005-2013 Junjiro R. Okajima @@ -14279,7 +14283,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 2013-02-19 06:25:53.231644735 +0000 ++++ b/fs/aufs/i_op_ren.c 2013-05-04 18:39:11.235157327 +0100 @@ -0,0 +1,1026 @@ +/* + * Copyright (C) 2005-2013 Junjiro R. Okajima @@ -15308,7 +15312,7 @@ + return err; +} --- a/fs/aufs/iinfo.c 1970-01-01 01:00:00.000000000 +0100 -+++ b/fs/aufs/iinfo.c 2013-02-19 06:25:53.231644735 +0000 ++++ b/fs/aufs/iinfo.c 2013-03-10 01:48:58.463093058 +0000 @@ -0,0 +1,276 @@ +/* + * Copyright (C) 2005-2013 Junjiro R. Okajima @@ -15587,7 +15591,7 @@ + AuRwDestroy(&iinfo->ii_rwsem); +} --- a/fs/aufs/inode.c 1970-01-01 01:00:00.000000000 +0100 -+++ b/fs/aufs/inode.c 2013-02-19 06:25:53.231644735 +0000 ++++ b/fs/aufs/inode.c 2013-05-04 18:39:11.235157327 +0100 @@ -0,0 +1,492 @@ +/* + * Copyright (C) 2005-2013 Junjiro R. Okajima @@ -16082,7 +16086,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 2013-02-19 06:25:53.231644735 +0000 ++++ b/fs/aufs/inode.h 2013-05-04 18:39:11.239157326 +0100 @@ -0,0 +1,588 @@ +/* + * Copyright (C) 2005-2013 Junjiro R. Okajima @@ -16673,7 +16677,7 @@ +#endif /* __KERNEL__ */ +#endif /* __AUFS_INODE_H__ */ --- a/fs/aufs/ioctl.c 1970-01-01 01:00:00.000000000 +0100 -+++ b/fs/aufs/ioctl.c 2013-02-19 06:25:53.231644735 +0000 ++++ b/fs/aufs/ioctl.c 2013-03-10 01:48:58.463093058 +0000 @@ -0,0 +1,196 @@ +/* + * Copyright (C) 2005-2013 Junjiro R. Okajima @@ -16872,7 +16876,7 @@ +#endif +#endif --- a/fs/aufs/loop.c 1970-01-01 01:00:00.000000000 +0100 -+++ b/fs/aufs/loop.c 2013-03-10 01:44:39.379086885 +0000 ++++ b/fs/aufs/loop.c 2013-03-10 01:48:58.463093058 +0000 @@ -0,0 +1,135 @@ +/* + * Copyright (C) 2005-2013 Junjiro R. Okajima @@ -17010,7 +17014,7 @@ + kfree(au_warn_loopback_array); +} --- a/fs/aufs/loop.h 1970-01-01 01:00:00.000000000 +0100 -+++ b/fs/aufs/loop.h 2013-02-19 06:25:53.231644735 +0000 ++++ b/fs/aufs/loop.h 2013-03-10 01:48:58.463093058 +0000 @@ -0,0 +1,50 @@ +/* + * Copyright (C) 2005-2013 Junjiro R. Okajima @@ -17120,7 +17124,7 @@ +ccflags-y += -DHFSPLUS_SUPER_MAGIC=0x482b +endif --- a/fs/aufs/module.c 1970-01-01 01:00:00.000000000 +0100 -+++ b/fs/aufs/module.c 2013-02-19 06:25:53.231644735 +0000 ++++ b/fs/aufs/module.c 2013-05-04 18:39:11.239157326 +0100 @@ -0,0 +1,202 @@ +/* + * Copyright (C) 2005-2013 Junjiro R. Okajima @@ -17325,7 +17329,7 @@ +module_init(aufs_init); +module_exit(aufs_exit); --- a/fs/aufs/module.h 1970-01-01 01:00:00.000000000 +0100 -+++ b/fs/aufs/module.h 2013-02-19 06:25:53.231644735 +0000 ++++ b/fs/aufs/module.h 2013-03-10 01:48:58.463093058 +0000 @@ -0,0 +1,105 @@ +/* + * Copyright (C) 2005-2013 Junjiro R. Okajima @@ -17433,7 +17437,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 2013-02-19 06:25:53.231644735 +0000 ++++ b/fs/aufs/opts.c 2013-03-10 01:48:58.463093058 +0000 @@ -0,0 +1,1677 @@ +/* + * Copyright (C) 2005-2013 Junjiro R. Okajima @@ -19113,7 +19117,7 @@ + return au_mntflags(sb) & AuOptMask_UDBA; +} --- a/fs/aufs/opts.h 1970-01-01 01:00:00.000000000 +0100 -+++ b/fs/aufs/opts.h 2013-02-19 06:25:53.231644735 +0000 ++++ b/fs/aufs/opts.h 2013-03-10 01:48:58.463093058 +0000 @@ -0,0 +1,209 @@ +/* + * Copyright (C) 2005-2013 Junjiro R. Okajima @@ -19325,7 +19329,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 2013-02-19 06:25:53.231644735 +0000 ++++ b/fs/aufs/plink.c 2013-05-04 18:39:11.239157326 +0100 @@ -0,0 +1,511 @@ +/* + * Copyright (C) 2005-2013 Junjiro R. Okajima @@ -19839,7 +19843,7 @@ + } +} --- a/fs/aufs/poll.c 1970-01-01 01:00:00.000000000 +0100 -+++ b/fs/aufs/poll.c 2013-02-19 06:25:53.231644735 +0000 ++++ b/fs/aufs/poll.c 2013-03-10 01:48:58.463093058 +0000 @@ -0,0 +1,56 @@ +/* + * Copyright (C) 2005-2013 Junjiro R. Okajima @@ -19898,7 +19902,7 @@ + return mask; +} --- a/fs/aufs/procfs.c 1970-01-01 01:00:00.000000000 +0100 -+++ b/fs/aufs/procfs.c 2013-02-19 06:25:53.231644735 +0000 ++++ b/fs/aufs/procfs.c 2013-03-10 01:48:58.463093058 +0000 @@ -0,0 +1,170 @@ +/* + * Copyright (C) 2010-2013 Junjiro R. Okajima @@ -20071,7 +20075,7 @@ + return err; +} --- a/fs/aufs/rdu.c 1970-01-01 01:00:00.000000000 +0100 -+++ b/fs/aufs/rdu.c 2013-02-19 06:25:53.231644735 +0000 ++++ b/fs/aufs/rdu.c 2013-05-04 18:39:11.239157326 +0100 @@ -0,0 +1,384 @@ +/* + * Copyright (C) 2005-2013 Junjiro R. Okajima @@ -20458,7 +20462,7 @@ +} +#endif --- a/fs/aufs/rwsem.h 1970-01-01 01:00:00.000000000 +0100 -+++ b/fs/aufs/rwsem.h 2013-02-19 06:25:53.235644735 +0000 ++++ b/fs/aufs/rwsem.h 2013-03-10 01:48:58.463093058 +0000 @@ -0,0 +1,188 @@ +/* + * Copyright (C) 2005-2013 Junjiro R. Okajima @@ -20649,7 +20653,7 @@ +#endif /* __KERNEL__ */ +#endif /* __AUFS_RWSEM_H__ */ --- a/fs/aufs/sbinfo.c 1970-01-01 01:00:00.000000000 +0100 -+++ b/fs/aufs/sbinfo.c 2013-02-19 06:25:53.235644735 +0000 ++++ b/fs/aufs/sbinfo.c 2013-03-10 01:48:58.463093058 +0000 @@ -0,0 +1,343 @@ +/* + * Copyright (C) 2005-2013 Junjiro R. Okajima @@ -20995,7 +20999,7 @@ + spin_unlock(&sbinfo->au_si_pid.tree_lock); +} --- a/fs/aufs/spl.h 1970-01-01 01:00:00.000000000 +0100 -+++ b/fs/aufs/spl.h 2013-02-19 06:25:53.235644735 +0000 ++++ b/fs/aufs/spl.h 2013-03-10 01:48:58.463093058 +0000 @@ -0,0 +1,62 @@ +/* + * Copyright (C) 2005-2013 Junjiro R. Okajima @@ -21060,7 +21064,7 @@ +#endif /* __KERNEL__ */ +#endif /* __AUFS_SPL_H__ */ --- a/fs/aufs/super.c 1970-01-01 01:00:00.000000000 +0100 -+++ b/fs/aufs/super.c 2013-02-19 06:25:53.235644735 +0000 ++++ b/fs/aufs/super.c 2013-05-04 18:39:11.239157326 +0100 @@ -0,0 +1,993 @@ +/* + * Copyright (C) 2005-2013 Junjiro R. Okajima @@ -22056,7 +22060,7 @@ + .owner = THIS_MODULE, +}; --- a/fs/aufs/super.h 1970-01-01 01:00:00.000000000 +0100 -+++ b/fs/aufs/super.h 2013-03-10 01:44:39.379086885 +0000 ++++ b/fs/aufs/super.h 2013-03-10 01:48:58.463093058 +0000 @@ -0,0 +1,538 @@ +/* + * Copyright (C) 2005-2013 Junjiro R. Okajima @@ -22597,7 +22601,7 @@ +#endif /* __KERNEL__ */ +#endif /* __AUFS_SUPER_H__ */ --- a/fs/aufs/sysaufs.c 1970-01-01 01:00:00.000000000 +0100 -+++ b/fs/aufs/sysaufs.c 2013-02-19 06:25:53.235644735 +0000 ++++ b/fs/aufs/sysaufs.c 2013-03-10 01:48:58.463093058 +0000 @@ -0,0 +1,105 @@ +/* + * Copyright (C) 2005-2013 Junjiro R. Okajima @@ -22705,7 +22709,7 @@ + return err; +} --- a/fs/aufs/sysaufs.h 1970-01-01 01:00:00.000000000 +0100 -+++ b/fs/aufs/sysaufs.h 2013-02-19 06:25:53.235644735 +0000 ++++ b/fs/aufs/sysaufs.h 2013-03-10 01:48:58.463093058 +0000 @@ -0,0 +1,104 @@ +/* + * Copyright (C) 2005-2013 Junjiro R. Okajima @@ -22812,7 +22816,7 @@ +#endif /* __KERNEL__ */ +#endif /* __SYSAUFS_H__ */ --- a/fs/aufs/sysfs.c 1970-01-01 01:00:00.000000000 +0100 -+++ b/fs/aufs/sysfs.c 2013-02-19 06:25:53.235644735 +0000 ++++ b/fs/aufs/sysfs.c 2013-03-10 01:48:58.463093058 +0000 @@ -0,0 +1,257 @@ +/* + * Copyright (C) 2005-2013 Junjiro R. Okajima @@ -23072,8 +23076,8 @@ + } +} --- a/fs/aufs/sysrq.c 1970-01-01 01:00:00.000000000 +0100 -+++ b/fs/aufs/sysrq.c 2013-02-19 06:25:53.235644735 +0000 -@@ -0,0 +1,148 @@ ++++ b/fs/aufs/sysrq.c 2013-05-04 18:39:17.031157464 +0100 +@@ -0,0 +1,151 @@ +/* + * Copyright (C) 2005-2013 Junjiro R. Okajima + * @@ -23111,16 +23115,18 @@ + plevel = au_plevel; + au_plevel = KERN_WARNING; + -+ sbinfo = au_sbi(sb); + /* since we define pr_fmt, call printk directly */ ++#define pr(str) printk(KERN_WARNING AUFS_NAME ": " str) ++ ++ sbinfo = au_sbi(sb); + printk(KERN_WARNING "si=%lx\n", sysaufs_si_id(sbinfo)); -+ printk(KERN_WARNING AUFS_NAME ": superblock\n"); ++ pr("superblock\n"); + au_dpri_sb(sb); + +#if 0 -+ printk(KERN_WARNING AUFS_NAME ": root dentry\n"); ++ pr("root dentry\n"); + au_dpri_dentry(sb->s_root); -+ printk(KERN_WARNING AUFS_NAME ": root inode\n"); ++ pr("root inode\n"); + au_dpri_inode(sb->s_root->d_inode); +#endif + @@ -23148,7 +23154,7 @@ +#if 1 + { + struct inode *i; -+ printk(KERN_WARNING AUFS_NAME ": isolated inode\n"); ++ pr("isolated inode\n"); + spin_lock(&inode_sb_list_lock); + list_for_each_entry(i, &sb->s_inodes, i_sb_list) { + spin_lock(&i->i_lock); @@ -23159,7 +23165,7 @@ + spin_unlock(&inode_sb_list_lock); + } +#endif -+ printk(KERN_WARNING AUFS_NAME ": files\n"); ++ pr("files\n"); + lg_global_lock(&files_lglock); + do_file_list_for_each_entry(sb, file) { + umode_t mode; @@ -23168,8 +23174,9 @@ + au_dpri_file(file); + } while_file_list_for_each_entry; + lg_global_unlock(&files_lglock); -+ printk(KERN_WARNING AUFS_NAME ": done\n"); ++ pr("done\n"); + ++#undef pr + au_plevel = plevel; +} + @@ -23223,7 +23230,7 @@ + pr_err("err %d (ignored)\n", err); +} --- a/fs/aufs/vdir.c 1970-01-01 01:00:00.000000000 +0100 -+++ b/fs/aufs/vdir.c 2013-02-19 06:25:53.235644735 +0000 ++++ b/fs/aufs/vdir.c 2013-05-04 18:39:11.239157326 +0100 @@ -0,0 +1,885 @@ +/* + * Copyright (C) 2005-2013 Junjiro R. Okajima @@ -24111,8 +24118,8 @@ + return 0; +} --- a/fs/aufs/vfsub.c 1970-01-01 01:00:00.000000000 +0100 -+++ b/fs/aufs/vfsub.c 2013-02-19 06:25:53.235644735 +0000 -@@ -0,0 +1,777 @@ ++++ b/fs/aufs/vfsub.c 2013-05-04 18:39:17.031157464 +0100 +@@ -0,0 +1,769 @@ +/* + * Copyright (C) 2005-2013 Junjiro R. Okajima + * @@ -24655,23 +24662,18 @@ +{ + int err; + struct inode *h_inode; ++ struct super_block *h_sb; + -+ h_inode = h_path->dentry->d_inode; + if (!h_file) { -+ err = vfsub_mnt_want_write(h_path->mnt); -+ if (err) -+ goto out; -+ err = inode_permission(h_inode, MAY_WRITE); -+ if (err) -+ goto out_mnt; -+ err = get_write_access(h_inode); -+ if (err) -+ goto out_mnt; -+ err = break_lease(h_inode, O_WRONLY); -+ if (err) -+ goto out_inode; ++ err = vfsub_truncate(h_path, length); ++ goto out; + } + ++ h_inode = h_path->dentry->d_inode; ++ h_sb = h_inode->i_sb; ++ lockdep_off(); ++ sb_start_write(h_sb); ++ lockdep_on(); + err = locks_verify_truncate(h_inode, h_file, length); + if (!err) + err = security_path_truncate(h_path); @@ -24680,13 +24682,10 @@ + err = do_truncate(h_path->dentry, length, attr, h_file); + lockdep_on(); + } ++ lockdep_off(); ++ sb_end_write(h_sb); ++ lockdep_on(); + -+out_inode: -+ if (!h_file) -+ put_write_access(h_inode); -+out_mnt: -+ if (!h_file) -+ vfsub_mnt_drop_write(h_path->mnt); +out: + return err; +} @@ -24891,8 +24890,8 @@ + return err; +} --- a/fs/aufs/vfsub.h 1970-01-01 01:00:00.000000000 +0100 -+++ b/fs/aufs/vfsub.h 2013-02-19 06:25:53.235644735 +0000 -@@ -0,0 +1,284 @@ ++++ b/fs/aufs/vfsub.h 2013-05-04 18:39:17.031157464 +0100 +@@ -0,0 +1,302 @@ +/* + * Copyright (C) 2005-2013 Junjiro R. Okajima + * @@ -24928,6 +24927,7 @@ +/* copied from linux/fs/internal.h */ +/* todo: BAD approach!! */ +extern struct lglock vfsmount_lock; ++extern void __mnt_drop_write(struct vfsmount *); +extern spinlock_t inode_sb_list_lock; + +/* copied from linux/fs/file_table.c */ @@ -25050,6 +25050,13 @@ + lockdep_on(); +} + ++static inline void vfsub_mnt_drop_write_file(struct file *file) ++{ ++ lockdep_off(); ++ mnt_drop_write_file(file); ++ lockdep_on(); ++} ++ +/* ---------------------------------------------------------------------- */ + +struct au_hinode; @@ -25123,6 +25130,16 @@ + unsigned int flags); +long vfsub_splice_from(struct pipe_inode_info *pipe, struct file *out, + loff_t *ppos, size_t len, unsigned int flags); ++ ++static inline long vfsub_truncate(struct path *path, loff_t length) ++{ ++ long err; ++ lockdep_off(); ++ err = vfs_truncate(path, length); ++ lockdep_on(); ++ return err; ++} ++ +int vfsub_trunc(struct path *h_path, loff_t length, unsigned int attr, + struct file *h_file); +int vfsub_fsync(struct file *file, struct path *path, int datasync); @@ -25178,7 +25195,7 @@ +#endif /* __KERNEL__ */ +#endif /* __AUFS_VFSUB_H__ */ --- a/fs/aufs/wbr_policy.c 1970-01-01 01:00:00.000000000 +0100 -+++ b/fs/aufs/wbr_policy.c 2013-02-19 06:25:53.235644735 +0000 ++++ b/fs/aufs/wbr_policy.c 2013-03-10 01:48:58.463093058 +0000 @@ -0,0 +1,700 @@ +/* + * Copyright (C) 2005-2013 Junjiro R. Okajima @@ -25881,7 +25898,7 @@ + } +}; --- a/fs/aufs/whout.c 1970-01-01 01:00:00.000000000 +0100 -+++ b/fs/aufs/whout.c 2013-02-19 06:25:53.235644735 +0000 ++++ b/fs/aufs/whout.c 2013-05-04 18:39:11.239157326 +0100 @@ -0,0 +1,1042 @@ +/* + * Copyright (C) 2005-2013 Junjiro R. Okajima @@ -26926,7 +26943,7 @@ + } +} --- a/fs/aufs/whout.h 1970-01-01 01:00:00.000000000 +0100 -+++ b/fs/aufs/whout.h 2013-02-19 06:25:53.235644735 +0000 ++++ b/fs/aufs/whout.h 2013-03-10 01:48:58.463093058 +0000 @@ -0,0 +1,88 @@ +/* + * Copyright (C) 2005-2013 Junjiro R. Okajima @@ -27017,7 +27034,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 2013-02-19 06:25:53.235644735 +0000 ++++ b/fs/aufs/wkq.c 2013-05-04 18:39:11.239157326 +0100 @@ -0,0 +1,214 @@ +/* + * Copyright (C) 2005-2013 Junjiro R. Okajima @@ -27234,7 +27251,7 @@ + return err; +} --- a/fs/aufs/wkq.h 1970-01-01 01:00:00.000000000 +0100 -+++ b/fs/aufs/wkq.h 2013-02-19 06:25:53.235644735 +0000 ++++ b/fs/aufs/wkq.h 2013-03-10 01:48:58.463093058 +0000 @@ -0,0 +1,92 @@ +/* + * Copyright (C) 2005-2013 Junjiro R. Okajima @@ -27329,7 +27346,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 2013-02-19 06:25:53.235644735 +0000 ++++ b/fs/aufs/xino.c 2013-05-04 18:39:11.239157326 +0100 @@ -0,0 +1,1265 @@ +/* + * Copyright (C) 2005-2013 Junjiro R. Okajima @@ -28597,7 +28614,7 @@ + return err; +} --- a/include/linux/aufs_type.h 1970-01-01 01:00:00.000000000 +0100 -+++ b/include/linux/aufs_type.h 2013-02-19 06:25:53.235644735 +0000 ++++ b/include/linux/aufs_type.h 2013-05-04 18:39:11.239157326 +0100 @@ -0,0 +1,19 @@ +/* + * Copyright (C) 2012-2013 Junjiro R. Okajima @@ -28619,7 +28636,7 @@ + +#include --- a/include/uapi/linux/aufs_type.h 1970-01-01 01:00:00.000000000 +0100 -+++ b/include/uapi/linux/aufs_type.h 2013-03-10 01:44:39.379086885 +0000 ++++ b/include/uapi/linux/aufs_type.h 2013-05-04 18:39:17.031157464 +0100 @@ -0,0 +1,234 @@ +/* + * Copyright (C) 2005-2013 Junjiro R. Okajima @@ -28663,7 +28680,7 @@ + +#include + -+#define AUFS_VERSION "3.8-20130311" ++#define AUFS_VERSION "3.8-20130325" + +/* todo? move this to linux-2.6.19/include/magic.h */ +#define AUFS_SUPER_MAGIC ('a' << 24 | 'u' << 16 | 'f' << 8 | 's') diff --git a/debian/patches/features/all/aufs3/aufs3-kbuild.patch b/debian/patches/features/all/aufs3/aufs3-kbuild.patch index 557458847..9d6ca94d2 100644 --- a/debian/patches/features/all/aufs3/aufs3-kbuild.patch +++ b/debian/patches/features/all/aufs3/aufs3-kbuild.patch @@ -21,3 +21,15 @@ index 9d53192..e70f08f 100644 obj-$(CONFIG_CEPH_FS) += ceph/ obj-$(CONFIG_PSTORE) += pstore/ +obj-$(CONFIG_AUFS_FS) += aufs/ +diff --git a/include/uapi/linux/Kbuild b/include/uapi/linux/Kbuild +index 4e67194..cc5b423 100644 +--- a/include/uapi/linux/Kbuild ++++ b/include/uapi/linux/Kbuild +@@ -56,6 +56,7 @@ header-y += atmppp.h + header-y += atmsap.h + header-y += atmsvc.h + header-y += audit.h ++header-y += aufs_type.h + header-y += auto_fs.h + header-y += auto_fs4.h + header-y += auxvec.h diff --git a/debian/patches/features/all/aufs3/aufs3-standalone.patch b/debian/patches/features/all/aufs3/aufs3-standalone.patch index ead1b3791..f13d7d9fd 100644 --- a/debian/patches/features/all/aufs3/aufs3-standalone.patch +++ b/debian/patches/features/all/aufs3/aufs3-standalone.patch @@ -42,7 +42,7 @@ index ece87ed..38f7bc8 100644 /** * touch_atime - update the access time diff --git a/fs/namespace.c b/fs/namespace.c -index 55605c5..aed7607 100644 +index 55605c5..9dbe3b9 100644 --- a/fs/namespace.c +++ b/fs/namespace.c @@ -52,6 +52,7 @@ EXPORT_SYMBOL_GPL(fs_kobj); @@ -53,7 +53,15 @@ index 55605c5..aed7607 100644 static inline unsigned long hash(struct vfsmount *mnt, struct dentry *dentry) { -@@ -1424,6 +1425,7 @@ int iterate_mounts(int (*f)(struct vfsmount *, void *), void *arg, +@@ -425,6 +426,7 @@ void __mnt_drop_write(struct vfsmount *mnt) + mnt_dec_writers(real_mount(mnt)); + preempt_enable(); + } ++EXPORT_SYMBOL_GPL(__mnt_drop_write); + + /** + * mnt_drop_write - give up write access to a mount +@@ -1424,6 +1426,7 @@ int iterate_mounts(int (*f)(struct vfsmount *, void *), void *arg, } return 0; }