X-Git-Url: http://www.aleph1.co.uk/gitweb/?a=blobdiff_plain;f=yaffs_fs.c;h=080d875d1d52c2ef3df44f66c4b86c15569d15a1;hb=1ceac6b8722fe56ebe1b29e6e0dfc0664cbdd2c6;hp=db59c239c0972529f4073b5d01809690b411d956;hpb=2f1fbd5011ef15fa3d1c95dc24dcc656a9aa9b5f;p=yaffs%2F.git diff --git a/yaffs_fs.c b/yaffs_fs.c index db59c23..080d875 100644 --- a/yaffs_fs.c +++ b/yaffs_fs.c @@ -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))); }