[PATCH V4 8/9] fsverity: Move verity status check to fsverity_file_open

Chandan Rajendra <[email protected]>
Newsgroups gmane.linux.file-systems.f2fs,gmane.comp.file-systems.ext4,gmane.linux.documentation,gmane.linux.ports.mips.general,gmane.linux.drivers.mtd,gmane.linux.file-systems
Message-ID <[email protected]>
Instead of conditionally checking for verity status of an inode before
invoking fsverity_file_open(), this commit moves the check inside the
definition of fsverity_file_open().

Signed-off-by: Chandan Rajendra <[email protected]>
---
 fs/ext4/file.c           | 8 +++-----
 fs/f2fs/file.c           | 8 +++-----
 fs/verity/setup.c        | 3 +++
 include/linux/fsverity.h | 5 ++++-
 4 files changed, 13 insertions(+), 11 deletions(-)

diff --git a/fs/ext4/file.c b/fs/ext4/file.c
index 30fbd663354f..b404a857cd48 100644
--- a/fs/ext4/file.c
+++ b/fs/ext4/file.c
@@ -444,11 +444,9 @@ static int ext4_file_open(struct inode * inode, struct file * filp)
 	if (ret)
 		return ret;
 
-	if (IS_VERITY(inode)) {
-		ret = fsverity_file_open(inode, filp);
-		if (ret)
-			return ret;
-	}
+	ret = fsverity_file_open(inode, filp);
+	if (ret)
+		return ret;
 
 	/*
 	 * Set up the jbd2_inode if we are opening the inode for
diff --git a/fs/f2fs/file.c b/fs/f2fs/file.c
index 2eb4821d95d1..925c0d9608da 100644
--- a/fs/f2fs/file.c
+++ b/fs/f2fs/file.c
@@ -491,11 +491,9 @@ static int f2fs_file_open(struct inode *inode, struct file *filp)
 	if (err)
 		return err;
 
-	if (IS_VERITY(inode)) {
-		err = fsverity_file_open(inode, filp);
-		if (err)
-			return err;
-	}
+	err = fsverity_file_open(inode, filp);
+	if (err)
+		return err;
 
 	filp->f_mode |= FMODE_NOWAIT;
 
diff --git a/fs/verity/setup.c b/fs/verity/setup.c
index 08b609127531..bc463dc601b1 100644
--- a/fs/verity/setup.c
+++ b/fs/verity/setup.c
@@ -771,6 +771,9 @@ static int setup_fsverity_info(struct inode *inode)
  */
 int fsverity_file_open(struct inode *inode, struct file *filp)
 {
+	if (!IS_VERITY(inode))
+		return 0;
+
 	if (filp->f_mode & FMODE_WRITE) {
 		pr_debug("Denying opening verity file (ino %lu) for write\n",
 			 inode->i_ino);
diff --git a/include/linux/fsverity.h b/include/linux/fsverity.h
index ea8c418bd7d5..c770025606e1 100644
--- a/include/linux/fsverity.h
+++ b/include/linux/fsverity.h
@@ -60,7 +60,10 @@ static inline int fsverity_ioctl_measure(struct file *filp, void __user *arg)
 
 static inline int fsverity_file_open(struct inode *inode, struct file *filp)
 {
-	return -EOPNOTSUPP;
+	if (IS_VERITY(inode))
+		return -EOPNOTSUPP;
+
+	return 0;
 }
 
 static inline int fsverity_prepare_setattr(struct dentry *dentry,
-- 
2.19.1
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.