Bug 490181
| Summary: | NFS: an f_mode/f_flags confusion in fs/nfs/write.c | ||
|---|---|---|---|
| Product: | Red Hat Enterprise Linux 5 | Reporter: | Konstantin Khorenko <khorenko> |
| Component: | kernel | Assignee: | Jeff Layton <jlayton> |
| Status: | CLOSED ERRATA | QA Contact: | Red Hat Kernel QE team <kernel-qe> |
| Severity: | low | Docs Contact: | |
| Priority: | low | ||
| Version: | 5.3 | CC: | dzickus, emcnabb, jiali, mgahagan, staubach, steved |
| Target Milestone: | rc | ||
| Target Release: | --- | ||
| Hardware: | All | ||
| OS: | Linux | ||
| Whiteboard: | |||
| Fixed In Version: | Doc Type: | Bug Fix | |
| Doc Text: | Story Points: | --- | |
| Clone Of: | Environment: | ||
| Last Closed: | 2009-09-02 08:58:38 UTC | Type: | --- |
| Regression: | --- | Mount Type: | --- |
| Documentation: | --- | CRM: | |
| Verified Versions: | Category: | --- | |
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
| Cloudforms Team: | --- | Target Upstream Version: | |
| Embargoed: | |||
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 |
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