From: Eric Wong Date: Tue, 12 Oct 2021 11:47:02 +0000 (+0000) Subject: msgmap: share most of check_inodes w/ over X-Git-Tag: v1.7.0~181 X-Git-Url: http://www.git.stargrave.org/?a=commitdiff_plain;h=212578b82ad3cb28b2d18f36c656be56a27fd5bc;p=public-inbox.git msgmap: share most of check_inodes w/ over We still need to account for msgmap being open all the time and not having separate read-only vs. read-write packages. --- diff --git a/lib/PublicInbox/Msgmap.pm b/lib/PublicInbox/Msgmap.pm index de9fd989..978730e2 100644 --- a/lib/PublicInbox/Msgmap.pm +++ b/lib/PublicInbox/Msgmap.pm @@ -257,21 +257,10 @@ sub skip_artnum { sub check_inodes { my ($self) = @_; - # no filename if in-:memory: - my $f = $self->{dbh}->sqlite_db_filename // return; - if (my @st = stat($f)) { # did st_dev, st_ino change? - my $st = pack('dd', $st[0], $st[1]); - if ($st ne ($self->{st} // $st)) { - my $tmp = eval { ref($self)->new_file($f) }; - if ($@) { - warn "E: DBI->connect($f): $@\n"; - } else { - %$self = %$tmp; - } - } - } else { - warn "W: stat $f: $!\n"; - } + $self->{dbh} // return; + my $rw = !$self->{dbh}->{ReadOnly}; + PublicInbox::Over::check_inodes($self); + $self->{dbh} //= PublicInbox::Over::dbh_new($self, !$rw); } 1;