Red Hat Bugzilla – Bug 684705
missed unlock_page() in gfs2_write_begin()
Last modified: 2011-05-19 08:44:02 EDT
Created attachment 484118 [details] adding missed unlock_page() Description of problem: gfs2_write_begin() calls grab_cache_page_write_begin() that returns *locked* page. Correspondent error-handling path lacks for unlock_page() call: > out: > if (error == 0) > return 0; > > page_cache_release(page); Version-Release number of selected component (if applicable): 2.6.32-71.18.2.el6 How reproducible: The whole system hangs if gfs2_unstuff_dinode() called from gfs2_write_begin() failed for some reason. Additional info: Attached trivial patch solving the problem.
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.
Maxim, many thanks for the patch. I've got it queued up for all upstream and RHEL now. If you are a customer and require the fix before the next scheduled release, please contact our support team and give them the bz number and they should be able to help you.
Patch(es) available on kernel-2.6.32-125.el6
Verified patch is applied to kernel-2.6.32-130.el6.
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-0542.html