summaryrefslogtreecommitdiffstats
path: root/fs/orangefs
diff options
context:
space:
mode:
authorMartin Brandenburg <martin@omnibond.com>2018-02-22 18:15:56 +0000
committerMike Marshall <hubcap@omnibond.com>2019-05-03 14:32:38 -0400
commit8a88bbce6f83430a737a97bb72d0912a6a103945 (patch)
treed4399c62ac3854091f3d9d7f8a7e694bb08f135d /fs/orangefs
parent3e9dfc6e1e8bce62a329f1452c7eeccbac230980 (diff)
downloadlinux-stable-8a88bbce6f83430a737a97bb72d0912a6a103945.tar.gz
linux-stable-8a88bbce6f83430a737a97bb72d0912a6a103945.tar.bz2
linux-stable-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__,