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 ] [ Ben Hutchings ]
* [rt] Update to 3.8.10-rt6 * [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 -- 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_DEBUG) += debug.o
+aufs-$(CONFIG_AUFS_MAGIC_SYSRQ) += sysrq.o +aufs-$(CONFIG_AUFS_MAGIC_SYSRQ) += sysrq.o
--- a/fs/aufs/aufs.h 1970-01-01 01:00:00.000000000 +0100 --- 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 @@ @@ -0,0 +1,60 @@
+/* +/*
+ * Copyright (C) 2005-2013 Junjiro R. Okajima + * Copyright (C) 2005-2013 Junjiro R. Okajima
@ -313,7 +313,7 @@
+#endif /* __KERNEL__ */ +#endif /* __KERNEL__ */
+#endif /* __AUFS_H__ */ +#endif /* __AUFS_H__ */
--- a/fs/aufs/branch.c 1970-01-01 01:00:00.000000000 +0100 --- 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 @@ @@ -0,0 +1,1172 @@
+/* +/*
+ * Copyright (C) 2005-2013 Junjiro R. Okajima + * Copyright (C) 2005-2013 Junjiro R. Okajima
@ -1391,8 +1391,8 @@
+ hf->f_mode &= ~FMODE_WRITE; + hf->f_mode &= ~FMODE_WRITE;
+ spin_unlock(&hf->f_lock); + spin_unlock(&hf->f_lock);
+ if (!file_check_writeable(hf)) { + if (!file_check_writeable(hf)) {
+ __mnt_drop_write(hf->f_path.mnt);
+ file_release_write(hf); + file_release_write(hf);
+ vfsub_mnt_drop_write(hf->f_vfsmnt);
+ } + }
+ } + }
+ +
@ -1488,7 +1488,7 @@
+ return err; + return err;
+} +}
--- a/fs/aufs/branch.h 1970-01-01 01:00:00.000000000 +0100 --- 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 @@ @@ -0,0 +1,236 @@
+/* +/*
+ * Copyright (C) 2005-2013 Junjiro R. Okajima + * Copyright (C) 2005-2013 Junjiro R. Okajima
@ -1768,7 +1768,7 @@
+ +
+-include ${srctree}/${src}/conf_priv.mk +-include ${srctree}/${src}/conf_priv.mk
--- a/fs/aufs/cpup.c 1970-01-01 01:00:00.000000000 +0100 --- 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 @@ @@ -0,0 +1,1085 @@
+/* +/*
+ * Copyright (C) 2005-2013 Junjiro R. Okajima + * Copyright (C) 2005-2013 Junjiro R. Okajima
@ -2856,7 +2856,7 @@
+ return err; + return err;
+} +}
--- a/fs/aufs/cpup.h 1970-01-01 01:00:00.000000000 +0100 --- 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 @@ @@ -0,0 +1,81 @@
+/* +/*
+ * Copyright (C) 2005-2013 Junjiro R. Okajima + * Copyright (C) 2005-2013 Junjiro R. Okajima
@ -2940,8 +2940,8 @@
+#endif /* __KERNEL__ */ +#endif /* __KERNEL__ */
+#endif /* __AUFS_CPUP_H__ */ +#endif /* __AUFS_CPUP_H__ */
--- a/fs/aufs/dbgaufs.c 1970-01-01 01:00:00.000000000 +0100 --- 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 +++ b/fs/aufs/dbgaufs.c 2013-05-04 18:39:17.031157464 +0100
@@ -0,0 +1,334 @@ @@ -0,0 +1,332 @@
+/* +/*
+ * Copyright (C) 2005-2013 Junjiro R. Okajima + * Copyright (C) 2005-2013 Junjiro R. Okajima
+ * + *
@ -3119,10 +3119,8 @@
+ for (; bindex <= bend; bindex++) { + for (; bindex <= bend; bindex++) {
+ br = au_sbr(sb, bindex); + br = au_sbr(sb, bindex);
+ xi = &br->br_xino; + xi = &br->br_xino;
+ if (xi->xi_dbgaufs) { + debugfs_remove(xi->xi_dbgaufs);
+ debugfs_remove(xi->xi_dbgaufs); + xi->xi_dbgaufs = NULL;
+ xi->xi_dbgaufs = NULL;
+ }
+ } + }
+} +}
+ +
@ -3277,7 +3275,7 @@
+ return err; + return err;
+} +}
--- a/fs/aufs/dbgaufs.h 1970-01-01 01:00:00.000000000 +0100 --- 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 @@ @@ -0,0 +1,49 @@
+/* +/*
+ * Copyright (C) 2005-2013 Junjiro R. Okajima + * Copyright (C) 2005-2013 Junjiro R. Okajima
@ -3329,7 +3327,7 @@
+#endif /* __KERNEL__ */ +#endif /* __KERNEL__ */
+#endif /* __DBGAUFS_H__ */ +#endif /* __DBGAUFS_H__ */
--- a/fs/aufs/dcsub.c 1970-01-01 01:00:00.000000000 +0100 --- 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 @@ @@ -0,0 +1,243 @@
+/* +/*
+ * Copyright (C) 2005-2013 Junjiro R. Okajima + * Copyright (C) 2005-2013 Junjiro R. Okajima
@ -3575,7 +3573,7 @@
+ return path_is_under(path + 0, path + 1); + return path_is_under(path + 0, path + 1);
+} +}
--- a/fs/aufs/dcsub.h 1970-01-01 01:00:00.000000000 +0100 --- 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 @@ @@ -0,0 +1,94 @@
+/* +/*
+ * Copyright (C) 2005-2013 Junjiro R. Okajima + * Copyright (C) 2005-2013 Junjiro R. Okajima
@ -3672,8 +3670,8 @@
+#endif /* __KERNEL__ */ +#endif /* __KERNEL__ */
+#endif /* __AUFS_DCSUB_H__ */ +#endif /* __AUFS_DCSUB_H__ */
--- a/fs/aufs/debug.c 1970-01-01 01:00:00.000000000 +0100 --- 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 +++ b/fs/aufs/debug.c 2013-05-04 18:39:17.031157464 +0100
@@ -0,0 +1,490 @@ @@ -0,0 +1,493 @@
+/* +/*
+ * Copyright (C) 2005-2013 Junjiro R. Okajima + * Copyright (C) 2005-2013 Junjiro R. Okajima
+ * + *
@ -4004,8 +4002,11 @@
+ +
+void au_dbg_iattr(struct iattr *ia) +void au_dbg_iattr(struct iattr *ia)
+{ +{
+#define AuBit(name) if (ia->ia_valid & ATTR_ ## name) \ +#define AuBit(name) \
+ dpri(#name "\n") + do { \
+ if (ia->ia_valid & ATTR_ ## name) \
+ dpri(#name "\n"); \
+ } while (0)
+ AuBit(MODE); + AuBit(MODE);
+ AuBit(UID); + AuBit(UID);
+ AuBit(GID); + AuBit(GID);
@ -4165,7 +4166,7 @@
+ return 0; + return 0;
+} +}
--- a/fs/aufs/debug.h 1970-01-01 01:00:00.000000000 +0100 --- 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 @@ @@ -0,0 +1,242 @@
+/* +/*
+ * Copyright (C) 2005-2013 Junjiro R. Okajima + * Copyright (C) 2005-2013 Junjiro R. Okajima
@ -4410,7 +4411,7 @@
+#endif /* __KERNEL__ */ +#endif /* __KERNEL__ */
+#endif /* __AUFS_DEBUG_H__ */ +#endif /* __AUFS_DEBUG_H__ */
--- a/fs/aufs/dentry.c 1970-01-01 01:00:00.000000000 +0100 --- 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 @@ @@ -0,0 +1,1060 @@
+/* +/*
+ * Copyright (C) 2005-2013 Junjiro R. Okajima + * Copyright (C) 2005-2013 Junjiro R. Okajima
@ -5473,7 +5474,7 @@
+ .d_release = aufs_d_release + .d_release = aufs_d_release
+}; +};
--- a/fs/aufs/dentry.h 1970-01-01 01:00:00.000000000 +0100 --- 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 @@ @@ -0,0 +1,234 @@
+/* +/*
+ * Copyright (C) 2005-2013 Junjiro R. Okajima + * Copyright (C) 2005-2013 Junjiro R. Okajima
@ -5710,7 +5711,7 @@
+#endif /* __KERNEL__ */ +#endif /* __KERNEL__ */
+#endif /* __AUFS_DENTRY_H__ */ +#endif /* __AUFS_DENTRY_H__ */
--- a/fs/aufs/dinfo.c 1970-01-01 01:00:00.000000000 +0100 --- 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 @@ @@ -0,0 +1,543 @@
+/* +/*
+ * Copyright (C) 2005-2013 Junjiro R. Okajima + * Copyright (C) 2005-2013 Junjiro R. Okajima
@ -6256,7 +6257,7 @@
+ return -1; + return -1;
+} +}
--- a/fs/aufs/dir.c 1970-01-01 01:00:00.000000000 +0100 --- 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 @@ @@ -0,0 +1,633 @@
+/* +/*
+ * Copyright (C) 2005-2013 Junjiro R. Okajima + * Copyright (C) 2005-2013 Junjiro R. Okajima
@ -6892,7 +6893,7 @@
+ .fsync = aufs_fsync_dir + .fsync = aufs_fsync_dir
+}; +};
--- a/fs/aufs/dir.h 1970-01-01 01:00:00.000000000 +0100 --- 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 @@ @@ -0,0 +1,137 @@
+/* +/*
+ * Copyright (C) 2005-2013 Junjiro R. Okajima + * Copyright (C) 2005-2013 Junjiro R. Okajima
@ -7032,7 +7033,7 @@
+#endif /* __KERNEL__ */ +#endif /* __KERNEL__ */
+#endif /* __AUFS_DIR_H__ */ +#endif /* __AUFS_DIR_H__ */
--- a/fs/aufs/dynop.c 1970-01-01 01:00:00.000000000 +0100 --- 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 @@ @@ -0,0 +1,379 @@
+/* +/*
+ * Copyright (C) 2010-2013 Junjiro R. Okajima + * Copyright (C) 2010-2013 Junjiro R. Okajima
@ -7414,7 +7415,7 @@
+ WARN_ON(!list_empty(&dynop[i].head)); + WARN_ON(!list_empty(&dynop[i].head));
+} +}
--- a/fs/aufs/dynop.h 1970-01-01 01:00:00.000000000 +0100 --- 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 @@ @@ -0,0 +1,76 @@
+/* +/*
+ * Copyright (C) 2010-2013 Junjiro R. Okajima + * Copyright (C) 2010-2013 Junjiro R. Okajima
@ -7493,7 +7494,7 @@
+#endif /* __KERNEL__ */ +#endif /* __KERNEL__ */
+#endif /* __AUFS_DYNOP_H__ */ +#endif /* __AUFS_DYNOP_H__ */
--- a/fs/aufs/export.c 1970-01-01 01:00:00.000000000 +0100 --- 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 @@ @@ -0,0 +1,827 @@
+/* +/*
+ * Copyright (C) 2005-2013 Junjiro R. Okajima + * Copyright (C) 2005-2013 Junjiro R. Okajima
@ -8323,7 +8324,7 @@
+ atomic_set(&sbinfo->si_xigen_next, u); + atomic_set(&sbinfo->si_xigen_next, u);
+} +}
--- a/fs/aufs/f_op.c 1970-01-01 01:00:00.000000000 +0100 --- 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 @@ @@ -0,0 +1,723 @@
+/* +/*
+ * Copyright (C) 2005-2013 Junjiro R. Okajima + * Copyright (C) 2005-2013 Junjiro R. Okajima
@ -9049,7 +9050,7 @@
+#endif +#endif
+}; +};
--- a/fs/aufs/f_op_sp.c 1970-01-01 01:00:00.000000000 +0100 --- 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 @@ @@ -0,0 +1,295 @@
+/* +/*
+ * Copyright (C) 2005-2013 Junjiro R. Okajima + * Copyright (C) 2005-2013 Junjiro R. Okajima
@ -9347,7 +9348,7 @@
+ return ret; + return ret;
+} +}
--- a/fs/aufs/file.c 1970-01-01 01:00:00.000000000 +0100 --- 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 @@ @@ -0,0 +1,683 @@
+/* +/*
+ * Copyright (C) 2005-2013 Junjiro R. Okajima + * Copyright (C) 2005-2013 Junjiro R. Okajima
@ -10033,7 +10034,7 @@
+#endif /* CONFIG_AUFS_DEBUG */ +#endif /* CONFIG_AUFS_DEBUG */
+}; +};
--- a/fs/aufs/file.h 1970-01-01 01:00:00.000000000 +0100 --- 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 @@ @@ -0,0 +1,298 @@
+/* +/*
+ * Copyright (C) 2005-2013 Junjiro R. Okajima + * Copyright (C) 2005-2013 Junjiro R. Okajima
@ -10334,7 +10335,7 @@
+#endif /* __KERNEL__ */ +#endif /* __KERNEL__ */
+#endif /* __AUFS_FILE_H__ */ +#endif /* __AUFS_FILE_H__ */
--- a/fs/aufs/finfo.c 1970-01-01 01:00:00.000000000 +0100 --- 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 @@ @@ -0,0 +1,157 @@
+/* +/*
+ * Copyright (C) 2005-2013 Junjiro R. Okajima + * Copyright (C) 2005-2013 Junjiro R. Okajima
@ -10494,7 +10495,7 @@
+ return err; + return err;
+} +}
--- a/fs/aufs/fstype.h 1970-01-01 01:00:00.000000000 +0100 --- 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 @@ @@ -0,0 +1,481 @@
+/* +/*
+ * Copyright (C) 2005-2013 Junjiro R. Okajima + * Copyright (C) 2005-2013 Junjiro R. Okajima
@ -10978,8 +10979,8 @@
+#endif /* __KERNEL__ */ +#endif /* __KERNEL__ */
+#endif /* __AUFS_FSTYPE_H__ */ +#endif /* __AUFS_FSTYPE_H__ */
--- a/fs/aufs/hfsnotify.c 1970-01-01 01:00:00.000000000 +0100 --- 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 +++ b/fs/aufs/hfsnotify.c 2013-05-04 18:39:17.031157464 +0100
@@ -0,0 +1,293 @@ @@ -0,0 +1,296 @@
+/* +/*
+ * Copyright (C) 2005-2013 Junjiro R. Okajima + * Copyright (C) 2005-2013 Junjiro R. Okajima
+ * + *
@ -11098,8 +11099,11 @@
+static char *au_hfsn_name(u32 mask) +static char *au_hfsn_name(u32 mask)
+{ +{
+#ifdef CONFIG_AUFS_DEBUG +#ifdef CONFIG_AUFS_DEBUG
+#define test_ret(flag) if (mask & flag) \ +#define test_ret(flag) \
+ return #flag; + do { \
+ if (mask & flag) \
+ return #flag; \
+ } while (0)
+ test_ret(FS_ACCESS); + test_ret(FS_ACCESS);
+ test_ret(FS_MODIFY); + test_ret(FS_MODIFY);
+ test_ret(FS_ATTRIB); + test_ret(FS_ATTRIB);
@ -11274,7 +11278,7 @@
+ .init_br = au_hfsn_init_br + .init_br = au_hfsn_init_br
+}; +};
--- a/fs/aufs/hfsplus.c 1970-01-01 01:00:00.000000000 +0100 --- 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 @@ @@ -0,0 +1,57 @@
+/* +/*
+ * Copyright (C) 2010-2013 Junjiro R. Okajima + * Copyright (C) 2010-2013 Junjiro R. Okajima
@ -11334,7 +11338,7 @@
+ } + }
+} +}
--- a/fs/aufs/hnotify.c 1970-01-01 01:00:00.000000000 +0100 --- 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 @@ @@ -0,0 +1,713 @@
+/* +/*
+ * Copyright (C) 2005-2013 Junjiro R. Okajima + * Copyright (C) 2005-2013 Junjiro R. Okajima
@ -12050,7 +12054,7 @@
+ au_hn_destroy_cache(); + au_hn_destroy_cache();
+} +}
--- a/fs/aufs/i_op.c 1970-01-01 01:00:00.000000000 +0100 --- 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 @@ @@ -0,0 +1,1030 @@
+/* +/*
+ * Copyright (C) 2005-2013 Junjiro R. Okajima + * Copyright (C) 2005-2013 Junjiro R. Okajima
@ -13083,7 +13087,7 @@
+ .update_time = aufs_update_time + .update_time = aufs_update_time
+}; +};
--- a/fs/aufs/i_op_add.c 1970-01-01 01:00:00.000000000 +0100 --- 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 @@ @@ -0,0 +1,713 @@
+/* +/*
+ * Copyright (C) 2005-2013 Junjiro R. Okajima + * Copyright (C) 2005-2013 Junjiro R. Okajima
@ -13799,7 +13803,7 @@
+ return err; + return err;
+} +}
--- a/fs/aufs/i_op_del.c 1970-01-01 01:00:00.000000000 +0100 --- 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 @@ @@ -0,0 +1,477 @@
+/* +/*
+ * Copyright (C) 2005-2013 Junjiro R. Okajima + * Copyright (C) 2005-2013 Junjiro R. Okajima
@ -14279,7 +14283,7 @@
+ return err; + return err;
+} +}
--- a/fs/aufs/i_op_ren.c 1970-01-01 01:00:00.000000000 +0100 --- 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 @@ @@ -0,0 +1,1026 @@
+/* +/*
+ * Copyright (C) 2005-2013 Junjiro R. Okajima + * Copyright (C) 2005-2013 Junjiro R. Okajima
@ -15308,7 +15312,7 @@
+ return err; + return err;
+} +}
--- a/fs/aufs/iinfo.c 1970-01-01 01:00:00.000000000 +0100 --- 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 @@ @@ -0,0 +1,276 @@
+/* +/*
+ * Copyright (C) 2005-2013 Junjiro R. Okajima + * Copyright (C) 2005-2013 Junjiro R. Okajima
@ -15587,7 +15591,7 @@
+ AuRwDestroy(&iinfo->ii_rwsem); + AuRwDestroy(&iinfo->ii_rwsem);
+} +}
--- a/fs/aufs/inode.c 1970-01-01 01:00:00.000000000 +0100 --- 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 @@ @@ -0,0 +1,492 @@
+/* +/*
+ * Copyright (C) 2005-2013 Junjiro R. Okajima + * Copyright (C) 2005-2013 Junjiro R. Okajima
@ -16082,7 +16086,7 @@
+ return au_test_h_perm(h_inode, mask); + return au_test_h_perm(h_inode, mask);
+} +}
--- a/fs/aufs/inode.h 1970-01-01 01:00:00.000000000 +0100 --- 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 @@ @@ -0,0 +1,588 @@
+/* +/*
+ * Copyright (C) 2005-2013 Junjiro R. Okajima + * Copyright (C) 2005-2013 Junjiro R. Okajima
@ -16673,7 +16677,7 @@
+#endif /* __KERNEL__ */ +#endif /* __KERNEL__ */
+#endif /* __AUFS_INODE_H__ */ +#endif /* __AUFS_INODE_H__ */
--- a/fs/aufs/ioctl.c 1970-01-01 01:00:00.000000000 +0100 --- 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 @@ @@ -0,0 +1,196 @@
+/* +/*
+ * Copyright (C) 2005-2013 Junjiro R. Okajima + * Copyright (C) 2005-2013 Junjiro R. Okajima
@ -16872,7 +16876,7 @@
+#endif +#endif
+#endif +#endif
--- a/fs/aufs/loop.c 1970-01-01 01:00:00.000000000 +0100 --- 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 @@ @@ -0,0 +1,135 @@
+/* +/*
+ * Copyright (C) 2005-2013 Junjiro R. Okajima + * Copyright (C) 2005-2013 Junjiro R. Okajima
@ -17010,7 +17014,7 @@
+ kfree(au_warn_loopback_array); + kfree(au_warn_loopback_array);
+} +}
--- a/fs/aufs/loop.h 1970-01-01 01:00:00.000000000 +0100 --- 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 @@ @@ -0,0 +1,50 @@
+/* +/*
+ * Copyright (C) 2005-2013 Junjiro R. Okajima + * Copyright (C) 2005-2013 Junjiro R. Okajima
@ -17120,7 +17124,7 @@
+ccflags-y += -DHFSPLUS_SUPER_MAGIC=0x482b +ccflags-y += -DHFSPLUS_SUPER_MAGIC=0x482b
+endif +endif
--- a/fs/aufs/module.c 1970-01-01 01:00:00.000000000 +0100 --- 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 @@ @@ -0,0 +1,202 @@
+/* +/*
+ * Copyright (C) 2005-2013 Junjiro R. Okajima + * Copyright (C) 2005-2013 Junjiro R. Okajima
@ -17325,7 +17329,7 @@
+module_init(aufs_init); +module_init(aufs_init);
+module_exit(aufs_exit); +module_exit(aufs_exit);
--- a/fs/aufs/module.h 1970-01-01 01:00:00.000000000 +0100 --- 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 @@ @@ -0,0 +1,105 @@
+/* +/*
+ * Copyright (C) 2005-2013 Junjiro R. Okajima + * Copyright (C) 2005-2013 Junjiro R. Okajima
@ -17433,7 +17437,7 @@
+#endif /* __KERNEL__ */ +#endif /* __KERNEL__ */
+#endif /* __AUFS_MODULE_H__ */ +#endif /* __AUFS_MODULE_H__ */
--- a/fs/aufs/opts.c 1970-01-01 01:00:00.000000000 +0100 --- 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 @@ @@ -0,0 +1,1677 @@
+/* +/*
+ * Copyright (C) 2005-2013 Junjiro R. Okajima + * Copyright (C) 2005-2013 Junjiro R. Okajima
@ -19113,7 +19117,7 @@
+ return au_mntflags(sb) & AuOptMask_UDBA; + return au_mntflags(sb) & AuOptMask_UDBA;
+} +}
--- a/fs/aufs/opts.h 1970-01-01 01:00:00.000000000 +0100 --- 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 @@ @@ -0,0 +1,209 @@
+/* +/*
+ * Copyright (C) 2005-2013 Junjiro R. Okajima + * Copyright (C) 2005-2013 Junjiro R. Okajima
@ -19325,7 +19329,7 @@
+#endif /* __KERNEL__ */ +#endif /* __KERNEL__ */
+#endif /* __AUFS_OPTS_H__ */ +#endif /* __AUFS_OPTS_H__ */
--- a/fs/aufs/plink.c 1970-01-01 01:00:00.000000000 +0100 --- 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 @@ @@ -0,0 +1,511 @@
+/* +/*
+ * Copyright (C) 2005-2013 Junjiro R. Okajima + * Copyright (C) 2005-2013 Junjiro R. Okajima
@ -19839,7 +19843,7 @@
+ } + }
+} +}
--- a/fs/aufs/poll.c 1970-01-01 01:00:00.000000000 +0100 --- 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 @@ @@ -0,0 +1,56 @@
+/* +/*
+ * Copyright (C) 2005-2013 Junjiro R. Okajima + * Copyright (C) 2005-2013 Junjiro R. Okajima
@ -19898,7 +19902,7 @@
+ return mask; + return mask;
+} +}
--- a/fs/aufs/procfs.c 1970-01-01 01:00:00.000000000 +0100 --- 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 @@ @@ -0,0 +1,170 @@
+/* +/*
+ * Copyright (C) 2010-2013 Junjiro R. Okajima + * Copyright (C) 2010-2013 Junjiro R. Okajima
@ -20071,7 +20075,7 @@
+ return err; + return err;
+} +}
--- a/fs/aufs/rdu.c 1970-01-01 01:00:00.000000000 +0100 --- 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 @@ @@ -0,0 +1,384 @@
+/* +/*
+ * Copyright (C) 2005-2013 Junjiro R. Okajima + * Copyright (C) 2005-2013 Junjiro R. Okajima
@ -20458,7 +20462,7 @@
+} +}
+#endif +#endif
--- a/fs/aufs/rwsem.h 1970-01-01 01:00:00.000000000 +0100 --- 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 @@ @@ -0,0 +1,188 @@
+/* +/*
+ * Copyright (C) 2005-2013 Junjiro R. Okajima + * Copyright (C) 2005-2013 Junjiro R. Okajima
@ -20649,7 +20653,7 @@
+#endif /* __KERNEL__ */ +#endif /* __KERNEL__ */
+#endif /* __AUFS_RWSEM_H__ */ +#endif /* __AUFS_RWSEM_H__ */
--- a/fs/aufs/sbinfo.c 1970-01-01 01:00:00.000000000 +0100 --- 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 @@ @@ -0,0 +1,343 @@
+/* +/*
+ * Copyright (C) 2005-2013 Junjiro R. Okajima + * Copyright (C) 2005-2013 Junjiro R. Okajima
@ -20995,7 +20999,7 @@
+ spin_unlock(&sbinfo->au_si_pid.tree_lock); + spin_unlock(&sbinfo->au_si_pid.tree_lock);
+} +}
--- a/fs/aufs/spl.h 1970-01-01 01:00:00.000000000 +0100 --- 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 @@ @@ -0,0 +1,62 @@
+/* +/*
+ * Copyright (C) 2005-2013 Junjiro R. Okajima + * Copyright (C) 2005-2013 Junjiro R. Okajima
@ -21060,7 +21064,7 @@
+#endif /* __KERNEL__ */ +#endif /* __KERNEL__ */
+#endif /* __AUFS_SPL_H__ */ +#endif /* __AUFS_SPL_H__ */
--- a/fs/aufs/super.c 1970-01-01 01:00:00.000000000 +0100 --- 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 @@ @@ -0,0 +1,993 @@
+/* +/*
+ * Copyright (C) 2005-2013 Junjiro R. Okajima + * Copyright (C) 2005-2013 Junjiro R. Okajima
@ -22056,7 +22060,7 @@
+ .owner = THIS_MODULE, + .owner = THIS_MODULE,
+}; +};
--- a/fs/aufs/super.h 1970-01-01 01:00:00.000000000 +0100 --- 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 @@ @@ -0,0 +1,538 @@
+/* +/*
+ * Copyright (C) 2005-2013 Junjiro R. Okajima + * Copyright (C) 2005-2013 Junjiro R. Okajima
@ -22597,7 +22601,7 @@
+#endif /* __KERNEL__ */ +#endif /* __KERNEL__ */
+#endif /* __AUFS_SUPER_H__ */ +#endif /* __AUFS_SUPER_H__ */
--- a/fs/aufs/sysaufs.c 1970-01-01 01:00:00.000000000 +0100 --- 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 @@ @@ -0,0 +1,105 @@
+/* +/*
+ * Copyright (C) 2005-2013 Junjiro R. Okajima + * Copyright (C) 2005-2013 Junjiro R. Okajima
@ -22705,7 +22709,7 @@
+ return err; + return err;
+} +}
--- a/fs/aufs/sysaufs.h 1970-01-01 01:00:00.000000000 +0100 --- 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 @@ @@ -0,0 +1,104 @@
+/* +/*
+ * Copyright (C) 2005-2013 Junjiro R. Okajima + * Copyright (C) 2005-2013 Junjiro R. Okajima
@ -22812,7 +22816,7 @@
+#endif /* __KERNEL__ */ +#endif /* __KERNEL__ */
+#endif /* __SYSAUFS_H__ */ +#endif /* __SYSAUFS_H__ */
--- a/fs/aufs/sysfs.c 1970-01-01 01:00:00.000000000 +0100 --- 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 @@ @@ -0,0 +1,257 @@
+/* +/*
+ * Copyright (C) 2005-2013 Junjiro R. Okajima + * Copyright (C) 2005-2013 Junjiro R. Okajima
@ -23072,8 +23076,8 @@
+ } + }
+} +}
--- a/fs/aufs/sysrq.c 1970-01-01 01:00:00.000000000 +0100 --- 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 +++ b/fs/aufs/sysrq.c 2013-05-04 18:39:17.031157464 +0100
@@ -0,0 +1,148 @@ @@ -0,0 +1,151 @@
+/* +/*
+ * Copyright (C) 2005-2013 Junjiro R. Okajima + * Copyright (C) 2005-2013 Junjiro R. Okajima
+ * + *
@ -23111,16 +23115,18 @@
+ plevel = au_plevel; + plevel = au_plevel;
+ au_plevel = KERN_WARNING; + au_plevel = KERN_WARNING;
+ +
+ sbinfo = au_sbi(sb);
+ /* since we define pr_fmt, call printk directly */ + /* 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 "si=%lx\n", sysaufs_si_id(sbinfo));
+ printk(KERN_WARNING AUFS_NAME ": superblock\n"); + pr("superblock\n");
+ au_dpri_sb(sb); + au_dpri_sb(sb);
+ +
+#if 0 +#if 0
+ printk(KERN_WARNING AUFS_NAME ": root dentry\n"); + pr("root dentry\n");
+ au_dpri_dentry(sb->s_root); + 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); + au_dpri_inode(sb->s_root->d_inode);
+#endif +#endif
+ +
@ -23148,7 +23154,7 @@
+#if 1 +#if 1
+ { + {
+ struct inode *i; + struct inode *i;
+ printk(KERN_WARNING AUFS_NAME ": isolated inode\n"); + pr("isolated inode\n");
+ spin_lock(&inode_sb_list_lock); + spin_lock(&inode_sb_list_lock);
+ list_for_each_entry(i, &sb->s_inodes, i_sb_list) { + list_for_each_entry(i, &sb->s_inodes, i_sb_list) {
+ spin_lock(&i->i_lock); + spin_lock(&i->i_lock);
@ -23159,7 +23165,7 @@
+ spin_unlock(&inode_sb_list_lock); + spin_unlock(&inode_sb_list_lock);
+ } + }
+#endif +#endif
+ printk(KERN_WARNING AUFS_NAME ": files\n"); + pr("files\n");
+ lg_global_lock(&files_lglock); + lg_global_lock(&files_lglock);
+ do_file_list_for_each_entry(sb, file) { + do_file_list_for_each_entry(sb, file) {
+ umode_t mode; + umode_t mode;
@ -23168,8 +23174,9 @@
+ au_dpri_file(file); + au_dpri_file(file);
+ } while_file_list_for_each_entry; + } while_file_list_for_each_entry;
+ lg_global_unlock(&files_lglock); + lg_global_unlock(&files_lglock);
+ printk(KERN_WARNING AUFS_NAME ": done\n"); + pr("done\n");
+ +
+#undef pr
+ au_plevel = plevel; + au_plevel = plevel;
+} +}
+ +
@ -23223,7 +23230,7 @@
+ pr_err("err %d (ignored)\n", err); + pr_err("err %d (ignored)\n", err);
+} +}
--- a/fs/aufs/vdir.c 1970-01-01 01:00:00.000000000 +0100 --- 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 @@ @@ -0,0 +1,885 @@
+/* +/*
+ * Copyright (C) 2005-2013 Junjiro R. Okajima + * Copyright (C) 2005-2013 Junjiro R. Okajima
@ -24111,8 +24118,8 @@
+ return 0; + return 0;
+} +}
--- a/fs/aufs/vfsub.c 1970-01-01 01:00:00.000000000 +0100 --- 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 +++ b/fs/aufs/vfsub.c 2013-05-04 18:39:17.031157464 +0100
@@ -0,0 +1,777 @@ @@ -0,0 +1,769 @@
+/* +/*
+ * Copyright (C) 2005-2013 Junjiro R. Okajima + * Copyright (C) 2005-2013 Junjiro R. Okajima
+ * + *
@ -24655,23 +24662,18 @@
+{ +{
+ int err; + int err;
+ struct inode *h_inode; + struct inode *h_inode;
+ struct super_block *h_sb;
+ +
+ h_inode = h_path->dentry->d_inode;
+ if (!h_file) { + if (!h_file) {
+ err = vfsub_mnt_want_write(h_path->mnt); + err = vfsub_truncate(h_path, length);
+ if (err) + goto out;
+ 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;
+ } + }
+ +
+ 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); + err = locks_verify_truncate(h_inode, h_file, length);
+ if (!err) + if (!err)
+ err = security_path_truncate(h_path); + err = security_path_truncate(h_path);
@ -24680,13 +24682,10 @@
+ err = do_truncate(h_path->dentry, length, attr, h_file); + err = do_truncate(h_path->dentry, length, attr, h_file);
+ lockdep_on(); + 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: +out:
+ return err; + return err;
+} +}
@ -24891,8 +24890,8 @@
+ return err; + return err;
+} +}
--- a/fs/aufs/vfsub.h 1970-01-01 01:00:00.000000000 +0100 --- 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 +++ b/fs/aufs/vfsub.h 2013-05-04 18:39:17.031157464 +0100
@@ -0,0 +1,284 @@ @@ -0,0 +1,302 @@
+/* +/*
+ * Copyright (C) 2005-2013 Junjiro R. Okajima + * Copyright (C) 2005-2013 Junjiro R. Okajima
+ * + *
@ -24928,6 +24927,7 @@
+/* copied from linux/fs/internal.h */ +/* copied from linux/fs/internal.h */
+/* todo: BAD approach!! */ +/* todo: BAD approach!! */
+extern struct lglock vfsmount_lock; +extern struct lglock vfsmount_lock;
+extern void __mnt_drop_write(struct vfsmount *);
+extern spinlock_t inode_sb_list_lock; +extern spinlock_t inode_sb_list_lock;
+ +
+/* copied from linux/fs/file_table.c */ +/* copied from linux/fs/file_table.c */
@ -25050,6 +25050,13 @@
+ lockdep_on(); + 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; +struct au_hinode;
@ -25123,6 +25130,16 @@
+ unsigned int flags); + unsigned int flags);
+long vfsub_splice_from(struct pipe_inode_info *pipe, struct file *out, +long vfsub_splice_from(struct pipe_inode_info *pipe, struct file *out,
+ loff_t *ppos, size_t len, unsigned int flags); + 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, +int vfsub_trunc(struct path *h_path, loff_t length, unsigned int attr,
+ struct file *h_file); + struct file *h_file);
+int vfsub_fsync(struct file *file, struct path *path, int datasync); +int vfsub_fsync(struct file *file, struct path *path, int datasync);
@ -25178,7 +25195,7 @@
+#endif /* __KERNEL__ */ +#endif /* __KERNEL__ */
+#endif /* __AUFS_VFSUB_H__ */ +#endif /* __AUFS_VFSUB_H__ */
--- a/fs/aufs/wbr_policy.c 1970-01-01 01:00:00.000000000 +0100 --- 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 @@ @@ -0,0 +1,700 @@
+/* +/*
+ * Copyright (C) 2005-2013 Junjiro R. Okajima + * Copyright (C) 2005-2013 Junjiro R. Okajima
@ -25881,7 +25898,7 @@
+ } + }
+}; +};
--- a/fs/aufs/whout.c 1970-01-01 01:00:00.000000000 +0100 --- 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 @@ @@ -0,0 +1,1042 @@
+/* +/*
+ * Copyright (C) 2005-2013 Junjiro R. Okajima + * Copyright (C) 2005-2013 Junjiro R. Okajima
@ -26926,7 +26943,7 @@
+ } + }
+} +}
--- a/fs/aufs/whout.h 1970-01-01 01:00:00.000000000 +0100 --- 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 @@ @@ -0,0 +1,88 @@
+/* +/*
+ * Copyright (C) 2005-2013 Junjiro R. Okajima + * Copyright (C) 2005-2013 Junjiro R. Okajima
@ -27017,7 +27034,7 @@
+#endif /* __KERNEL__ */ +#endif /* __KERNEL__ */
+#endif /* __AUFS_WHOUT_H__ */ +#endif /* __AUFS_WHOUT_H__ */
--- a/fs/aufs/wkq.c 1970-01-01 01:00:00.000000000 +0100 --- 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 @@ @@ -0,0 +1,214 @@
+/* +/*
+ * Copyright (C) 2005-2013 Junjiro R. Okajima + * Copyright (C) 2005-2013 Junjiro R. Okajima
@ -27234,7 +27251,7 @@
+ return err; + return err;
+} +}
--- a/fs/aufs/wkq.h 1970-01-01 01:00:00.000000000 +0100 --- 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 @@ @@ -0,0 +1,92 @@
+/* +/*
+ * Copyright (C) 2005-2013 Junjiro R. Okajima + * Copyright (C) 2005-2013 Junjiro R. Okajima
@ -27329,7 +27346,7 @@
+#endif /* __KERNEL__ */ +#endif /* __KERNEL__ */
+#endif /* __AUFS_WKQ_H__ */ +#endif /* __AUFS_WKQ_H__ */
--- a/fs/aufs/xino.c 1970-01-01 01:00:00.000000000 +0100 --- 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 @@ @@ -0,0 +1,1265 @@
+/* +/*
+ * Copyright (C) 2005-2013 Junjiro R. Okajima + * Copyright (C) 2005-2013 Junjiro R. Okajima
@ -28597,7 +28614,7 @@
+ return err; + return err;
+} +}
--- a/include/linux/aufs_type.h 1970-01-01 01:00:00.000000000 +0100 --- 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 @@ @@ -0,0 +1,19 @@
+/* +/*
+ * Copyright (C) 2012-2013 Junjiro R. Okajima + * Copyright (C) 2012-2013 Junjiro R. Okajima
@ -28619,7 +28636,7 @@
+ +
+#include <uapi/linux/aufs_type.h> +#include <uapi/linux/aufs_type.h>
--- a/include/uapi/linux/aufs_type.h 1970-01-01 01:00:00.000000000 +0100 --- 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 @@ @@ -0,0 +1,234 @@
+/* +/*
+ * Copyright (C) 2005-2013 Junjiro R. Okajima + * Copyright (C) 2005-2013 Junjiro R. Okajima
@ -28663,7 +28680,7 @@
+ +
+#include <linux/limits.h> +#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 */ +/* todo? move this to linux-2.6.19/include/magic.h */
+#define AUFS_SUPER_MAGIC ('a' << 24 | 'u' << 16 | 'f' << 8 | 's') +#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_CEPH_FS) += ceph/
obj-$(CONFIG_PSTORE) += pstore/ obj-$(CONFIG_PSTORE) += pstore/
+obj-$(CONFIG_AUFS_FS) += aufs/ +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 * touch_atime - update the access time
diff --git a/fs/namespace.c b/fs/namespace.c diff --git a/fs/namespace.c b/fs/namespace.c
index 55605c5..aed7607 100644 index 55605c5..9dbe3b9 100644
--- a/fs/namespace.c --- a/fs/namespace.c
+++ b/fs/namespace.c +++ b/fs/namespace.c
@@ -52,6 +52,7 @@ EXPORT_SYMBOL_GPL(fs_kobj); @@ -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) 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; return 0;
} }