Add the RHEL 211.21.1..211.22.1 backports (1288-1351) from centos-stream-10 and upstream stable, on top of 211.20.1. Bump pkgrelease and specrelease to 211.22.1. (The redhat/ automotive rebuild-changelog tooling change is omitted: it patches redhat/scripts not present in this build base and does not affect the kernel.)
120 lines
4.2 KiB
Diff
120 lines
4.2 KiB
Diff
From 95ceb7510d751e76b068573ecbb2030cbd73852b Mon Sep 17 00:00:00 2001
|
|
From: Ondrej Mosnacek <omosnace@redhat.com>
|
|
Date: Tue, 2 Jun 2026 11:09:13 +0200
|
|
Subject: [PATCH] fs: constify file ptr in backing_file accessor helpers
|
|
|
|
JIRA: https://issues.redhat.com/browse/RHEL-179440
|
|
|
|
commit 4e301d858af17ae2ce56886296e5458c5a08219a
|
|
Author: Amir Goldstein <amir73il@gmail.com>
|
|
Date: Sat Jun 7 13:53:03 2025 +0200
|
|
|
|
fs: constify file ptr in backing_file accessor helpers
|
|
|
|
Add internal helper backing_file_set_user_path() for the only
|
|
two cases that need to modify backing_file fields.
|
|
|
|
Signed-off-by: Amir Goldstein <amir73il@gmail.com>
|
|
Link: https://lore.kernel.org/20250607115304.2521155-2-amir73il@gmail.com
|
|
Signed-off-by: Christian Brauner <brauner@kernel.org>
|
|
|
|
Signed-off-by: Ondrej Mosnacek <omosnace@redhat.com>
|
|
|
|
diff --git a/fs/backing-file.c b/fs/backing-file.c
|
|
index 09a9be945d45..892361c31c3d 100644
|
|
--- a/fs/backing-file.c
|
|
+++ b/fs/backing-file.c
|
|
@@ -41,7 +41,7 @@ struct file *backing_file_open(const struct path *user_path, int flags,
|
|
return f;
|
|
|
|
path_get(user_path);
|
|
- *backing_file_user_path(f) = *user_path;
|
|
+ backing_file_set_user_path(f, user_path);
|
|
error = vfs_open(real_path, f);
|
|
if (error) {
|
|
fput(f);
|
|
@@ -65,7 +65,7 @@ struct file *backing_tmpfile_open(const struct path *user_path, int flags,
|
|
return f;
|
|
|
|
path_get(user_path);
|
|
- *backing_file_user_path(f) = *user_path;
|
|
+ backing_file_set_user_path(f, user_path);
|
|
error = vfs_tmpfile(real_idmap, real_parentpath, f, mode);
|
|
if (error) {
|
|
fput(f);
|
|
diff --git a/fs/file_table.c b/fs/file_table.c
|
|
index 15a3593c6ece..9979efb9a380 100644
|
|
--- a/fs/file_table.c
|
|
+++ b/fs/file_table.c
|
|
@@ -53,17 +53,20 @@ struct backing_file {
|
|
};
|
|
};
|
|
|
|
-static inline struct backing_file *backing_file(struct file *f)
|
|
-{
|
|
- return container_of(f, struct backing_file, file);
|
|
-}
|
|
+#define backing_file(f) container_of(f, struct backing_file, file)
|
|
|
|
-struct path *backing_file_user_path(struct file *f)
|
|
+struct path *backing_file_user_path(const struct file *f)
|
|
{
|
|
return &backing_file(f)->user_path;
|
|
}
|
|
EXPORT_SYMBOL_GPL(backing_file_user_path);
|
|
|
|
+void backing_file_set_user_path(struct file *f, const struct path *path)
|
|
+{
|
|
+ backing_file(f)->user_path = *path;
|
|
+}
|
|
+EXPORT_SYMBOL_GPL(backing_file_set_user_path);
|
|
+
|
|
static inline void file_free(struct file *f)
|
|
{
|
|
security_file_free(f);
|
|
diff --git a/fs/internal.h b/fs/internal.h
|
|
index dd13dfde4adb..67e2e164c647 100644
|
|
--- a/fs/internal.h
|
|
+++ b/fs/internal.h
|
|
@@ -100,6 +100,7 @@ extern void chroot_fs_refs(const struct path *, const struct path *);
|
|
struct file *alloc_empty_file(int flags, const struct cred *cred);
|
|
struct file *alloc_empty_file_noaccount(int flags, const struct cred *cred);
|
|
struct file *alloc_empty_backing_file(int flags, const struct cred *cred);
|
|
+void backing_file_set_user_path(struct file *f, const struct path *path);
|
|
|
|
static inline void file_put_write_access(struct file *file)
|
|
{
|
|
diff --git a/include/linux/fs.h b/include/linux/fs.h
|
|
index 83ddabaa0ac3..04309befc557 100644
|
|
--- a/include/linux/fs.h
|
|
+++ b/include/linux/fs.h
|
|
@@ -2793,7 +2793,7 @@ struct file *dentry_open(const struct path *path, int flags,
|
|
const struct cred *creds);
|
|
struct file *dentry_create(const struct path *path, int flags, umode_t mode,
|
|
const struct cred *cred);
|
|
-struct path *backing_file_user_path(struct file *f);
|
|
+struct path *backing_file_user_path(const struct file *f);
|
|
|
|
/*
|
|
* When mmapping a file on a stackable filesystem (e.g., overlayfs), the file
|
|
@@ -2805,14 +2805,14 @@ struct path *backing_file_user_path(struct file *f);
|
|
* by fstat() on that same fd.
|
|
*/
|
|
/* Get the path to display in /proc/<pid>/maps */
|
|
-static inline const struct path *file_user_path(struct file *f)
|
|
+static inline const struct path *file_user_path(const struct file *f)
|
|
{
|
|
if (unlikely(f->f_mode & FMODE_BACKING))
|
|
return backing_file_user_path(f);
|
|
return &f->f_path;
|
|
}
|
|
/* Get the inode whose inode number to display in /proc/<pid>/maps */
|
|
-static inline const struct inode *file_user_inode(struct file *f)
|
|
+static inline const struct inode *file_user_inode(const struct file *f)
|
|
{
|
|
if (unlikely(f->f_mode & FMODE_BACKING))
|
|
return d_inode(backing_file_user_path(f)->dentry);
|
|
--
|
|
2.50.1 (Apple Git-155)
|
|
|