*** empty log message ***
[yaffs/.git] / yaffs_fs.c
index db59c239c0972529f4073b5d01809690b411d956..080d875d1d52c2ef3df44f66c4b86c15569d15a1 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.29 2003-08-30 05:15:49 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 + 511) >> 9;
+
                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",
@@ -679,7 +680,7 @@ static ssize_t yaffs_file_write(struct file *f, const char *buf, size_t n, loff_
                if(ipos > inode->i_size)
                {
                        inode->i_size = ipos;
-                       inode->i_blocks = (ipos + inode->i_blksize - 1)/ inode->i_blksize;
+                       inode->i_blocks = (ipos + 511)>>9;
                        
                        T(YAFFS_TRACE_OS,(KERN_DEBUG"yaffs_file_write size updated to %d bytes, %d blocks\n",ipos,(int)(inode->i_blocks)));
                }