Hi Linus,

Currently when a zero byte write is done on a regular file
opened with O_APPEND the file offset is set to the end of the
file. For POSIX compliant behaviour this shouldn't happen.

The attached patch fixes this.

Chris.

--- mm/filemap.c.orig   Mon Nov 20 14:05:38 2000
+++ mm/filemap.c        Mon Nov 20 18:11:43 2000
@@ -2458,12 +2458,15 @@
                }
        }
 
-       status  = 0;
-       if (count) {
-               remove_suid(inode);
-               inode->i_ctime = inode->i_mtime = CURRENT_TIME;
-               mark_inode_dirty(inode);
+       if (count == 0) {
+               err = 0;
+               goto out;
        }
+
+       status  = 0;
+       remove_suid(inode);
+       inode->i_ctime = inode->i_mtime = CURRENT_TIME;
+       mark_inode_dirty(inode);
 
        while (count) {
                unsigned long bytes, index, offset;
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/

Reply via email to