mirror of https://github.com/digint/btrbk
WIP btrbk: run btrfs commands with ionice
Add `ionice` command in front of all btrfs commands if either `ionice_class` or `ionice_level` is set. KNOWN BUGS: - puts `ionice` in front of sudo if backend=btrbk-progs-sudo is set. - probably makes only sense for `btrfs send` and `btrfs receive` operations. Example: target send-receive /tmp/btrbk/mnt_target/ ionice_class 1 ionice_level 0ionice
parent
dcee6222be
commit
bf36028967
16
btrbk
16
btrbk
|
@ -140,6 +140,13 @@ my %config_options = (
|
||||||
backend_remote => { default => undef, accept => [qw( no btrfs-progs btrfs-progs-btrbk btrfs-progs-sudo btrfs-progs-doas )] },
|
backend_remote => { default => undef, accept => [qw( no btrfs-progs btrfs-progs-btrbk btrfs-progs-sudo btrfs-progs-doas )] },
|
||||||
backend_local_user => { default => undef, accept => [qw( no btrfs-progs btrfs-progs-btrbk btrfs-progs-sudo btrfs-progs-doas )] },
|
backend_local_user => { default => undef, accept => [qw( no btrfs-progs btrfs-progs-btrbk btrfs-progs-sudo btrfs-progs-doas )] },
|
||||||
|
|
||||||
|
ionice_class => { default => undef, accept => [ qw( no ), (0..3) ] },
|
||||||
|
ionice_class_local => { default => undef, accept => [ qw( no ), (0..3) ] },
|
||||||
|
ionice_class_remote => { default => undef, accept => [ qw( no ), (0..3) ] },
|
||||||
|
ionice_level => { default => undef, accept => [ qw( no ), (0..7) ] },
|
||||||
|
ionice_level_local => { default => undef, accept => [ qw( no ), (0..7) ] },
|
||||||
|
ionice_level_remote => { default => undef, accept => [ qw( no ), (0..7) ] },
|
||||||
|
|
||||||
compat => { default => undef, accept => [qw( no busybox ignore_receive_errors )], split => 1 },
|
compat => { default => undef, accept => [qw( no busybox ignore_receive_errors )], split => 1 },
|
||||||
compat_local => { default => undef, accept => [qw( no busybox ignore_receive_errors )], split => 1 },
|
compat_local => { default => undef, accept => [qw( no busybox ignore_receive_errors )], split => 1 },
|
||||||
compat_remote => { default => undef, accept => [qw( no busybox ignore_receive_errors )], split => 1 },
|
compat_remote => { default => undef, accept => [qw( no busybox ignore_receive_errors )], split => 1 },
|
||||||
|
@ -2758,7 +2765,14 @@ sub vinfo_cmd($$@)
|
||||||
my @cmd_args = @_;
|
my @cmd_args = @_;
|
||||||
my $backend = config_key_lru($vinfo, "backend") // die;
|
my $backend = config_key_lru($vinfo, "backend") // die;
|
||||||
my $cmd_mapped = $backend_cmd_map{$backend}{$cmd} // [ split(" ", $cmd) ];
|
my $cmd_mapped = $backend_cmd_map{$backend}{$cmd} // [ split(" ", $cmd) ];
|
||||||
return [ @$cmd_mapped, @cmd_args ];
|
my @ionice;
|
||||||
|
my $ionice_class = config_key_lru($vinfo, "ionice_class");
|
||||||
|
my $ionice_level = config_key_lru($vinfo, "ionice_level");
|
||||||
|
push @ionice, "-c", $ionice_class if $ionice_class;
|
||||||
|
push @ionice, "-n", $ionice_level if $ionice_level;
|
||||||
|
unshift @ionice, "ionice" if @ionice;
|
||||||
|
|
||||||
|
return [ @ionice, @$cmd_mapped, @cmd_args ];
|
||||||
}
|
}
|
||||||
|
|
||||||
sub _get_btrbk_date(@)
|
sub _get_btrbk_date(@)
|
||||||
|
|
Loading…
Reference in New Issue