Browse Source

orangefs: use new orangefs_inode_getattr to get size in write and llseek

Signed-off-by: Martin Brandenburg <martin@omnibond.com>
Signed-off-by: Mike Marshall <hubcap@omnibond.com>
Martin Brandenburg 9 years ago
parent
commit
e2f7f0d798
1 changed files with 8 additions and 6 deletions
  1. 8 6
      fs/orangefs/file.c

+ 8 - 6
fs/orangefs/file.c

@@ -455,11 +455,12 @@ static ssize_t orangefs_file_write_iter(struct kiocb *iocb, struct iov_iter *ite
 
 	/* Make sure generic_write_checks sees an up to date inode size. */
 	if (file->f_flags & O_APPEND) {
-		rc = orangefs_inode_old_getattr(file->f_mapping->host,
-					 ORANGEFS_ATTR_SYS_SIZE, 0);
+		rc = orangefs_inode_getattr(file->f_mapping->host, 0, 1);
+		if (rc == -ESTALE)
+			rc = -EIO;
 		if (rc) {
-			gossip_err("%s: orangefs_inode_old_getattr failed, rc:%zd:.\n",
-				   __func__, rc);
+			gossip_err("%s: orangefs_inode_getattr failed, "
+			    "rc:%zd:.\n", __func__, rc);
 			goto out;
 		}
 	}
@@ -670,8 +671,9 @@ static loff_t orangefs_file_llseek(struct file *file, loff_t offset, int origin)
 		 * NOTE: We are only interested in file size here,
 		 * so we set mask accordingly.
 		 */
-		ret = orangefs_inode_old_getattr(inode,
-		    ORANGEFS_ATTR_SYS_SIZE, 0);
+		ret = orangefs_inode_getattr(file->f_mapping->host, 0, 1);
+		if (ret == -ESTALE)
+			ret = -EIO;
 		if (ret) {
 			gossip_debug(GOSSIP_FILE_DEBUG,
 				     "%s:%s:%d calling make bad inode\n",