X-Git-Url: http://www.git.stargrave.org/?a=blobdiff_plain;f=lib%2FPublicInbox%2FXapcmd.pm;h=f1c80831d91803021ad275157f1220d66c26d248;hb=870982d2c1a17489410ae0e4ec28170d996527b2;hp=3b7a581bd5c872463447c86dd81113ddd5f5db04;hpb=c3ba74805e58b006768f3a29c3688a0a1d0bacaf;p=public-inbox.git diff --git a/lib/PublicInbox/Xapcmd.pm b/lib/PublicInbox/Xapcmd.pm index 3b7a581b..f1c80831 100644 --- a/lib/PublicInbox/Xapcmd.pm +++ b/lib/PublicInbox/Xapcmd.pm @@ -5,7 +5,7 @@ use strict; use warnings; use PublicInbox::Spawn qw(which popen_rd); use PublicInbox::Over; -use PublicInbox::SearchIdx; +use PublicInbox::SearchIdx qw(nodatacow_dir); use File::Temp 0.19 (); # ->newdir use File::Path qw(remove_tree); use File::Basename qw(dirname); @@ -187,6 +187,7 @@ sub prepare_run { my $v = PublicInbox::Search::SCHEMA_VERSION(); my $wip = File::Temp->newdir("xapian$v-XXXXXXXX", DIR => $dir); $tmp->{$old} = $wip; + nodatacow_dir($wip->dirname); push @queue, [ $old, $wip ]; } else { opendir my $dh, $old or die "Failed to opendir $old: $!\n"; @@ -217,6 +218,7 @@ sub prepare_run { same_fs_or_die($old, $wip->dirname); my $cur = "$old/$dn"; push @queue, [ $src // $cur , $wip ]; + nodatacow_dir($wip->dirname); $tmp->{$cur} = $wip; } # mark old shards to be unlinked @@ -406,6 +408,7 @@ sub cpdb ($$) { $ft = File::Temp->newdir("$new.compact-XXXXXX", DIR => $dir); setup_signals(); $tmp = $ft->dirname; + nodatacow_dir($tmp); } else { $tmp = $new; }