فهرست منبع

fix efs write problem

git-svn-id: https://rt-thread.googlecode.com/svn/trunk@401 bbd45198-f89e-11dd-88c7-29a3b14d5316
qiuyiuestc 15 سال پیش
والد
کامیت
5b743baab1
1فایلهای تغییر یافته به همراه5 افزوده شده و 3 حذف شده
  1. 5 3
      filesystem/dfs/filesystems/efsl/src/fs/vfat/file.c

+ 5 - 3
filesystem/dfs/filesystems/efsl/src/fs/vfat/file.c

@@ -174,12 +174,14 @@ euint32 file_fwrite(File* file,euint32 offset,euint32 size,euint8* buf)
 	euint16 btr;
 	euint8 *tbuf;
 
-	if(!file_getAttr(file,FILE_STATUS_OPEN) || !file_getAttr(file,FILE_STATUS_WRITE))return(0);
+	if((!file_getAttr(file,FILE_STATUS_OPEN)) || (!file_getAttr(file,FILE_STATUS_WRITE)))return(0);
 	
 	if(offset>file->FileSize){
 		offset=file->FileSize;
 	}
-	
+
+	dfs_log(DFS_DEBUG_INFO, ("offset:%d", offset));
+
 	need_cluster = file_requiredCluster(file,offset,size);
 	
 	if(need_cluster){
@@ -513,8 +515,8 @@ esint8 file_fopen(File* file,FileSystem *fs,eint8* filename,eint32 mode)
 					fs_setFirstClusterInDirEntry(&(file->DirEntry),sec);
 					fat_setNextClusterAddress(fs,sec,fat_giveEocMarker(fs));
 					file_initFile(file,fs,&loc);
-					file_setpos(file,file->FileSize);
 				}
+				file_setpos(file,file->FileSize);
 			}
 			else
 			{