X-Git-Url: http://git.rot13.org/?p=Fuse-DBI;a=blobdiff_plain;f=DBI.pm;h=3537bf070cad63466a64fc3743b2a7c8e4002089;hp=c94a5e3e84d40f1fd346d3894fb3d8086df72fab;hb=8b53b090ace163fc02e100998eda16f4a0c0435b;hpb=258e57966734da73223b72d0048e613ad0b38703 diff --git a/DBI.pm b/DBI.pm index c94a5e3..3537bf0 100755 --- a/DBI.pm +++ b/DBI.pm @@ -13,7 +13,7 @@ use Carp; use Data::Dumper; -our $VERSION = '0.04'; +our $VERSION = '0.05'; =head1 NAME @@ -148,6 +148,7 @@ sub mount { my $pid; if ($arg->{'fork'}) { + $self->{'mounted'} = 1; $pid = fork(); die "fork() failed: $!" unless defined $pid; # child will return to caller @@ -169,7 +170,7 @@ sub mount { $self->{'read_filenames'} = sub { $self->read_filenames }; $self->read_filenames; - $self->{'mounted'} = 1; + $self->{'mounted'} = 1 unless ($arg->{'fork'}); $fuse_self = \$self; @@ -211,7 +212,7 @@ sub umount { my $self = shift; if ($self->{'mounted'}) { - system "fusermount -u ".$self->{'mount'} || croak "umount error: $!"; + system "fusermount -u ".$self->{'mount'} || warn "umount error: $!" && return 0; } return 1; @@ -342,7 +343,7 @@ sub e_getdir { my %out; foreach my $f (sort keys %files) { if ($dirname) { - if ($f =~ s/^\E$dirname\Q\///) { + if ($f =~ s/^\Q$dirname\E\///) { $out{$f}++ if ($f =~ /^[^\/]+$/); } } else {