zfs: use -r parameter when listing snapshots
Some versions of ZFS do not automatically display the child snapshots when '-t snapshot' is used, but require '-r' to be present additionally[1]. And in general, it's cleaner to specify the flag explicitly. Because of that, commitac5c1afled to a regression[0] in the context of ZFS over iSCSI with zfs_get_sorted_snapshot_list. Fix it, by adding a -r flag again. The volume_snapshot_info function is currently only used in the context of replication and that requires a local ZFS pool, but it would be affected by the same issue if it is ever used in the context of ZFS over iSCSI, so also add -r there. [0]: https://forum.proxmox.com/threads/102683/ [1]: https://forum.proxmox.com/threads/102683/post-442577 Fixes:8c20d8a("plugin: add volume_snapshot_info function") Fixes:ac5c1af("zfspool: add zfs_get_sorted_snapshot_list helper") Signed-off-by: Fabian Ebner <f.ebner@proxmox.com>
This commit is contained in:
committed by
Fabian Grünbichler
parent
b4616e5c4a
commit
73dfe360dd
@ -398,9 +398,11 @@ sub zfs_list_zvol {
|
||||
sub zfs_get_sorted_snapshot_list {
|
||||
my ($class, $scfg, $volname, $sort_params) = @_;
|
||||
|
||||
my $vname = ($class->parse_volname($volname))[1];
|
||||
my @params = ('-H', '-r', '-t', 'snapshot', '-o', 'name', $sort_params->@*);
|
||||
|
||||
my $vname = ($class->parse_volname($volname))[1];
|
||||
push @params, "$scfg->{pool}\/$vname";
|
||||
|
||||
my @params = ('-H', '-t', 'snapshot', '-o', 'name', $sort_params->@*, "$scfg->{pool}\/$vname");
|
||||
my $text = $class->zfs_request($scfg, undef, 'list', @params);
|
||||
my @snapshots = split(/\n/, $text);
|
||||
|
||||
@ -513,9 +515,11 @@ sub volume_rollback_is_possible {
|
||||
sub volume_snapshot_info {
|
||||
my ($class, $scfg, $storeid, $volname) = @_;
|
||||
|
||||
my $vname = ($class->parse_volname($volname))[1];
|
||||
my @params = ('-Hp', '-r', '-t', 'snapshot', '-o', 'name,guid,creation');
|
||||
|
||||
my $vname = ($class->parse_volname($volname))[1];
|
||||
push @params, "$scfg->{pool}\/$vname";
|
||||
|
||||
my @params = ('-Hp', '-t', 'snapshot', '-o', 'name,guid,creation', "$scfg->{pool}\/$vname");
|
||||
my $text = $class->zfs_request($scfg, undef, 'list', @params);
|
||||
my @lines = split(/\n/, $text);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user