btrfs-progs: fix UNITS_DECIMAL and UNITS_NEGATIVE bit definitions

The values of UNITS_ modes are supposed to be unique and
non-overlapping. Due to wrong definition this was not true for
UNITS_DECIMAL which set 2 bits. This breaks code that strictly depends
on the uniqueness of the bits and not on the order of processing of the
constants.

Signed-off-by: David Sterba <dsterba@suse.com>
This commit is contained in:
David Sterba 2025-02-12 00:01:44 +01:00
parent 6f0b332de2
commit cab2eeb9ff

View File

@ -31,9 +31,9 @@
#define UNITS_TBYTES (5) #define UNITS_TBYTES (5)
#define UNITS_RAW (1U << UNITS_MODE_SHIFT) #define UNITS_RAW (1U << UNITS_MODE_SHIFT)
#define UNITS_BINARY (2U << UNITS_MODE_SHIFT) #define UNITS_BINARY (2U << UNITS_MODE_SHIFT)
#define UNITS_DECIMAL (3U << UNITS_MODE_SHIFT) #define UNITS_DECIMAL (4U << UNITS_MODE_SHIFT)
/* Interpret the u64 value as s64 */ /* Interpret the u64 value as s64 */
#define UNITS_NEGATIVE (4U << UNITS_MODE_SHIFT) #define UNITS_NEGATIVE (8U << UNITS_MODE_SHIFT)
#define UNITS_MODE_MASK ((1U << UNITS_MODE_SHIFT) - 1) #define UNITS_MODE_MASK ((1U << UNITS_MODE_SHIFT) - 1)
#define UNITS_MODE_SHIFT (8) #define UNITS_MODE_SHIFT (8)
#define UNITS_HUMAN_BINARY (UNITS_BINARY) #define UNITS_HUMAN_BINARY (UNITS_BINARY)