Description of problem: nfs_updatepage() function contains following lines: if (nfs_write_pageuptodate(page, inode) && inode->i_flock == NULL && !(file->f_mode & O_SYNC)) { ^^^^^^ This is a typo, O_SYNC is stored in filp->f_flags. 2.6.18-128.1.1 kernel is affected. Mainstream has this issue already fixed: Original git commit: 4b5621f6b127bce9218998c187bd25bf7f9fc371 NFS: Fix an f_mode/f_flags confusion in fs/nfs/write.c Trond Myklebust [Mon, 25 Feb 2008 23:56:29 +0000 (15:56 -0800)] O_SYNC is stored in filp->f_flags. Thanks to Al Viro for pointing out the bug. Signed-off-by: Trond Myklebust <Trond.Myklebust> ================================================================== --- ./fs/nfs/write.c.flags 2009-03-13 10:27:38.000000000 +0300 +++ ./fs/nfs/write.c 2009-03-13 10:35:18.000000000 +0300 @@ -875,7 +875,7 @@ int nfs_updatepage(struct file *file, st */ if (nfs_write_pageuptodate(page, inode) && inode->i_flock == NULL && - !(file->f_mode & O_SYNC)) { + !(file->f_flags & O_SYNC)) { loff_t end_offs = i_size_read(inode) - 1; unsigned long end_index = end_offs >> PAGE_CACHE_SHIFT; Please, fix. Thank you. -- Best regards, Konstantin Khorenko, PVC/OpenVZ developer, Parallels
Ouch -- good catch. Let's see if we can't get this fixed in 5.4.
This request was evaluated by Red Hat Product Management for inclusion in a Red Hat Enterprise Linux maintenance release. Product Management has requested further review of this request by Red Hat Engineering, for potential inclusion in a Red Hat Enterprise Linux Update release for currently deployed products. This request is not yet committed for inclusion in an Update release.
in kernel-2.6.18-149.el5 You can download this test kernel from http://people.redhat.com/dzickus/el5 Please do NOT transition this bugzilla state to VERIFIED until our QE team has sent specific instructions indicating when to do so. However feel free to provide a comment indicating that this fix has been verified.
An advisory has been issued which should help the problem described in this bug report. This report is therefore being closed with a resolution of ERRATA. For more information on therefore solution and/or where to find the updated files, please follow the link below. You may reopen this bug report if the solution does not work for you. http://rhn.redhat.com/errata/RHSA-2009-1243.html