• Darrick J. Wong's avatar
    xfs: force log and push AIL to clear pinned inodes when aborting mount · d336f7eb
    Darrick J. Wong authored
    If we allocate quota inodes in the process of mounting a filesystem but
    then decide to abort the mount, it's possible that the quota inodes are
    sitting around pinned by the log.  Now that inode reclaim relies on the
    AIL to flush inodes, we have to force the log and push the AIL in
    between releasing the quota inodes and kicking off reclaim to tear down
    all the incore inodes.  Do this by extracting the bits we need from the
    unmount path and reusing them.  As an added bonus, failed writes during
    a failed mount will not retry forever now.
    
    This was originally found during a fuzz test of metadata directories
    (xfs/1546), but the actual symptom was that reclaim hung up on the quota
    inodes.
    Signed-off-by: default avatarDarrick J. Wong <djwong@kernel.org>
    Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
    Reviewed-by: default avatarDave Chinner <dchinner@redhat.com>
    d336f7eb
xfs_mount.c 34.4 KB