|
From: <ga...@us...> - 2012-08-10 07:12:07
|
Revision: 5919
http://jnode.svn.sourceforge.net/jnode/?rev=5919&view=rev
Author: galatnm
Date: 2012-08-10 07:12:00 +0000 (Fri, 10 Aug 2012)
Log Message:
-----------
Fix a bug in extent block lookups
Modified Paths:
--------------
trunk/fs/src/fs/org/jnode/fs/ext2/Extent.java
trunk/fs/src/fs/org/jnode/fs/ext2/ExtentHeader.java
Modified: trunk/fs/src/fs/org/jnode/fs/ext2/Extent.java
===================================================================
--- trunk/fs/src/fs/org/jnode/fs/ext2/Extent.java 2012-08-10 07:08:00 UTC (rev 5918)
+++ trunk/fs/src/fs/org/jnode/fs/ext2/Extent.java 2012-08-10 07:12:00 UTC (rev 5919)
@@ -24,6 +24,11 @@
public Extent(byte[] data) {
this.data = new byte[EXTENT_LENGTH];
System.arraycopy(data, 0, this.data, 0, EXTENT_LENGTH);
+
+ // Safety check
+ if (getStartHigh() != 0) {
+ throw new UnsupportedOperationException("Extents that use the high bits aren't supported yet");
+ }
}
public long getBlockIndex() {
@@ -41,4 +46,10 @@
public int getStartHigh() {
return Ext2Utils.get16(data, 6);
}
+
+ @Override
+ public String toString() {
+ return String.format("Extent: blockindex:%d count:%d start(low:%d high:%d)", getBlockIndex(), getBlockCount(),
+ getStartLow(), getStartHigh());
+ }
}
Modified: trunk/fs/src/fs/org/jnode/fs/ext2/ExtentHeader.java
===================================================================
--- trunk/fs/src/fs/org/jnode/fs/ext2/ExtentHeader.java 2012-08-10 07:08:00 UTC (rev 5918)
+++ trunk/fs/src/fs/org/jnode/fs/ext2/ExtentHeader.java 2012-08-10 07:12:00 UTC (rev 5919)
@@ -128,7 +128,12 @@
}
}
- return extent.getStartLow();
+ return index - extent.getBlockIndex() + extent.getStartLow();
}
}
+
+ @Override
+ public String toString() {
+ return String.format("ExtentHeader: depth:%d entries:%d/%d", getDepth(), getEntryCount(), getMaximumEntryCount());
+ }
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|