*** empty log message ***
authorcharles <charles>
Wed, 20 Aug 2003 03:53:39 +0000 (03:53 +0000)
committercharles <charles>
Wed, 20 Aug 2003 03:53:39 +0000 (03:53 +0000)
Makefile
yaffs_fs.c
yaffs_guts.c
yaffsdev.proj

index 69ca8178443976c7d9855ab7932901b0f7d2f676..e748baa4e8af101a6ce3e5ad34603d8b97ec854e 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -12,7 +12,7 @@
 # it under the terms of the GNU General Public License version 2 as
 # published by the Free Software Foundation.
 #
-# $Id: Makefile,v 1.11 2003-05-20 22:30:35 charles Exp $
+# $Id: Makefile,v 1.12 2003-08-20 03:53:39 charles Exp $
 #
 
 ## Change or override  KERNELDIR to your kernel
index db59c239c0972529f4073b5d01809690b411d956..637f7fd4b2940c3589a3b9f46ca5db931a39746b 100644 (file)
@@ -28,7 +28,7 @@
  */
 
 
-const char *yaffs_fs_c_version = "$Id: yaffs_fs.c,v 1.27 2003-08-16 08:17:32 charles Exp $";
+const char *yaffs_fs_c_version = "$Id: yaffs_fs.c,v 1.28 2003-08-20 03:53:39 charles Exp $";
 extern const char *yaffs_guts_c_version;
 
 
@@ -523,7 +523,6 @@ static void yaffs_FillInodeFromObject(struct inode *inode, yaffs_Object *obj)
                inode->i_uid = obj->st_uid;
                inode->i_gid = obj->st_gid;
                inode->i_blksize = inode->i_sb->s_blocksize;
-               inode->i_blocks = 0;
 #if defined(CONFIG_KERNEL_2_5)
                inode->i_rdev = to_kdev_t(obj->st_rdev);
                inode->i_atime.tv_sec = (time_t)(obj->st_atime);
@@ -539,6 +538,8 @@ static void yaffs_FillInodeFromObject(struct inode *inode, yaffs_Object *obj)
                inode->i_ctime = obj->st_ctime;
 #endif
                inode->i_size = yaffs_GetObjectFileLength(obj);
+               inode->i_blocks = (inode->i_size + inode->i_blksize - 1) >> inode->i_sb->s_blocksize_bits;
+
                inode->i_nlink = yaffs_GetObjectLinkCount(obj);
                
                T(YAFFS_TRACE_OS,(KERN_DEBUG"yaffs_FillInode mode %x uid %d gid %d size %d count %d\n",
index 5cbd371a938ecafc39814e049f7ca0381eac1e78..7afb1406a444114a9081c1d66d5b6f4af7145389 100644 (file)
@@ -14,7 +14,7 @@
  */
  //yaffs_guts.c
 
-const char *yaffs_guts_c_version="$Id: yaffs_guts.c,v 1.27 2003-08-16 08:17:32 charles Exp $";
+const char *yaffs_guts_c_version="$Id: yaffs_guts.c,v 1.28 2003-08-20 03:53:39 charles Exp $";
 
 #include "yportenv.h"
 
@@ -782,11 +782,16 @@ static void yaffs_FreeTnode(yaffs_Device*dev, yaffs_Tnode *tn)
 static void yaffs_DeinitialiseTnodes(yaffs_Device*dev)
 {
        // Free the list of allocated tnodes
-       
+       yaffs_TnodeList *tmp;
+               
        while(dev->allocatedTnodeList)
        {
+               tmp =  dev->allocatedTnodeList->next;
+
                YFREE(dev->allocatedTnodeList->tnodes);
-               dev->allocatedTnodeList =  dev->allocatedTnodeList->next;
+               YFREE(dev->allocatedTnodeList);
+               dev->allocatedTnodeList = tmp;
+               
        }
        
        dev->freeTnodes = NULL;
@@ -1452,10 +1457,15 @@ static void yaffs_DeinitialiseObjects(yaffs_Device *dev)
 {
        // Free the list of allocated Objects
        
+       yaffs_ObjectList *tmp;
+       
        while( dev->allocatedObjectList)
        {
+               tmp =  dev->allocatedObjectList->next;
                YFREE(dev->allocatedObjectList->objects);
-               dev->allocatedObjectList =  dev->allocatedObjectList->next;
+               YFREE(dev->allocatedObjectList);
+               
+               dev->allocatedObjectList =  tmp;
        }
        
        dev->freeObjects = NULL;
index 28f3ae79b47f467b880b09d2e24900fb10805d8c..d93143da855a717b2eb41d9bb2ebc15985cd930c 100644 (file)
Binary files a/yaffsdev.proj and b/yaffsdev.proj differ