aufs: Update to aufs3.8-20130325

svn path=/dists/sid/linux/; revision=20015
This commit is contained in:
Ben Hutchings 2013-05-04 17:47:27 +00:00
parent f4fca6a8fd
commit ca432f1977
4 changed files with 151 additions and 110 deletions

4
debian/changelog vendored
View File

@ -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 <ben@decadent.org.uk> Sat, 04 May 2013 03:45:10 +0100

View File

@ -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 <uapi/linux/aufs_type.h>
--- 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 <linux/limits.h>
+
+#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')

View File

@ -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

View File

@ -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;
}