From: <ga...@us...> - 2012-08-10 06:37:22
|
Revision: 5911 http://jnode.svn.sourceforge.net/jnode/?rev=5911&view=rev Author: galatnm Date: 2012-08-10 06:37:15 +0000 (Fri, 10 Aug 2012) Log Message: ----------- Detect inodes that use ext4 extents Modified Paths: -------------- trunk/fs/src/fs/org/jnode/fs/ext2/Ext2Constants.java trunk/fs/src/fs/org/jnode/fs/ext2/Ext2Directory.java Modified: trunk/fs/src/fs/org/jnode/fs/ext2/Ext2Constants.java =================================================================== --- trunk/fs/src/fs/org/jnode/fs/ext2/Ext2Constants.java 2012-08-10 06:36:07 UTC (rev 5910) +++ trunk/fs/src/fs/org/jnode/fs/ext2/Ext2Constants.java 2012-08-10 06:37:15 UTC (rev 5911) @@ -78,6 +78,7 @@ // behaviour control flags in the inode public static final long EXT2_INDEX_FL = 0x00010000; // hash indexed directory + public static final long EXT4_INODE_EXTENTS_FLAG = 0x00080000; // Filesystem state constants public static final int EXT2_VALID_FS = 0x0001; // cleanly unmounted Modified: trunk/fs/src/fs/org/jnode/fs/ext2/Ext2Directory.java =================================================================== --- trunk/fs/src/fs/org/jnode/fs/ext2/Ext2Directory.java 2012-08-10 06:36:07 UTC (rev 5910) +++ trunk/fs/src/fs/org/jnode/fs/ext2/Ext2Directory.java 2012-08-10 06:37:15 UTC (rev 5911) @@ -25,7 +25,6 @@ import java.util.ArrayList; import java.util.Iterator; import java.util.NoSuchElementException; - import org.apache.log4j.Level; import org.apache.log4j.Logger; import org.jnode.fs.FSEntry; @@ -56,10 +55,16 @@ this.entry = entry; log.setLevel(Level.DEBUG); boolean readOnly; - if ((iNode.getFlags() & Ext2Constants.EXT2_INDEX_FL) == 1) + if ((iNode.getFlags() & Ext2Constants.EXT2_INDEX_FL) != 0 || + (iNode.getFlags() & Ext2Constants.EXT4_INODE_EXTENTS_FLAG) != 0) { readOnly = true; //force readonly - else + + if ((iNode.getFlags() & Ext2Constants.EXT4_INODE_EXTENTS_FLAG) != 0) + log.info("inode uses extents: " + entry); + } + else { readOnly = fs.isReadOnly(); + } setRights(true, !readOnly); log.debug("directory size: " + iNode.getSize()); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |