summarylogtreecommitdiffstats
path: root/kernel-5.12-backport.patch
diff options
context:
space:
mode:
authorHanabishi2021-08-14 00:14:34 +0500
committerHanabishi2021-08-14 00:14:34 +0500
commitcdecdcd7f74d30d8b545faa56b7a4df36129bfc7 (patch)
treece5bd284c65bc1f7e537d3f396c2082ce37d0bd7 /kernel-5.12-backport.patch
downloadaur-cdecdcd7f74d30d8b545faa56b7a4df36129bfc7.tar.gz
Package created
Diffstat (limited to 'kernel-5.12-backport.patch')
-rw-r--r--kernel-5.12-backport.patch424
1 files changed, 424 insertions, 0 deletions
diff --git a/kernel-5.12-backport.patch b/kernel-5.12-backport.patch
new file mode 100644
index 000000000000..1a0c273854be
--- /dev/null
+++ b/kernel-5.12-backport.patch
@@ -0,0 +1,424 @@
+--- a/file.c
++++ b/file.c
+@@ -76,7 +76,7 @@
+ /*
+ * inode_operations::getattr
+ */
+-int ntfs_getattr(struct user_namespace *mnt_userns, const struct path *path,
++int ntfs_getattr(const struct path *path,
+ struct kstat *stat, u32 request_mask, u32 flags)
+ {
+ struct inode *inode = d_inode(path->dentry);
+@@ -90,7 +90,7 @@
+
+ stat->attributes_mask |= STATX_ATTR_COMPRESSED | STATX_ATTR_ENCRYPTED;
+
+- generic_fillattr(mnt_userns, inode, stat);
++ generic_fillattr(inode, stat);
+
+ stat->result_mask |= STATX_BTIME;
+ stat->btime = ni->i_crtime;
+@@ -614,7 +614,7 @@
+ /*
+ * inode_operations::setattr
+ */
+-int ntfs3_setattr(struct user_namespace *mnt_userns, struct dentry *dentry,
++int ntfs3_setattr(struct dentry *dentry,
+ struct iattr *attr)
+ {
+ struct super_block *sb = dentry->d_sb;
+@@ -633,7 +633,7 @@
+ ia_valid = attr->ia_valid;
+ }
+
+- err = setattr_prepare(mnt_userns, dentry, attr);
++ err = setattr_prepare(dentry, attr);
+ if (err)
+ goto out;
+
+@@ -658,10 +658,10 @@
+ ni->ni_flags |= NI_FLAG_UPDATE_PARENT;
+ }
+
+- setattr_copy(mnt_userns, inode, attr);
++ setattr_copy(inode, attr);
+
+ if (mode != inode->i_mode) {
+- err = ntfs_acl_chmod(mnt_userns, inode);
++ err = ntfs_acl_chmod(inode);
+ if (err)
+ goto out;
+
+
+--- a/fsntfs.c
++++ b/fsntfs.c
+@@ -1620,7 +1620,7 @@
+ lbo = (u64)lcn << cluster_bits;
+ len = (u64)clen << cluster_bits;
+ new_bio:
+- new = ntfs_alloc_bio(BIO_MAX_VECS);
++ new = ntfs_alloc_bio(BIO_MAX_PAGES);
+ if (!new) {
+ err = -ENOMEM;
+ break;
+
+--- a/inode.c
++++ b/inode.c
+@@ -1176,7 +1176,7 @@
+ return ERR_PTR(err);
+ }
+
+-struct inode *ntfs_create_inode(struct user_namespace *mnt_userns,
++struct inode *ntfs_create_inode(
+ struct inode *dir, struct dentry *dentry,
+ const struct cpu_str *uni, umode_t mode,
+ dev_t dev, const char *symname, u32 size,
+@@ -1577,7 +1577,7 @@
+
+ #ifdef CONFIG_NTFS3_FS_POSIX_ACL
+ if (!is_link && (sb->s_flags & SB_POSIXACL)) {
+- err = ntfs_init_acl(mnt_userns, inode, dir);
++ err = ntfs_init_acl(inode, dir);
+ if (err)
+ goto out6;
+ } else
+
+--- a/namei.c
++++ b/namei.c
+@@ -102,7 +102,7 @@
+ *
+ * inode_operations::create
+ */
+-static int ntfs_create(struct user_namespace *mnt_userns, struct inode *dir,
++static int ntfs_create(struct inode *dir,
+ struct dentry *dentry, umode_t mode, bool excl)
+ {
+ struct ntfs_inode *ni = ntfs_i(dir);
+@@ -110,7 +110,7 @@
+
+ ni_lock_dir(ni);
+
+- inode = ntfs_create_inode(mnt_userns, dir, dentry, NULL, S_IFREG | mode,
++ inode = ntfs_create_inode(dir, dentry, NULL, S_IFREG | mode,
+ 0, NULL, 0, excl, NULL);
+
+ ni_unlock(ni);
+@@ -184,7 +184,7 @@
+ *
+ * inode_operations::symlink
+ */
+-static int ntfs_symlink(struct user_namespace *mnt_userns, struct inode *dir,
++static int ntfs_symlink(struct inode *dir,
+ struct dentry *dentry, const char *symname)
+ {
+ u32 size = strlen(symname);
+@@ -193,7 +193,7 @@
+
+ ni_lock_dir(ni);
+
+- inode = ntfs_create_inode(mnt_userns, dir, dentry, NULL, S_IFLNK | 0777,
++ inode = ntfs_create_inode(dir, dentry, NULL, S_IFLNK | 0777,
+ 0, symname, size, 0, NULL);
+
+ ni_unlock(ni);
+@@ -206,7 +206,7 @@
+ *
+ * inode_operations::mkdir
+ */
+-static int ntfs_mkdir(struct user_namespace *mnt_userns, struct inode *dir,
++static int ntfs_mkdir(struct inode *dir,
+ struct dentry *dentry, umode_t mode)
+ {
+ struct inode *inode;
+@@ -214,7 +214,7 @@
+
+ ni_lock_dir(ni);
+
+- inode = ntfs_create_inode(mnt_userns, dir, dentry, NULL, S_IFDIR | mode,
++ inode = ntfs_create_inode(dir, dentry, NULL, S_IFDIR | mode,
+ 0, NULL, -1, 0, NULL);
+
+ ni_unlock(ni);
+@@ -246,7 +246,7 @@
+ *
+ * inode_operations::rename
+ */
+-static int ntfs_rename(struct user_namespace *mnt_userns, struct inode *old_dir,
++static int ntfs_rename(struct inode *old_dir,
+ struct dentry *old_dentry, struct inode *new_dir,
+ struct dentry *new_dentry, u32 flags)
+ {
+@@ -520,7 +520,7 @@
+
+ /*fnd contains tree's path to insert to*/
+ /* TODO: init_user_ns? */
+- inode = ntfs_create_inode(&init_user_ns, dir, dentry, uni, mode, 0,
++ inode = ntfs_create_inode(dir, dentry, uni, mode, 0,
+ NULL, 0, excl, fnd);
+ err = IS_ERR(inode) ? PTR_ERR(inode)
+ : finish_open(file, dentry, ntfs_file_open);
+
+--- a/ntfs_fs.h
++++ b/ntfs_fs.h
+@@ -453,11 +453,11 @@
+ extern const struct file_operations ntfs_dir_operations;
+
+ /* globals from file.c*/
+-int ntfs_getattr(struct user_namespace *mnt_userns, const struct path *path,
++int ntfs_getattr(const struct path *path,
+ struct kstat *stat, u32 request_mask, u32 flags);
+ void ntfs_sparse_cluster(struct inode *inode, struct page *page0, CLST vcn,
+ CLST len);
+-int ntfs3_setattr(struct user_namespace *mnt_userns, struct dentry *dentry,
++int ntfs3_setattr(struct dentry *dentry,
+ struct iattr *attr);
+ int ntfs_file_open(struct inode *inode, struct file *file);
+ int ntfs_fiemap(struct inode *inode, struct fiemap_extent_info *fieinfo,
+@@ -644,7 +644,7 @@
+ int ntfs_flush_inodes(struct super_block *sb, struct inode *i1,
+ struct inode *i2);
+ int inode_write_data(struct inode *inode, const void *data, size_t bytes);
+-struct inode *ntfs_create_inode(struct user_namespace *mnt_userns,
++struct inode *ntfs_create_inode(
+ struct inode *dir, struct dentry *dentry,
+ const struct cpu_str *uni, umode_t mode,
+ dev_t dev, const char *symname, u32 size,
+@@ -784,17 +784,17 @@
+ /* globals from xattr.c */
+ #ifdef CONFIG_NTFS3_FS_POSIX_ACL
+ struct posix_acl *ntfs_get_acl(struct inode *inode, int type);
+-int ntfs_set_acl(struct user_namespace *mnt_userns, struct inode *inode,
++int ntfs_set_acl(struct inode *inode,
+ struct posix_acl *acl, int type);
+-int ntfs_init_acl(struct user_namespace *mnt_userns, struct inode *inode,
++int ntfs_init_acl(struct inode *inode,
+ struct inode *dir);
+ #else
+ #define ntfs_get_acl NULL
+ #define ntfs_set_acl NULL
+ #endif
+
+-int ntfs_acl_chmod(struct user_namespace *mnt_userns, struct inode *inode);
+-int ntfs_permission(struct user_namespace *mnt_userns, struct inode *inode,
++int ntfs_acl_chmod(struct inode *inode);
++int ntfs_permission(struct inode *inode,
+ int mask);
+ ssize_t ntfs_listxattr(struct dentry *dentry, char *buffer, size_t size);
+ extern const struct xattr_handler *ntfs_xattr_handlers[];
+
+--- a/super.c
++++ b/super.c
+@@ -542,10 +542,10 @@
+
+ if (opts->uid)
+ seq_printf(m, ",uid=%u",
+- from_kuid_munged(user_ns, opts->fs_uid));
++ from_kuid_munged(&init_user_ns, opts->fs_uid));
+ if (opts->gid)
+ seq_printf(m, ",gid=%u",
+- from_kgid_munged(user_ns, opts->fs_gid));
++ from_kgid_munged(&init_user_ns, opts->fs_gid));
+ if (opts->fmask)
+ seq_printf(m, ",fmask=%04o", ~opts->fs_fmask_inv);
+ if (opts->dmask)
+
+--- a/xattr.c
++++ b/xattr.c
+@@ -473,7 +473,7 @@
+ kfree(acl);
+ }
+
+-static struct posix_acl *ntfs_get_acl_ex(struct user_namespace *mnt_userns,
++static struct posix_acl *ntfs_get_acl_ex(
+ struct inode *inode, int type,
+ int locked)
+ {
+@@ -509,7 +509,7 @@
+
+ /* Translate extended attribute to acl */
+ if (err > 0) {
+- acl = posix_acl_from_xattr(mnt_userns, buf, err);
++ acl = posix_acl_from_xattr(&init_user_ns, buf, err);
+ if (!IS_ERR(acl))
+ set_cached_acl(inode, type, acl);
+ } else {
+@@ -529,10 +529,10 @@
+ struct posix_acl *ntfs_get_acl(struct inode *inode, int type)
+ {
+ /* TODO: init_user_ns? */
+- return ntfs_get_acl_ex(&init_user_ns, inode, type, 0);
++ return ntfs_get_acl_ex(inode, type, 0);
+ }
+
+-static noinline int ntfs_set_acl_ex(struct user_namespace *mnt_userns,
++static noinline int ntfs_set_acl_ex(
+ struct inode *inode, struct posix_acl *acl,
+ int type, int locked)
+ {
+@@ -590,7 +590,7 @@
+ if (!value)
+ return -ENOMEM;
+
+- err = posix_acl_to_xattr(mnt_userns, acl, value, size);
++ err = posix_acl_to_xattr(&init_user_ns, acl, value, size);
+ if (err)
+ goto out;
+
+@@ -614,13 +614,13 @@
+ *
+ * inode_operations::set_acl
+ */
+-int ntfs_set_acl(struct user_namespace *mnt_userns, struct inode *inode,
++int ntfs_set_acl(struct inode *inode,
+ struct posix_acl *acl, int type)
+ {
+- return ntfs_set_acl_ex(mnt_userns, inode, acl, type, 0);
++ return ntfs_set_acl_ex(inode, acl, type, 0);
+ }
+
+-static int ntfs_xattr_get_acl(struct user_namespace *mnt_userns,
++static int ntfs_xattr_get_acl(
+ struct inode *inode, int type, void *buffer,
+ size_t size)
+ {
+@@ -637,13 +637,13 @@
+ if (!acl)
+ return -ENODATA;
+
+- err = posix_acl_to_xattr(mnt_userns, acl, buffer, size);
++ err = posix_acl_to_xattr(&init_user_ns, acl, buffer, size);
+ ntfs_posix_acl_release(acl);
+
+ return err;
+ }
+
+-static int ntfs_xattr_set_acl(struct user_namespace *mnt_userns,
++static int ntfs_xattr_set_acl(
+ struct inode *inode, int type, const void *value,
+ size_t size)
+ {
+@@ -653,23 +653,23 @@
+ if (!(inode->i_sb->s_flags & SB_POSIXACL))
+ return -EOPNOTSUPP;
+
+- if (!inode_owner_or_capable(mnt_userns, inode))
++ if (!inode_owner_or_capable(inode))
+ return -EPERM;
+
+ if (!value)
+ return 0;
+
+- acl = posix_acl_from_xattr(mnt_userns, value, size);
++ acl = posix_acl_from_xattr(&init_user_ns, value, size);
+ if (IS_ERR(acl))
+ return PTR_ERR(acl);
+
+ if (acl) {
+- err = posix_acl_valid(mnt_userns, acl);
++ err = posix_acl_valid(&init_user_ns, acl);
+ if (err)
+ goto release_and_out;
+ }
+
+- err = ntfs_set_acl(mnt_userns, inode, acl, type);
++ err = ntfs_set_acl(inode, acl, type);
+
+ release_and_out:
+ ntfs_posix_acl_release(acl);
+@@ -679,7 +679,7 @@
+ /*
+ * Initialize the ACLs of a new inode. Called from ntfs_create_inode.
+ */
+-int ntfs_init_acl(struct user_namespace *mnt_userns, struct inode *inode,
++int ntfs_init_acl(struct inode *inode,
+ struct inode *dir)
+ {
+ struct posix_acl *default_acl, *acl;
+@@ -691,7 +691,7 @@
+ */
+ inode->i_default_acl = NULL;
+
+- default_acl = ntfs_get_acl_ex(mnt_userns, dir, ACL_TYPE_DEFAULT, 1);
++ default_acl = ntfs_get_acl_ex(dir, ACL_TYPE_DEFAULT, 1);
+
+ if (!default_acl || default_acl == ERR_PTR(-EOPNOTSUPP)) {
+ inode->i_mode &= ~current_umask();
+@@ -719,13 +719,13 @@
+ }
+
+ if (default_acl)
+- err = ntfs_set_acl_ex(mnt_userns, inode, default_acl,
++ err = ntfs_set_acl_ex(inode, default_acl,
+ ACL_TYPE_DEFAULT, 1);
+
+ if (!acl)
+ inode->i_acl = NULL;
+ else if (!err)
+- err = ntfs_set_acl_ex(mnt_userns, inode, acl, ACL_TYPE_ACCESS,
++ err = ntfs_set_acl_ex(inode, acl, ACL_TYPE_ACCESS,
+ 1);
+
+ posix_acl_release(acl);
+@@ -742,7 +742,7 @@
+ *
+ * helper for 'ntfs3_setattr'
+ */
+-int ntfs_acl_chmod(struct user_namespace *mnt_userns, struct inode *inode)
++int ntfs_acl_chmod(struct inode *inode)
+ {
+ struct super_block *sb = inode->i_sb;
+
+@@ -752,7 +752,7 @@
+ if (S_ISLNK(inode->i_mode))
+ return -EOPNOTSUPP;
+
+- return posix_acl_chmod(mnt_userns, inode, inode->i_mode);
++ return posix_acl_chmod(inode, inode->i_mode);
+ }
+
+ /*
+@@ -760,7 +760,7 @@
+ *
+ * inode_operations::permission
+ */
+-int ntfs_permission(struct user_namespace *mnt_userns, struct inode *inode,
++int ntfs_permission(struct inode *inode,
+ int mask)
+ {
+ if (ntfs_sb(inode->i_sb)->options.no_acs_rules) {
+@@ -768,7 +768,7 @@
+ return 0;
+ }
+
+- return generic_permission(mnt_userns, inode, mask);
++ return generic_permission(inode, mask);
+ }
+
+ /*
+@@ -882,7 +882,7 @@
+ sizeof(XATTR_NAME_POSIX_ACL_DEFAULT)))) {
+ /* TODO: init_user_ns? */
+ err = ntfs_xattr_get_acl(
+- &init_user_ns, inode,
++ inode,
+ name_len == sizeof(XATTR_NAME_POSIX_ACL_ACCESS) - 1
+ ? ACL_TYPE_ACCESS
+ : ACL_TYPE_DEFAULT,
+@@ -903,7 +903,7 @@
+ * inode_operations::setxattr
+ */
+ static noinline int ntfs_setxattr(const struct xattr_handler *handler,
+- struct user_namespace *mnt_userns,
++
+ struct dentry *de, struct inode *inode,
+ const char *name, const void *value,
+ size_t size, int flags)
+@@ -1013,7 +1013,7 @@
+ sizeof(XATTR_NAME_POSIX_ACL_DEFAULT)))) {
+ /* TODO: init_user_ns? */
+ err = ntfs_xattr_set_acl(
+- &init_user_ns, inode,
++ inode,
+ name_len == sizeof(XATTR_NAME_POSIX_ACL_ACCESS) - 1
+ ? ACL_TYPE_ACCESS
+ : ACL_TYPE_DEFAULT,