btrfs-progs: allow "no" to disable compression for convenience

It's messy to use "" to disable compression. Introduce the new value "no"
which can also be used for this purpose.

Signed-off-by: Satoru Takeuchi <satoru.takeuchi@gmail.com>
[ coding style fixes ]
Signed-off-by: David Sterba <dsterba@suse.com>
This commit is contained in:
Satoru Takeuchi 2017-10-14 21:54:54 +09:00 committed by David Sterba
parent 4a5b95abb6
commit df11e2787b
2 changed files with 6 additions and 3 deletions

View File

@ -43,7 +43,7 @@ read-only flag of subvolume: true or false
label::::
label of device
compression::::
compression setting for an inode: lzo, zlib, zstd, or "" (empty string)
compression setting for an inode: lzo, zlib, zstd, no, or "" (empty string). Both no and "" are for disabling compression.
*list* [-t <type>] <object>::
Lists available properties with their descriptions for the given object.

View File

@ -142,10 +142,13 @@ static int prop_compression(enum prop_object_type type,
memcpy(xattr_name + XATTR_BTRFS_PREFIX_LEN, name, strlen(name));
xattr_name[XATTR_BTRFS_PREFIX_LEN + strlen(name)] = '\0';
if (value)
if (value) {
if (strcmp(value, "no") == 0)
value = "";
sret = fsetxattr(fd, xattr_name, value, strlen(value), 0);
else
} else {
sret = fgetxattr(fd, xattr_name, NULL, 0);
}
if (sret < 0) {
ret = -errno;
if (ret != -ENOATTR)