udevadm,basic: replace nulstr_contains with STR_IN_SET (#6965)

STR_IN_SET is a newer approach which is easier to write and read, and which
seems to result in space savings too:

before:
4949848 build/src/shared/libsystemd-shared-234.so
 350704 build/systemctl
4967184 build/systemd
 826216 build/udevadm

after:
4949848 build/src/shared/libsystemd-shared-234.so
 350704 build/systemctl
4966888 build/systemd
 826168 build/udevadm
This commit is contained in:
Zbigniew Jędrzejewski-Szmek 2017-10-04 19:32:12 +02:00 committed by Lennart Poettering
parent 689ca202e7
commit 5991ce44dc
2 changed files with 46 additions and 61 deletions

View File

@ -526,82 +526,67 @@ int mount_move_root(const char *path) {
}
bool fstype_is_network(const char *fstype) {
static const char table[] =
"afs\0"
"cifs\0"
"smbfs\0"
"sshfs\0"
"ncpfs\0"
"ncp\0"
"nfs\0"
"nfs4\0"
"gfs\0"
"gfs2\0"
"glusterfs\0"
"pvfs2\0" /* OrangeFS */
"ocfs2\0"
"lustre\0"
;
const char *x;
x = startswith(fstype, "fuse.");
if (x)
fstype = x;
return nulstr_contains(table, fstype);
return STR_IN_SET(fstype,
"afs",
"cifs",
"smbfs",
"sshfs",
"ncpfs",
"ncp",
"nfs",
"nfs4",
"gfs",
"gfs2",
"glusterfs",
"pvfs2", /* OrangeFS */
"ocfs2",
"lustre");
}
bool fstype_is_api_vfs(const char *fstype) {
static const char table[] =
"autofs\0"
"bpf\0"
"cgroup\0"
"cgroup2\0"
"configfs\0"
"cpuset\0"
"debugfs\0"
"devpts\0"
"devtmpfs\0"
"efivarfs\0"
"fusectl\0"
"hugetlbfs\0"
"mqueue\0"
"proc\0"
"pstore\0"
"ramfs\0"
"securityfs\0"
"sysfs\0"
"tmpfs\0"
"tracefs\0"
;
return nulstr_contains(table, fstype);
return STR_IN_SET(fstype,
"autofs",
"bpf",
"cgroup",
"cgroup2",
"configfs",
"cpuset",
"debugfs",
"devpts",
"devtmpfs",
"efivarfs",
"fusectl",
"hugetlbfs",
"mqueue",
"proc",
"pstore",
"ramfs",
"securityfs",
"sysfs",
"tmpfs",
"tracefs");
}
bool fstype_is_ro(const char *fstype) {
/* All Linux file systems that are necessarily read-only */
static const char table[] =
"DM_verity_hash\0"
"iso9660\0"
"squashfs\0"
;
return nulstr_contains(table, fstype);
return STR_IN_SET(fstype,
"DM_verity_hash",
"iso9660",
"squashfs");
}
bool fstype_can_discard(const char *fstype) {
static const char table[] =
"btrfs\0"
"ext4\0"
"vfat\0"
"xfs\0"
;
return nulstr_contains(table, fstype);
return STR_IN_SET(fstype,
"btrfs",
"ext4",
"vfat",
"xfs");
}
int repeat_unmount(const char *path, int flags) {

View File

@ -146,7 +146,7 @@ static int adm_trigger(struct udev *udev, int argc, char *argv[]) {
}
break;
case 'c':
if (!nulstr_contains("add\0" "remove\0" "change\0", optarg)) {
if (!STR_IN_SET(optarg, "add", "remove", "change")) {
log_error("unknown action '%s'", optarg);
return 2;
} else