• Boris Burkov's avatar
    btrfs: qgroup: only set QUOTA_ENABLED when done reading qgroups · e0761451
    Boris Burkov authored
    In open_ctree, we set BTRFS_FS_QUOTA_ENABLED as soon as we see a
    quota_root, as opposed to after we are done setting up the qgroup
    structures. In the quota_enable path, we wait until after the structures
    are set up. Likewise, in disable, we clear the bit before tearing down
    the structures. I feel that this organization is less surprising for the
    open_ctree path.
    
    I don't believe this fixes any actual bug, but avoids potential
    confusion when using btrfs_qgroup_mode in an intermediate state where we
    are enabled but haven't yet setup the qgroup status flags. It also
    avoids any risk of calling a qgroup function and attempting to use the
    qgroup rbtrees before they exist/are setup.
    
    This all occurs before we do rw setup, so I believe it should be mostly
    a no-op.
    Signed-off-by: default avatarBoris Burkov <boris@bur.io>
    Signed-off-by: default avatarDavid Sterba <dsterba@suse.com>
    e0761451
disk-io.c 138 KB