--- trunk/DBI.pm 2004/11/27 14:02:18 51 +++ trunk/DBI.pm 2005/04/26 19:57:51 54 @@ -12,9 +12,11 @@ use Carp; use Data::Dumper; - our $VERSION = '0.07'; +# block size for this filesystem +use constant BLOCK => 1024; + =head1 NAME Fuse::DBI - mount your database as filesystem and use it @@ -247,9 +249,11 @@ my $self = shift; if ($self->{'mount'} && $self->is_mounted) { - system "fusermount -u ".$self->{'mount'}." 2>&1 >/dev/null" || + system "( fusermount -u ".$self->{'mount'}." 2>&1 ) >/dev/null"; + if ($self->is_mounted) { system "sudo umount ".$self->{'mount'} || return 0; + } return 1; } @@ -369,8 +373,8 @@ $file =~ s,^/,,; $file = '.' unless length($file); return -ENOENT() unless exists($files{$file}); - my ($size) = $files{$file}{size} || 1024; - my ($dev, $ino, $rdev, $blocks, $gid, $uid, $nlink, $blksize) = (0,0,0,int(($size+1023)/1024),0,0,1,1024); + my ($size) = $files{$file}{size} || 0; + my ($dev, $ino, $rdev, $blocks, $gid, $uid, $nlink, $blksize) = (0,0,0,int(($size+BLOCK-1)/BLOCK),0,0,1,BLOCK); my ($atime, $ctime, $mtime); $atime = $ctime = $mtime = $files{$file}{ctime} || $ctime_start; @@ -378,7 +382,7 @@ # 2 possible types of return values: #return -ENOENT(); # or any other error you care to - print "getattr($file) ",join(",",($dev,$ino,$modes,$nlink,$uid,$gid,$rdev,$size,$atime,$mtime,$ctime,$blksize,$blocks)),"\n"; + #print "getattr($file) ",join(",",($dev,$ino,$modes,$nlink,$uid,$gid,$rdev,$size,$atime,$mtime,$ctime,$blksize,$blocks)),"\n"; return ($dev,$ino,$modes,$nlink,$uid,$gid,$rdev,$size,$atime,$mtime,$ctime,$blksize,$blocks); } @@ -428,6 +432,7 @@ read_content($file,$files{$file}{id}) unless exists($files{$file}{cont}); + $files{$file}{cont} ||= ''; print "open '$file' ",length($files{$file}{cont})," bytes\n"; return 0; } @@ -556,11 +561,11 @@ print "$inodes: $f [$size]\n"; } - $size = int(($size+1023)/1024); + $size = int(($size+BLOCK-1)/BLOCK); - my @ret = (255, $inodes+1000, $inodes, $size, $size-10, 1024); + my @ret = (255, $inodes, 1, $size, $size-1, BLOCK); - print "statfs: ",join(",",@ret),"\n"; + #print "statfs: ",join(",",@ret),"\n"; return @ret; }