aboutsummaryrefslogtreecommitdiffstats
path: root/fs/orangefs/file.c
diff options
context:
space:
mode:
authorMartin Brandenburg <martin@omnibond.com>2018-02-12 15:49:24 +0000
committerMike Marshall <hubcap@omnibond.com>2019-05-03 14:32:38 -0400
commit5e7f1d433804450cdb5ba478d26742963e06b1bc (patch)
tree9c8295484d848ee28d4b5ba9173f5a72cfabad78 /fs/orangefs/file.c
parentorangefs: simplify orangefs_inode_getattr interface (diff)
downloadlinux-dev-5e7f1d433804450cdb5ba478d26742963e06b1bc.tar.xz
linux-dev-5e7f1d433804450cdb5ba478d26742963e06b1bc.zip
orangefs: update attributes rather than relying on server
This should be a no-op now, but once inode writeback works, it'll be necessary to have the correct attribute in the dirty inode. Previously the attribute fetch timeout was marked invalid and the server provided the updated attribute. When the inode is dirty, the server cannot be consulted since it does not yet know the pending setattr. Signed-off-by: Martin Brandenburg <martin@omnibond.com> Signed-off-by: Mike Marshall <hubcap@omnibond.com>
Diffstat (limited to 'fs/orangefs/file.c')
-rw-r--r--fs/orangefs/file.c10
1 files changed, 2 insertions, 8 deletions
diff --git a/fs/orangefs/file.c b/fs/orangefs/file.c
index b0688ea894a4..a9e69c56d2fb 100644
--- a/fs/orangefs/file.c
+++ b/fs/orangefs/file.c
@@ -327,14 +327,8 @@ out:
file_accessed(file);
} else {
file_update_time(file);
- /*
- * Must invalidate to ensure write loop doesn't
- * prevent kernel from reading updated
- * attribute. Size probably changed because of
- * the write, and other clients could update
- * any other attribute.
- */
- orangefs_inode->getattr_time = jiffies - 1;
+ if (*offset > i_size_read(inode))
+ i_size_write(inode, *offset);
}
}