diff options
| author | Maarten Vanraes <alien@mageia.org> | 2016-08-06 14:36:56 +0200 | 
|---|---|---|
| committer | Maarten Vanraes <alien@mageia.org> | 2016-08-06 14:36:56 +0200 | 
| commit | 9fd53f54fa7ff9cdf7f8525a46eddbabd80c5b10 (patch) | |
| tree | 9e65f95934d745f41c8c89937781eb570dce6b4d /lib/ManaTools/Shared | |
| parent | b7e67cdab93978bf7888007521452cb313104efb (diff) | |
| download | manatools-9fd53f54fa7ff9cdf7f8525a46eddbabd80c5b10.tar manatools-9fd53f54fa7ff9cdf7f8525a46eddbabd80c5b10.tar.gz manatools-9fd53f54fa7ff9cdf7f8525a46eddbabd80c5b10.tar.bz2 manatools-9fd53f54fa7ff9cdf7f8525a46eddbabd80c5b10.tar.xz manatools-9fd53f54fa7ff9cdf7f8525a46eddbabd80c5b10.zip | |
Part: allow to extend auto-reversible tags
Diffstat (limited to 'lib/ManaTools/Shared')
| -rw-r--r-- | lib/ManaTools/Shared/disk_backend/Part.pm | 9 | ||||
| -rw-r--r-- | lib/ManaTools/Shared/disk_backend/Plugin/Btrfs.pm | 10 | 
2 files changed, 16 insertions, 3 deletions
| diff --git a/lib/ManaTools/Shared/disk_backend/Part.pm b/lib/ManaTools/Shared/disk_backend/Part.pm index 44961628..a2455d0f 100644 --- a/lib/ManaTools/Shared/disk_backend/Part.pm +++ b/lib/ManaTools/Shared/disk_backend/Part.pm @@ -219,7 +219,10 @@ sub allow_tag {  }  sub _reverse_tag { +    my $self = shift;      my $tag = shift; +    my $rtag = inner($tag); +    return $rtag if (defined($rtag) && $tag ne $rtag);      return 'child' if ($tag eq 'parent');      return 'parent' if ($tag eq 'child');      return 'previous' if ($tag eq 'next'); @@ -243,7 +246,7 @@ sub add_link {      my $self = shift;      my $part = shift;      my @tags = @_; -    my @rtags = grep { defined $_ } map { _reverse_tag($_) } @tags; +    my @rtags = grep { defined $_ } map { $self->_reverse_tag($_) } @tags;      my $partlink1 = $self->_add_partlink($part, @tags);      my $partlink2 = $part->_add_partlink($self, @rtags);      return ($partlink1, $partlink2); @@ -253,7 +256,7 @@ sub add_taglink {      my $self = shift;      my $part = shift;      my @tags = @_; -    my @rtags = grep { defined $_ } map { _reverse_tag($_) } @tags; +    my @rtags = grep { defined $_ } map { $self->_reverse_tag($_) } @tags;      # partlink1      my $partlink1 = $self->find_link($part); @@ -334,7 +337,7 @@ sub remove_taglinks {      my $self = shift;      my $part = shift;      my @tags = @_; -    my @rtags = grep { defined $_ } map { _reverse_tag($_) } @tags; +    my @rtags = grep { defined $_ } map { $self->_reverse_tag($_) } @tags;      # partlink1      my $partlink1 = $self->find_link($part); diff --git a/lib/ManaTools/Shared/disk_backend/Plugin/Btrfs.pm b/lib/ManaTools/Shared/disk_backend/Plugin/Btrfs.pm index 9ee2a06e..0683f669 100644 --- a/lib/ManaTools/Shared/disk_backend/Plugin/Btrfs.pm +++ b/lib/ManaTools/Shared/disk_backend/Plugin/Btrfs.pm @@ -303,6 +303,16 @@ class_has '+restrictions' => (      }  ); +augment('_reverse_tag', sub { +    my $self = shift; +    my $tag = shift; +    my $rtag = inner($tag); +    return $rtag if (defined($rtag) && $tag ne $rtag); +    return 'childsubvol' if ($tag eq 'parentsubvol'); +    return 'parentsubvol' if ($tag eq 'childsubvol'); +    return $tag; +}); +  around('find_path', sub {      my $orig = shift;      my $self = shift; | 
