gfs2: fix bogus __mark_inode_dirty(I_DIRTY_SYNC | I_DIRTY_DATASYNC) calls
authorChristoph Hellwig <hch@lst.de>
Wed, 21 Feb 2018 15:54:46 +0000 (07:54 -0800)
committerAl Viro <viro@zeniv.linux.org.uk>
Wed, 28 Mar 2018 05:39:01 +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/gfs2/xattr.c

index 05de209..f2bce1e 100644 (file)
@@ -308,7 +308,7 @@ static int ea_dealloc_unstuffed(struct gfs2_inode *ip, struct buffer_head *bh,
        }
 
        ip->i_inode.i_ctime = current_time(&ip->i_inode);
-       __mark_inode_dirty(&ip->i_inode, I_DIRTY_SYNC | I_DIRTY_DATASYNC);
+       __mark_inode_dirty(&ip->i_inode, I_DIRTY_DATASYNC);
 
        gfs2_trans_end(sdp);
 
@@ -768,7 +768,7 @@ static int ea_alloc_skeleton(struct gfs2_inode *ip, struct gfs2_ea_request *er,
                goto out_end_trans;
 
        ip->i_inode.i_ctime = current_time(&ip->i_inode);
-       __mark_inode_dirty(&ip->i_inode, I_DIRTY_SYNC | I_DIRTY_DATASYNC);
+       __mark_inode_dirty(&ip->i_inode, I_DIRTY_DATASYNC);
 
 out_end_trans:
        gfs2_trans_end(GFS2_SB(&ip->i_inode));
@@ -896,7 +896,7 @@ static int ea_set_simple_noalloc(struct gfs2_inode *ip, struct buffer_head *bh,
                ea_set_remove_stuffed(ip, es->es_el);
 
        ip->i_inode.i_ctime = current_time(&ip->i_inode);
-       __mark_inode_dirty(&ip->i_inode, I_DIRTY_SYNC | I_DIRTY_DATASYNC);
+       __mark_inode_dirty(&ip->i_inode, I_DIRTY_DATASYNC);
 
        gfs2_trans_end(GFS2_SB(&ip->i_inode));
        return error;
@@ -1114,7 +1114,7 @@ static int ea_remove_stuffed(struct gfs2_inode *ip, struct gfs2_ea_location *el)
        }
 
        ip->i_inode.i_ctime = current_time(&ip->i_inode);
-       __mark_inode_dirty(&ip->i_inode, I_DIRTY_SYNC | I_DIRTY_DATASYNC);
+       __mark_inode_dirty(&ip->i_inode, I_DIRTY_DATASYNC);
 
        gfs2_trans_end(GFS2_SB(&ip->i_inode));