patch-2.4.27 linux-2.4.27/fs/hfs/file_cap.c
Next file: linux-2.4.27/fs/hfs/file_hdr.c
Previous file: linux-2.4.27/fs/hfs/file.c
Back to the patch index
Back to the overall index
- Lines: 37
- Date:
2004-08-07 16:26:05.976401099 -0700
- Orig file:
linux-2.4.26/fs/hfs/file_cap.c
- Orig date:
2001-09-10 07:31:25.000000000 -0700
diff -urN linux-2.4.26/fs/hfs/file_cap.c linux-2.4.27/fs/hfs/file_cap.c
@@ -191,7 +191,7 @@
hfs_rwarg_t count, loff_t *ppos)
{
struct inode *inode = filp->f_dentry->d_inode;
- hfs_u32 pos;
+ hfs_u32 pos, last;
if (!S_ISREG(inode->i_mode)) {
hfs_warn("hfs_file_write: mode = %07o\n", inode->i_mode);
@@ -207,14 +207,14 @@
return 0;
}
- *ppos += count;
- if (*ppos > HFS_FORK_MAX) {
- *ppos = HFS_FORK_MAX;
+ last = pos + count;
+ if (last > HFS_FORK_MAX) {
+ last = HFS_FORK_MAX;
count = HFS_FORK_MAX - pos;
}
- if (*ppos > inode->i_size)
- inode->i_size = *ppos;
+ if (last > inode->i_size)
+ inode->i_size = last;
/* Only deal with the part we store in memory */
if (pos < sizeof(struct hfs_cap_info)) {
@@ -272,6 +272,7 @@
}
}
+ *ppos = last;
inode->i_mtime = inode->i_ctime = CURRENT_TIME;
mark_inode_dirty(inode);
return count;
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)