• David Sterba's avatar
    btrfs: allow defrag compress to override NOCOMPRESS attribute · 1e20d1c4
    David Sterba authored
    Currently, the BTRFS_INODE_NOCOMPRESS will prevent any compression on a
    given file, except when the mount is force-compress. As users have
    reported on IRC, this will also prevent compression when requested by
    defrag (btrfs fi defrag -c file).
    
    The nocompress flag is set automatically by filesystem when the ratios
    are bad and the user would have to manually drop the bit in order to
    make defrag -c work. This is not good from the usability perspective.
    
    This patch will raise priority for the defrag -c over nocompress, ie.
    any file with NOCOMPRESS bit set will get defragmented. The bit will
    remain untouched.
    
    Alternate option was to also drop the nocompress bit and keep the
    decision logic as is, but I think this is not the right solution.
    Signed-off-by: default avatarDavid Sterba <dsterba@suse.com>
    1e20d1c4
inode.c 291 KB