• F
    Btrfs: add missing compression property remove in btrfs_ioctl_setflags · 78a017a2
    Filipe Manana 提交于
    The behaviour of a 'chattr -c' consists of getting the current flags,
    clearing the FS_COMPR_FL bit and then sending the result to the set
    flags ioctl - this means the bit FS_NOCOMP_FL isn't set in the flags
    passed to the ioctl. This results in the compression property not being
    cleared from the inode - it was cleared only if the bit FS_NOCOMP_FL
    was set in the received flags.
    
    Reproducer:
    
        $ mkfs.btrfs -f /dev/sdd
        $ mount /dev/sdd /mnt && cd /mnt
        $ mkdir a
        $ chattr +c a
        $ touch a/file
        $ lsattr a/file
        --------c------- a/file
        $ chattr -c a
        $ touch a/file2
        $ lsattr a/file2
        --------c------- a/file2
        $ lsattr -d a
        ---------------- a
    Reported-by: NAndreas Schneider <asn@cryptomilk.org>
    Signed-off-by: NFilipe Manana <fdmanana@suse.com>
    Signed-off-by: NChris Mason <clm@fb.com>
    78a017a2
ioctl.c 128.4 KB