btrfs-util,tmpfiles: cleanup use of ERRNO_IS_NOT_SUPPORTED()
Given that ERRNO_IS_NOT_SUPPORTED() also matches positive values, make sure this macro is not called with arguments that do not have errno semantics. In this case the arguments passed to ERRNO_IS_NOT_SUPPORTED() are the values returned by btrfs_subvol_make_fd() which is not expected to return any positive values, but let's be consistent anyway and move ERRNO_IS_NOT_SUPPORTED() invocations to the branches where the return values are known to be negative.
This commit is contained in:
@@ -1565,14 +1565,16 @@ int btrfs_subvol_snapshot_at_full(
|
||||
return -EISDIR;
|
||||
|
||||
r = btrfs_subvol_make_fd(new_fd, subvolume);
|
||||
if (ERRNO_IS_NOT_SUPPORTED(r) && (flags & BTRFS_SNAPSHOT_FALLBACK_DIRECTORY)) {
|
||||
/* If the destination doesn't support subvolumes, then use a plain directory, if that's requested. */
|
||||
if (mkdirat(new_fd, subvolume, 0755) < 0)
|
||||
return -errno;
|
||||
if (r < 0) {
|
||||
if (ERRNO_IS_NOT_SUPPORTED(r) && (flags & BTRFS_SNAPSHOT_FALLBACK_DIRECTORY)) {
|
||||
/* If the destination doesn't support subvolumes, then use a plain directory, if that's requested. */
|
||||
if (mkdirat(new_fd, subvolume, 0755) < 0)
|
||||
return -errno;
|
||||
|
||||
plain_directory = true;
|
||||
} else if (r < 0)
|
||||
return r;
|
||||
plain_directory = true;
|
||||
} else
|
||||
return r;
|
||||
}
|
||||
|
||||
if (FLAGS_SET(flags, BTRFS_SNAPSHOT_LOCK_BSD)) {
|
||||
subvolume_fd = xopenat_lock(new_fd, subvolume,
|
||||
|
||||
@@ -1883,7 +1883,7 @@ static int create_directory_or_subvolume(
|
||||
} else
|
||||
r = 0;
|
||||
|
||||
if (!subvol || ERRNO_IS_NOT_SUPPORTED(r))
|
||||
if (!subvol || (r < 0 && ERRNO_IS_NOT_SUPPORTED(r)))
|
||||
WITH_UMASK(0000)
|
||||
r = mkdirat_label(pfd, bn, mode);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user