• Darrick J. Wong's avatar
    xfs: evict all inodes involved with log redo item · 63d184d2
    Darrick J. Wong authored
    commit 799ea9e9 upstream.
    When we introduced the bmap redo log items, we set MS_ACTIVE on the
    mountpoint and XFS_IRECOVERY on the inode to prevent unlinked inodes
    from being truncated prematurely during log recovery.  This also had the
    effect of putting linked inodes on the lru instead of evicting them.
    Unfortunately, we neglected to find all those unreferenced lru inodes
    and evict them after finishing log recovery, which means that we leak
    them if anything goes wrong in the rest of xfs_mountfs, because the lru
    is only cleaned out on unmount.
    Therefore, evict unreferenced inodes in the lru list immediately
    after clearing MS_ACTIVE.
    Fixes: 17c12bcd ("xfs: when replaying bmap operations, don't let unlinked inodes get reaped")
    Signed-off-by: default avatarDarrick J. Wong <darrick.wong@oracle.com>
    Cc: viro@ZenIV.linux.org.uk
    Reviewed-by: default avatarBrian Foster <bfoster@redhat.com>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>