mount-util: avoid unnecessary mount_setattr() call in make_fsmount()
If .attr_set is zero (and .att_clr, .propagation too), then there's no
point in calling mount_setattr().
Fixes: #37062
Note that this optimization is not precisely load-bearing anymore, since
3cc23a2c23 got merged which removes the
only caller of make_fsmount() that might trigger it. But it's worth
fixing generic code anyway, in case it gets used like this later again.
This commit is contained in:
committed by
Yu Watanabe
parent
1105f8d20f
commit
249752d1ec
@@ -1854,11 +1854,11 @@ int make_fsmount(
|
||||
if (mnt_fd < 0)
|
||||
return log_full_errno(error_log_level, errno, "Failed to create mount fd for \"%s\" (\"%s\"): %m", what, type);
|
||||
|
||||
if (mount_setattr(mnt_fd, "", AT_EMPTY_PATH|AT_RECURSIVE,
|
||||
&(struct mount_attr) {
|
||||
.attr_set = ms_flags_to_mount_attr(f) | (userns_fd >= 0 ? MOUNT_ATTR_IDMAP : 0),
|
||||
.userns_fd = userns_fd,
|
||||
}, MOUNT_ATTR_SIZE_VER0) < 0)
|
||||
struct mount_attr ma = {
|
||||
.attr_set = ms_flags_to_mount_attr(f) | (userns_fd >= 0 ? MOUNT_ATTR_IDMAP : 0),
|
||||
.userns_fd = userns_fd,
|
||||
};
|
||||
if (ma.attr_set != 0 && mount_setattr(mnt_fd, "", AT_EMPTY_PATH|AT_RECURSIVE, &ma, MOUNT_ATTR_SIZE_VER0) < 0)
|
||||
return log_full_errno(error_log_level,
|
||||
errno,
|
||||
"Failed to set mount flags for \"%s\" (\"%s\"): %m",
|
||||
|
||||
Reference in New Issue
Block a user