Hi,

During debugging a bug related to balancing metadata chunk, we found that if we specify -m option for "btrfs balance", it will always balance system chunk too.

cmds-balance.c:
---
        /*
         * allow -s only under --force, otherwise do with system chunks
         * the same thing we were ordered to do with meta chunks
         */
        if (args.flags & BTRFS_BALANCE_SYSTEM) {
                if (!force) {
                        error(
"Refusing to explicitly operate on system chunks.\n"
                            "Pass --force if you really want to do that.");
                        return 1;
                }
        } else if (args.flags & BTRFS_BALANCE_METADATA) {
                args.flags |= BTRFS_BALANCE_SYSTEM; <<< Here
                memcpy(&args.sys, &args.meta,
                        sizeof(struct btrfs_balance_args));
        }
---

I'm curious why we always bind system chunk to metadata balance?

Is there any special reason?
The patch introducing such behavior is dated back to 2012, and this makes us unable to do metadata *only* balance.

Any idea?

Thanks,
Qu


--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to