summaryrefslogtreecommitdiffstats
path: root/fs/orangefs
diff options
context:
space:
mode:
authorMartin Brandenburg <martin@omnibond.com>2018-02-22 19:15:56 +0100
committerMike Marshall <hubcap@omnibond.com>2019-05-03 20:32:38 +0200
commit8a88bbce6f83430a737a97bb72d0912a6a103945 (patch)
treed4399c62ac3854091f3d9d7f8a7e694bb08f135d /fs/orangefs
parentorangefs: move do_readv_writev to direct_IO (diff)
downloadlinux-8a88bbce6f83430a737a97bb72d0912a6a103945.tar.xz
linux-8a88bbce6f83430a737a97bb72d0912a6a103945.zip
orangefs: skip inode writeout if nothing to write
Would happen if an inode is dirty but whatever happened is not something that can be written out to OrangeFS. Signed-off-by: Martin Brandenburg <martin@omnibond.com> Signed-off-by: Mike Marshall <hubcap@omnibond.com>
Diffstat (limited to 'fs/orangefs')
-rw-r--r--fs/orangefs/orangefs-utils.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/fs/orangefs/orangefs-utils.c b/fs/orangefs/orangefs-utils.c
index d6093a468db9..d4b7ae763186 100644
--- a/fs/orangefs/orangefs-utils.c
+++ b/fs/orangefs/orangefs-utils.c
@@ -431,6 +431,11 @@ int orangefs_inode_setattr(struct inode *inode)
copy_attributes_from_inode(inode,
&new_op->upcall.req.setattr.attributes);
orangefs_inode->attr_valid = 0;
+ if (!new_op->upcall.req.setattr.attributes.mask) {
+ spin_unlock(&inode->i_lock);
+ op_release(new_op);
+ return 0;
+ }
spin_unlock(&inode->i_lock);
ret = service_operation(new_op, __func__,