Fixing bug with invalid flag not passed when writing directory records
diff --git a/client/src/main/java/com/ibm/crail/conf/CrailConstants.java b/client/src/main/java/com/ibm/crail/conf/CrailConstants.java
index cc7b084..ff4d2fc 100644
--- a/client/src/main/java/com/ibm/crail/conf/CrailConstants.java
+++ b/client/src/main/java/com/ibm/crail/conf/CrailConstants.java
@@ -31,7 +31,7 @@
 	private static final Logger LOG = CrailUtils.getLogger();
 	
 	public static final String VERSION_KEY = "crail.version";
-	public static int VERSION = 3000;
+	public static int VERSION = 3002;
 	
 	public static final String DIRECTORY_DEPTH_KEY = "crail.directorydepth";
 	public static int DIRECTORY_DEPTH = 16;
diff --git a/client/src/main/java/com/ibm/crail/core/CoreFileSystem.java b/client/src/main/java/com/ibm/crail/core/CoreFileSystem.java
index 85f169c..b0af213 100644
--- a/client/src/main/java/com/ibm/crail/core/CoreFileSystem.java
+++ b/client/src/main/java/com/ibm/crail/core/CoreFileSystem.java
@@ -206,7 +206,7 @@
 		if (fileInfo.getDirOffset() >= 0){
 			BlockInfo dirBlock = fileRes.getDirBlock();
 			getBlockCache(dirInfo.getFd()).put(CoreSubOperation.createKey(dirInfo.getFd(), fileInfo.getDirOffset()), dirBlock);
-			CoreSyncOperation syncOperation = getSyncOperation(dirInfo, fileInfo, path);
+			CoreSyncOperation syncOperation = getSyncOperation(dirInfo, fileInfo, path, true);
 			node.addSyncOperation(syncOperation);
 		}
 		
@@ -296,8 +296,8 @@
 		BlockInfo dirBlock = renameRes.getDstBlock();
 		getBlockCache(dstDir.getFd()).put(CoreSubOperation.createKey(dstDir.getFd(), dstFile.getDirOffset()), dirBlock);		
 		
-		CoreSyncOperation syncOperationSrc = getSyncOperation(srcParent, srcFile, src);
-		CoreSyncOperation syncOperationDst = getSyncOperation(dstDir, dstFile, dst);
+		CoreSyncOperation syncOperationSrc = getSyncOperation(srcParent, srcFile, src, false);
+		CoreSyncOperation syncOperationDst = getSyncOperation(dstDir, dstFile, dst, true);
 		
 		blockCache.remove(srcFile.getFd());
 		
@@ -335,7 +335,7 @@
 		FileInfo fileInfo = fileRes.getFile();
 		FileInfo dirInfo = fileRes.getParent();
 		
-		CoreSyncOperation syncOperation = getSyncOperation(dirInfo, fileInfo, path);
+		CoreSyncOperation syncOperation = getSyncOperation(dirInfo, fileInfo, path, false);
 		
 		blockCache.remove(fileInfo.getFd());
 		
@@ -641,12 +641,12 @@
 		return mappedValue != null ? mappedValue : hostname;
 	}
 	
-	CoreSyncOperation getSyncOperation(FileInfo dirInfo, FileInfo fileInfo, String path) throws Exception{
+	CoreSyncOperation getSyncOperation(FileInfo dirInfo, FileInfo fileInfo, String path, boolean valid) throws Exception{
 		long adjustedCapacity = fileInfo.getDirOffset()*CrailConstants.DIRECTORY_RECORD + CrailConstants.DIRECTORY_RECORD;
 		dirInfo.setCapacity(Math.max(dirInfo.getCapacity(), adjustedCapacity));
 		CoreDirectory dirFile = new CoreDirectory(this, dirInfo, CrailUtils.getParent(path));
 		DirectoryOutputStream stream = dirFile.getDirectoryOutputStream();
-		DirectoryRecord record = new DirectoryRecord(true, path);
+		DirectoryRecord record = new DirectoryRecord(valid, path);
 		Future<CrailResult> future = stream.writeRecord(record, fileInfo.getDirOffset());
 		CoreSyncOperation syncOperation = new CoreSyncOperation(stream, future);		
 		return syncOperation;