prepare DIRTY for a tied variable
authorHeiko Schlittermann (JUMPER) <hs@schlittermann.de>
Mon, 25 Jul 2011 22:03:42 +0200
changeset 16 867424a1db61
parent 15 f218b05f1da4
child 17 0e5a8a5f4674
prepare DIRTY for a tied variable
fuse
--- a/fuse	Mon Jul 25 21:53:47 2011 +0200
+++ b/fuse	Mon Jul 25 22:03:42 2011 +0200
@@ -130,8 +130,8 @@
 	my $length = $finfo->{meta}{blocksize} - $blockoffset;
 	$length = $size if $size <= $length;
 
-	if (exists $DIRTY{$finfo}{$block}) {
-	    return substr $DIRTY{$finfo}{$block}, $blockoffset, $length;
+	if (exists $DIRTY{$finfo.$block}) {
+	    return substr $DIRTY{$finfo.$block}, $blockoffset, $length;
 	}
 
 	my $fn = "$DATA/" . $finfo->{blocklist}{$block};
@@ -178,8 +178,8 @@
 	my $block = int($offset / $finfo->{meta}{blocksize});
 	my $blockoffset = $offset % $finfo->{meta}{blocksize};
 
-	if (not exists $DIRTY{$finfo}{$block}) {
-	    $DIRTY{$finfo}{$block} = _readblock(
+	if (not exists $DIRTY{$finfo.$block}) {
+	    $DIRTY{$finfo.$block} = _readblock(
 		    $finfo, 
 		    $finfo->{meta}{blocksize}, 
 		    $block * $finfo->{meta}{blocksize});
@@ -188,7 +188,7 @@
 	my $length = $finfo->{meta}{blocksize} - $blockoffset;
 	$length = $size if $size < $length;
 
-	substr($DIRTY{$finfo}{$block}, $blockoffset, $length)
+	substr($DIRTY{$finfo.$block}, $blockoffset, $length)
 	    = substr($buffer, 0, $length);
 
 	return $length;