• Greg Kroah-Hartman's avatar
    Revert "ocfs2: should wait dio before inode lock in ocfs2_setattr()" · 40012163
    Greg Kroah-Hartman authored
    This reverts commit c4baa4a5 which is
    commit 28f5a8a7 upstream.
    
    It shouldn't be applied to the 4.4-stable tree.
    
    Ben and Alex write:
    
    > Now that ocfs2_setattr() calls this outside of the inode locked region,
    > what prevents another task adding a new dio request immediately
    > afterward?
    >
    
    In the kernel 4.6, firstly, we use the inode_lock() in do_truncate() to
    prevent another bio to be issued from this node.
    Furthermore, we use the ocfs2_rw_lock() and ocfs2_inode_lock() in ocfs2_setattr()
    to guarantee no more bio will be issued from the other nodes in this cluster.
    
    > Also, ocfs2_dio_end_io_write() was introduced in 4.6 and it looks like
    > the dio completion path didn't previously take the inode lock.  So it
    > doesn't look this fix is needed in 3.18 or 4.4.
    
    Yes, ocfs2_dio_end_io_write() was introduced in 4.6 and the problem this patch
    fixes is only exist in the kernel 4.6 and above 4.6.
    Reported-by: default avatarBen Hutchings <ben.hutchings@codethink.co.uk>
    Cc: Alex Chen <alex.chen@huawei.com>
    Cc: Jun Piao <piaojun@huawei.com>
    Cc: Joseph Qi <jiangqi903@gmail.com>
    Cc: Changwei Ge <ge.changwei@h3c.com>
    Cc: Mark Fasheh <mfasheh@versity.com>
    Cc: Joel Becker <jlbec@evilplan.org>
    Cc: Junxiao Bi <junxiao.bi@oracle.com>
    Cc: Andrew Morton <akpm@linux-foundation.org>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    40012163
file.c 65.2 KB