mirror of
https://abf.rosa.ru/djam/kernel-6.6.git
synced 2025-02-25 20:02:47 +00:00
Fixed the AUFS patch for the kernel 4.11
This commit is contained in:
parent
c3fbc1a79e
commit
cf8d6820a4
1 changed files with 22 additions and 14 deletions
|
@ -3953,7 +3953,7 @@ index 0000000..0bbb2d3
|
||||||
+-include ${srctree}/${src}/conf_priv.mk
|
+-include ${srctree}/${src}/conf_priv.mk
|
||||||
diff --git a/fs/aufs/cpup.c b/fs/aufs/cpup.c
|
diff --git a/fs/aufs/cpup.c b/fs/aufs/cpup.c
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 0000000..f5ca12b
|
index 0000000..87ae97f0
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/fs/aufs/cpup.c
|
+++ b/fs/aufs/cpup.c
|
||||||
@@ -0,0 +1,1407 @@
|
@@ -0,0 +1,1407 @@
|
||||||
|
@ -4439,10 +4439,10 @@ index 0000000..f5ca12b
|
||||||
+ h_path.mnt = au_sbr_mnt(cpg->dentry->d_sb, cpg->bsrc);
|
+ h_path.mnt = au_sbr_mnt(cpg->dentry->d_sb, cpg->bsrc);
|
||||||
+ h_src_attr->iflags = h_src_inode->i_flags;
|
+ h_src_attr->iflags = h_src_inode->i_flags;
|
||||||
+ if (!au_test_nfs(h_src_inode->i_sb))
|
+ if (!au_test_nfs(h_src_inode->i_sb))
|
||||||
+ err = vfs_getattr(&h_path, &h_src_attr->st);
|
+ err = vfsub_getattr(&h_path, &h_src_attr->st);
|
||||||
+ else {
|
+ else {
|
||||||
+ inode_unlock(h_src_inode);
|
+ inode_unlock(h_src_inode);
|
||||||
+ err = vfs_getattr(&h_path, &h_src_attr->st);
|
+ err = vfsub_getattr(&h_path, &h_src_attr->st);
|
||||||
+ inode_lock_nested(h_src_inode, AuLsc_I_CHILD);
|
+ inode_lock_nested(h_src_inode, AuLsc_I_CHILD);
|
||||||
+ }
|
+ }
|
||||||
+ if (unlikely(err)) {
|
+ if (unlikely(err)) {
|
||||||
|
@ -5466,7 +5466,7 @@ index 0000000..9c20116
|
||||||
+#endif /* __AUFS_CPUP_H__ */
|
+#endif /* __AUFS_CPUP_H__ */
|
||||||
diff --git a/fs/aufs/dbgaufs.c b/fs/aufs/dbgaufs.c
|
diff --git a/fs/aufs/dbgaufs.c b/fs/aufs/dbgaufs.c
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 0000000..30913f4
|
index 0000000..97a4950
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/fs/aufs/dbgaufs.c
|
+++ b/fs/aufs/dbgaufs.c
|
||||||
@@ -0,0 +1,438 @@
|
@@ -0,0 +1,438 @@
|
||||||
|
@ -5534,7 +5534,7 @@ index 0000000..30913f4
|
||||||
+ if (!xf)
|
+ if (!xf)
|
||||||
+ goto out;
|
+ goto out;
|
||||||
+
|
+
|
||||||
+ err = vfs_getattr(&xf->f_path, &st);
|
+ err = vfsub_getattr(&xf->f_path, &st);
|
||||||
+ if (!err) {
|
+ if (!err) {
|
||||||
+ if (do_fcnt)
|
+ if (do_fcnt)
|
||||||
+ p->n = snprintf
|
+ p->n = snprintf
|
||||||
|
@ -15254,10 +15254,10 @@ index 0000000..773a1d2
|
||||||
+}
|
+}
|
||||||
diff --git a/fs/aufs/i_op.c b/fs/aufs/i_op.c
|
diff --git a/fs/aufs/i_op.c b/fs/aufs/i_op.c
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 0000000..c2a7cbe
|
index 0000000..bfd2df9
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/fs/aufs/i_op.c
|
+++ b/fs/aufs/i_op.c
|
||||||
@@ -0,0 +1,1449 @@
|
@@ -0,0 +1,1452 @@
|
||||||
+/*
|
+/*
|
||||||
+ * Copyright (C) 2005-2017 Junjiro R. Okajima
|
+ * Copyright (C) 2005-2017 Junjiro R. Okajima
|
||||||
+ *
|
+ *
|
||||||
|
@ -16466,15 +16466,17 @@ index 0000000..c2a7cbe
|
||||||
+ return err;
|
+ return err;
|
||||||
+}
|
+}
|
||||||
+
|
+
|
||||||
+static int aufs_getattr(struct vfsmount *mnt __maybe_unused,
|
+static int aufs_getattr(const struct path *path, struct kstat *st,
|
||||||
+ struct dentry *dentry, struct kstat *st)
|
+ u32 request, unsigned int query)
|
||||||
+{
|
+{
|
||||||
+ int err;
|
+ int err;
|
||||||
+ unsigned char positive;
|
+ unsigned char positive;
|
||||||
+ struct path h_path;
|
+ struct path h_path;
|
||||||
|
+ struct dentry *dentry;
|
||||||
+ struct inode *inode;
|
+ struct inode *inode;
|
||||||
+ struct super_block *sb;
|
+ struct super_block *sb;
|
||||||
+
|
+
|
||||||
|
+ dentry = path->dentry;
|
||||||
+ inode = d_inode(dentry);
|
+ inode = d_inode(dentry);
|
||||||
+ sb = dentry->d_sb;
|
+ sb = dentry->d_sb;
|
||||||
+ err = si_read_lock(sb, AuLock_FLUSH | AuLock_NOPLM);
|
+ err = si_read_lock(sb, AuLock_FLUSH | AuLock_NOPLM);
|
||||||
|
@ -16489,7 +16491,8 @@ index 0000000..c2a7cbe
|
||||||
+
|
+
|
||||||
+ positive = d_is_positive(h_path.dentry);
|
+ positive = d_is_positive(h_path.dentry);
|
||||||
+ if (positive)
|
+ if (positive)
|
||||||
+ err = vfs_getattr(&h_path, st);
|
+ /* no vfsub version */
|
||||||
|
+ err = vfs_getattr(&h_path, st, request, query);
|
||||||
+ if (!err) {
|
+ if (!err) {
|
||||||
+ if (positive)
|
+ if (positive)
|
||||||
+ au_refresh_iattr(inode, st,
|
+ au_refresh_iattr(inode, st,
|
||||||
|
@ -29699,7 +29702,7 @@ index 0000000..b7583e9
|
||||||
+}
|
+}
|
||||||
diff --git a/fs/aufs/vfsub.c b/fs/aufs/vfsub.c
|
diff --git a/fs/aufs/vfsub.c b/fs/aufs/vfsub.c
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 0000000..3cf429c
|
index 0000000..2bdaf5c
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/fs/aufs/vfsub.c
|
+++ b/fs/aufs/vfsub.c
|
||||||
@@ -0,0 +1,899 @@
|
@@ -0,0 +1,899 @@
|
||||||
|
@ -29777,7 +29780,7 @@ index 0000000..3cf429c
|
||||||
+ h_sb = h_path->dentry->d_sb;
|
+ h_sb = h_path->dentry->d_sb;
|
||||||
+ *did = (!au_test_fs_remote(h_sb) && au_test_fs_refresh_iattr(h_sb));
|
+ *did = (!au_test_fs_remote(h_sb) && au_test_fs_refresh_iattr(h_sb));
|
||||||
+ if (*did)
|
+ if (*did)
|
||||||
+ err = vfs_getattr(h_path, &st);
|
+ err = vfsub_getattr(h_path, &st);
|
||||||
+
|
+
|
||||||
+ return err;
|
+ return err;
|
||||||
+}
|
+}
|
||||||
|
@ -30604,10 +30607,10 @@ index 0000000..3cf429c
|
||||||
+}
|
+}
|
||||||
diff --git a/fs/aufs/vfsub.h b/fs/aufs/vfsub.h
|
diff --git a/fs/aufs/vfsub.h b/fs/aufs/vfsub.h
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 0000000..aeb5891
|
index 0000000..2216871
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/fs/aufs/vfsub.h
|
+++ b/fs/aufs/vfsub.h
|
||||||
@@ -0,0 +1,348 @@
|
@@ -0,0 +1,353 @@
|
||||||
+/*
|
+/*
|
||||||
+ * Copyright (C) 2005-2017 Junjiro R. Okajima
|
+ * Copyright (C) 2005-2017 Junjiro R. Okajima
|
||||||
+ *
|
+ *
|
||||||
|
@ -30929,6 +30932,11 @@ index 0000000..aeb5891
|
||||||
+int vfsub_unlink(struct inode *dir, struct path *path,
|
+int vfsub_unlink(struct inode *dir, struct path *path,
|
||||||
+ struct inode **delegated_inode, int force);
|
+ struct inode **delegated_inode, int force);
|
||||||
+
|
+
|
||||||
|
+static inline int vfsub_getattr(const struct path *path, struct kstat *st)
|
||||||
|
+{
|
||||||
|
+ return vfs_getattr(path, st, STATX_BASIC_STATS, AT_STATX_SYNC_AS_STAT);
|
||||||
|
+}
|
||||||
|
+
|
||||||
+/* ---------------------------------------------------------------------- */
|
+/* ---------------------------------------------------------------------- */
|
||||||
+
|
+
|
||||||
+static inline int vfsub_setxattr(struct dentry *dentry, const char *name,
|
+static inline int vfsub_setxattr(struct dentry *dentry, const char *name,
|
||||||
|
|
Loading…
Add table
Reference in a new issue