Qu Wenruo posted on Wed, 16 Mar 2016 10:48:48 +0800 as excerpted: > 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.
I always understood it as a convenient simplification for the sake of the user, for whom tracking data and metadata separately is already a major complication over what they're dealing with on most filesystems. But I also wondered why there was no parallel to the -s system option for metadata ONLY, perhaps requiring --force just as the -s option does. The --force requirement for -s /does/ encourage people not to touch it at all, separately, and there could be very good reasons to normally treat system as metadata and process them as a combined unit, but even then, it seems very odd to me to expose -s on its own, even if --force is required, and not a parallel, say -M, for metadata-only, again, possibly only if --force is used as well. -- Duncan - List replies preferred. No HTML msgs. "Every nonfree program has a lord, a master -- and if you use the program, he is your master." Richard Stallman -- 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