• Eric Sandeen's avatar
    xfs: write unmount record for ro mounts · 757a69ef
    Eric Sandeen authored
    There are dueling comments in the xfs code about intent
    for log writes when unmounting a readonly filesystem.
    
    In xfs_mountfs, we see the intent:
    
    /*
     * Now the log is fully replayed, we can transition to full read-only
     * mode for read-only mounts. This will sync all the metadata and clean
     * the log so that the recovery we just performed does not have to be
     * replayed again on the next mount.
     */
    
    and it calls xfs_quiesce_attr(), but by the time we get to
    xfs_log_unmount_write(), it returns early for a RDONLY mount:
    
     * Don't write out unmount record on read-only mounts.
    
    Because of this, sequential ro mounts of a filesystem with
    a dirty log will replay the log each time, which seems odd.
    
    Fix this by writing an unmount record even for RO mounts, as long
    as norecovery wasn't specified (don't write a clean log record
    if a dirty log may still be there!) and the log device is
    writable.
    Signed-off-by: default avatarEric Sandeen <sandeen@redhat.com>
    Reviewed-by: default avatarBrian Foster <bfoster@redhat.com>
    Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
    Reviewed-by: default avatarDarrick J. Wong <darrick.wong@oracle.com>
    Signed-off-by: default avatarDarrick J. Wong <darrick.wong@oracle.com>
    757a69ef
xfs_log.c 113 KB