• Darrick J. Wong's avatar
    xfs: unset MS_ACTIVE if mount fails · d0992452
    Darrick J. Wong authored
    As part of the inode block map intent log item recovery process, we
    had to set the IRECOVERY flag to prevent an unlinked inode from
    being truncated during the first iput call.  This required us to set
    MS_ACTIVE so that iput puts the inode on the lru instead of
    immediately evicting the inode.
    
    Unfortunately, if the mount fails later on, the inodes that have
    been loaded (root dir and realtime) actually need to be evicted
    since we're aborting the mount.  If we don't clear MS_ACTIVE in the
    failure step, those inodes are not evicted and therefore leak.   The
    leak was found by running xfs/130 and rmmoding xfs immediately after
    the test.
    Signed-off-by: default avatarDarrick J. Wong <darrick.wong@oracle.com>
    Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
    Signed-off-by: default avatarDave Chinner <david@fromorbit.com>
    
    d0992452
xfs_mount.c 34.8 KB