Red Hat Bugzilla – Bug 648408
Do not mix FMODE_ and O_ flags with break_lease() and may_open() [rhel-6.0.z]
Last modified: 2013-10-18 04:41:00 EDT
This bug has been copied from bug #642677 and has been proposed to be backported to 6.0 z-stream (EUS).
in kernel-2.6.32-71.9.1.el6
reproduced on rhel6-rc4 got the same error as per https://bugzilla.redhat.com/show_bug.cgi?id=642677#c0 verified on kernel-2.6.32-71.13.1.el6 on i386 and x86_64, result passed. server: # ./delegation /mnt Step1: Get READ DELEGATION Get Success:(/mnt/file) Step2: Get a READ lock Get READ lock success. <== Let the program pending here, goto STEP2 Step3: Release the READ lock Release READ lock success. Step4: Close file client: # ./lock /mnttest/file Step1: Open file with O_RDWR Open Success:(/mnttest/file) Step2: Get a WRITE lock ERROR: Get WRITE lock fail Step4: Close file
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-2011-0007.html
Technical note added. If any revisions are required, please edit the "Technical Notes" field accordingly. All revisions will be proofread by the Engineering Content Services team. New Contents: Due to a mix-up between FMODE_ and O_ flags, an NFSv4 client could get a WRITE lock on a file that another NFSv4 client already had a READ lock on. As a result, data could be corrupted. With this update, FMODE_ and O_ flags are properly handled and getting a WRITE lock fails in the aforementioned case.