ubifs: fix bogus __mark_inode_dirty(I_DIRTY_SYNC | I_DIRTY_DATASYNC) call
authorChristoph Hellwig <hch@lst.de>
Wed, 21 Feb 2018 15:54:48 +0000 (07:54 -0800)
committerAl Viro <viro@zeniv.linux.org.uk>
Wed, 28 Mar 2018 05:39:02 +0000 (01:39 -0400)
I_DIRTY_DATASYNC is a strict superset of I_DIRTY_SYNC semantics, as
in mark dirty to be written out by fdatasync as well.  So dirtying
for both flags makes no sense.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
fs/ubifs/file.c

index cf348ba9923858927d6f19a92b65985184285dc3..1acb2ff505e6fc98dfce01b519dcb81a28c0fb0a 100644 (file)
@@ -1256,7 +1256,7 @@ static int do_setattr(struct ubifs_info *c, struct inode *inode,
                 * Inode length changed, so we have to make sure
                 * @I_DIRTY_DATASYNC is set.
                 */
-                __mark_inode_dirty(inode, I_DIRTY_SYNC | I_DIRTY_DATASYNC);
+                __mark_inode_dirty(inode, I_DIRTY_DATASYNC);
        else
                mark_inode_dirty_sync(inode);
        mutex_unlock(&ui->ui_mutex);