From 177f8fc491e230c2e7a3ac7d5626dd6f3d94e9f2 Mon Sep 17 00:00:00 2001 From: Al Viro Date: Tue, 16 Feb 2016 20:25:19 -0500 Subject: [PATCH] orangefs: sanitize ->llseek() a) open files can't have NULL inodes b) it's SEEK_END, not ORANGEFS_SEEK_END; no need to get cute. c) make_bad_inode() on lseek()? Signed-off-by: Al Viro Signed-off-by: Mike Marshall --- fs/orangefs/file.c | 12 +++--------- fs/orangefs/orangefs-kernel.h | 1 - 2 files changed, 3 insertions(+), 10 deletions(-) diff --git a/fs/orangefs/file.c b/fs/orangefs/file.c index 63e6a10ab13d..cb6a164b2718 100644 --- a/fs/orangefs/file.c +++ b/fs/orangefs/file.c @@ -652,14 +652,9 @@ static int orangefs_fsync(struct file *file, static loff_t orangefs_file_llseek(struct file *file, loff_t offset, int origin) { int ret = -EINVAL; - struct inode *inode = file->f_path.dentry->d_inode; + struct inode *inode = file_inode(file); - if (!inode) { - gossip_err("orangefs_file_llseek: invalid inode (NULL)\n"); - return ret; - } - - if (origin == ORANGEFS_SEEK_END) { + if (origin == SEEK_END) { /* * revalidate the inode's file size. * NOTE: We are only interested in file size here, @@ -674,7 +669,6 @@ static loff_t orangefs_file_llseek(struct file *file, loff_t offset, int origin) __FILE__, __func__, __LINE__); - orangefs_make_bad_inode(inode); return ret; } } @@ -684,7 +678,7 @@ static loff_t orangefs_file_llseek(struct file *file, loff_t offset, int origin) " | inode size is %lu\n", (long)offset, origin, - (unsigned long)file->f_path.dentry->d_inode->i_size); + (unsigned long)i_size_read(inode)); return generic_file_llseek(file, offset, origin); } diff --git a/fs/orangefs/orangefs-kernel.h b/fs/orangefs/orangefs-kernel.h index 5832168106de..db258d2ccc6a 100644 --- a/fs/orangefs/orangefs-kernel.h +++ b/fs/orangefs/orangefs-kernel.h @@ -70,7 +70,6 @@ #define ORANGEFS_DEVREQ_MAGIC 0x20030529 #define ORANGEFS_LINK_MAX 0x000000FF #define ORANGEFS_PURGE_RETRY_COUNT 0x00000005 -#define ORANGEFS_SEEK_END 0x00000002 #define ORANGEFS_MAX_NUM_OPTIONS 0x00000004 #define ORANGEFS_MAX_MOUNT_OPT_LEN 0x00000080 #define ORANGEFS_MAX_FSKEY_LEN 64 -- 2.39.2