diff options
author | Martin Brandenburg <martin@omnibond.com> | 2018-02-22 19:15:56 +0100 |
---|---|---|
committer | Mike Marshall <hubcap@omnibond.com> | 2019-05-03 20:32:38 +0200 |
commit | 8a88bbce6f83430a737a97bb72d0912a6a103945 (patch) | |
tree | d4399c62ac3854091f3d9d7f8a7e694bb08f135d /fs/orangefs | |
parent | orangefs: move do_readv_writev to direct_IO (diff) | |
download | linux-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.c | 5 |
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__, |