• Dave Kleikamp's avatar
    jfs: fix a couple races · 73aaa22d
    Dave Kleikamp authored
    This patch fixes races uncovered by xfstests testcase 068.
    
    One race is the result of jfs_sync() trying to write a sync point to the
    journal after it has been frozen (or possibly in the process). Since
    freezing sync's the journal, there is no need to write a sync point so
    we simply want to return.
    
    The second involves jfs_write_inode() being called on a deleted inode.
    It calls jfs_flush_journal which is held up by the jfs_commit thread
    doing the final iput on the same deleted inode, which itself is
    waiting for the I_SYNC flag to be cleared. jfs_write_inode need not
    do anything when i_nlink is zero, which is the easy fix.
    Reported-by: default avatarMichael L. Semon <mlsemon35@gmail.com>
    Signed-off-by: default avatarDave Kleikamp <dave.kleikamp@oracle.com>
    73aaa22d
inode.c 10.1 KB