• Misono, Tomohiro's avatar
    btrfs: remove BTRFS_FS_QUOTA_DISABLING flag · c2faff79
    Misono, Tomohiro authored
    Currently, "btrfs quota enable" would fail after "btrfs quota disable" on
    the first time with syslog output "qgroup_rescan_init failed with -22", but
    it would succeed on the second time.
    
    When "quota disable" is called, BTRFS_FS_QUOTA_DISABLING flag bit will be
    set in fs_info->flags in btrfs_quota_disable(), but it will not be droppd
    in btrfs_run_qgroups() (which is called in btrfs_commit_transaction())
    because quota_root has already been freed. If "quota enable" is called
    after that, both BTRFS_FS_QUOTA_DISABLING and BTRFS_FS_QUOTA_ENABLED flag
    would be dropped in the btrfs_run_qgroups() since quota_root is not NULL.
    This leads to the failure of "quota enable" on the first time.
    
    BTRFS_FS_QUOTA_DISABLING flag is not used outside of "quota disable"
    context and is equivalent to whether quota_root is NULL or not.
    btrfs_run_qgroups() checks whether quota_root is NULL or not in the first
    place.
    
    So, let's remove BTRFS_FS_QUOTA_DISABLING flag.
    Signed-off-by: default avatarTomohiro Misono <misono.tomohiro@jp.fujitsu.com>
    Reviewed-by: default avatarDavid Sterba <dsterba@suse.com>
    Signed-off-by: default avatarDavid Sterba <dsterba@suse.com>
    c2faff79
qgroup.c 77.3 KB