X-Git-Url: https://git.proxmox.com/?a=blobdiff_plain;ds=sidebyside;f=src%2FPVE%2FTools.pm;h=550da09a609ddcf39f7999cc384bb312515192ed;hb=6cf6b40469e5cbd63c04f075ce1399f3a1ad3574;hp=a9addcd7e595cc0737a0f1d3eca9f84da9e18447;hpb=26a68cf6d8708a1bb4be192f756cb958282b4381;p=pve-common.git diff --git a/src/PVE/Tools.pm b/src/PVE/Tools.pm index a9addcd..550da09 100644 --- a/src/PVE/Tools.pm +++ b/src/PVE/Tools.pm @@ -85,6 +85,8 @@ use constant {CLONE_NEWNS => 0x00020000, use constant {O_PATH => 0x00200000, O_TMPFILE => 0x00410000}; # This includes O_DIRECTORY +use constant {AT_EMPTY_PATH => 0x1000}; + sub run_with_timeout { my ($timeout, $code, @param) = @_; @@ -1556,6 +1558,11 @@ sub mkdirat($$$) { return syscall(PVE::Syscall::mkdirat, $dirfd, $name, $mode) == 0; } +sub fchownat($$$$$) { + my ($dirfd, $pathname, $owner, $group, $flags) = @_; + return syscall(PVE::Syscall::fchownat, $dirfd, $pathname, $owner, $group, $flags) == 0; +} + my $salt_starter = time(); sub encrypt_pw { @@ -1654,6 +1661,10 @@ sub dev_t_minor($) { sub array_intersect { my ($arrays) = @_; + if (!ref($arrays->[0])) { + $arrays = [ grep { ref($_) eq 'ARRAY' } @_ ]; + } + return [] if scalar(@$arrays) == 0; return $arrays->[0] if scalar(@$arrays) == 1;