[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20221231075717.10258-4-fmdefrancesco@gmail.com>
Date: Sat, 31 Dec 2022 08:57:16 +0100
From: "Fabio M. De Francesco" <fmdefrancesco@...il.com>
To: Christoph Hellwig <hch@...radead.org>,
linux-kernel@...r.kernel.org, linux-fsdevel@...r.kernel.org
Cc: "Fabio M. De Francesco" <fmdefrancesco@...il.com>,
Al Viro <viro@...iv.linux.org.uk>,
Ira Weiny <ira.weiny@...el.com>
Subject: [PATCH 3/4] fs/sysv: Use dir_put_page() in sysv_rename()
Use the dir_put_page() helper in sysv_rename() instead of open-coding two
kunmap() + put_page().
Cc: Al Viro <viro@...iv.linux.org.uk>
Suggested-by: Ira Weiny <ira.weiny@...el.com>
Signed-off-by: Fabio M. De Francesco <fmdefrancesco@...il.com>
---
fs/sysv/dir.c | 2 +-
fs/sysv/namei.c | 9 +++------
fs/sysv/sysv.h | 1 +
3 files changed, 5 insertions(+), 7 deletions(-)
diff --git a/fs/sysv/dir.c b/fs/sysv/dir.c
index 0a8b5828c390..a37747e9e9a3 100644
--- a/fs/sysv/dir.c
+++ b/fs/sysv/dir.c
@@ -28,7 +28,7 @@ const struct file_operations sysv_dir_operations = {
.fsync = generic_file_fsync,
};
-static inline void dir_put_page(struct page *page)
+inline void dir_put_page(struct page *page)
{
kunmap(page);
put_page(page);
diff --git a/fs/sysv/namei.c b/fs/sysv/namei.c
index b2e6abc06a2d..981c1d76f342 100644
--- a/fs/sysv/namei.c
+++ b/fs/sysv/namei.c
@@ -250,13 +250,10 @@ static int sysv_rename(struct user_namespace *mnt_userns, struct inode *old_dir,
return 0;
out_dir:
- if (dir_de) {
- kunmap(dir_page);
- put_page(dir_page);
- }
+ if (dir_de)
+ dir_put_page(dir_page);
out_old:
- kunmap(old_page);
- put_page(old_page);
+ dir_put_page(old_page);
out:
return err;
}
diff --git a/fs/sysv/sysv.h b/fs/sysv/sysv.h
index 99ddf033da4f..b250ac1dd348 100644
--- a/fs/sysv/sysv.h
+++ b/fs/sysv/sysv.h
@@ -148,6 +148,7 @@ extern void sysv_destroy_icache(void);
/* dir.c */
+extern void dir_put_page(struct page *page);
extern struct sysv_dir_entry *sysv_find_entry(struct dentry *, struct page **);
extern int sysv_add_link(struct dentry *, struct inode *);
extern int sysv_delete_entry(struct sysv_dir_entry *, struct page *);
--
2.39.0
Powered by blists - more mailing lists