• J
    fs: don't take the i_lock in inode_inc_iversion · 7594c461
    Jeff Layton 提交于
    The rationale for taking the i_lock when incrementing this value is
    lost in antiquity. The readers of the field don't take it (at least
    not universally), so my assumption is that it was only done here to
    serialize incrementors.
    
    If that is indeed the case, then we can drop the i_lock from this
    codepath and treat it as a atomic64_t for the purposes of
    incrementing it. This allows us to use inode_inc_iversion without
    any danger of lock inversion.
    
    Note that the read side is not fetched atomically with this change.
    The assumption here is that that is not a critical issue since the
    i_version is not fully synchronized with anything else anyway.
    Signed-off-by: NJeff Layton <jlayton@redhat.com>
    Reviewed-by: NJan Kara <jack@suse.cz>
    7594c461
iversion.h 7.9 KB