sub file_size_info {
my ($filename, $timeout) = @_;
- if (-d $filename) {
- return wantarray ? (0, 'subvol', 0, undef) : 1;
+ my @fs = stat($filename);
+ my $mode = $fs[2];
+ my $ctime = $fs[10];
+
+ if (S_ISDIR($mode)) {
+ return wantarray ? (0, 'subvol', 0, undef, $ctime) : 1;
}
my $json = '';
my ($size, $format, $used, $parent) = $info->@{qw(virtual-size format actual-size backing-filename)};
- return wantarray ? ($size, $format, $used, $parent) : $size;
+ return wantarray ? ($size, $format, $used, $parent, $ctime) : $size;
}
sub volume_size_info {
next if !$vollist && defined($vmid) && ($owner ne $vmid);
- my ($size, $format, $used, $parent) = file_size_info($fn);
+ my ($size, $format, $used, $parent, $ctime) = file_size_info($fn);
next if !($format && defined($size));
my $volid;
next if !$found;
}
- push @$res, {
+ my $info = {
volid => $volid, format => $format,
size => $size, vmid => $owner, used => $used, parent => $parent
};
+
+ $info->{ctime} = $ctime if $ctime;
+
+ push @$res, $info;
}
return $res;