Bug 364741
Summary: | GFS2: gfs2_quota doesn't work unless lock table specified | ||||||||
---|---|---|---|---|---|---|---|---|---|
Product: | Red Hat Enterprise Linux 5 | Reporter: | Robert Peterson <rpeterso> | ||||||
Component: | gfs2-utils | Assignee: | Chris Feist <cfeist> | ||||||
Status: | CLOSED ERRATA | QA Contact: | GFS Bugs <gfs-bugs> | ||||||
Severity: | medium | Docs Contact: | |||||||
Priority: | medium | ||||||||
Version: | 5.1 | CC: | adas | ||||||
Target Milestone: | --- | ||||||||
Target Release: | --- | ||||||||
Hardware: | All | ||||||||
OS: | Linux | ||||||||
Whiteboard: | |||||||||
Fixed In Version: | RHBA-2008-0350 | Doc Type: | Bug Fix | ||||||
Doc Text: | Story Points: | --- | |||||||
Clone Of: | Environment: | ||||||||
Last Closed: | 2008-05-21 17:20:26 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: | |||||||||
Attachments: |
|
Description
Robert Peterson
2007-11-02 21:35:54 UTC
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. Created attachment 251611 [details]
Proposed patch to fix the problem
This is my first attempt at a patch. Although the patch file is more
than 1000 lines, it's really not that much of a code change. Basically,
the following is changed (in the order they appear in the patch):
1. Most of the gfs2 utils defined their own versions of IO functions.
Functions die, do_lseek, do_read, and do_write were standardized and
moved to a central place, libgfs2.h. I made an exception for the
lseek function in gfs2_fsck, which needs to not die on illegal seeks,
since the file system might be corrupt. The fsck version of that
function was renamed.
2. All user space tools were standardized to use these common functions.
3. The same common IO functions referenced the sbd structure in libgfs2's
buf.c, rather than the file handle, so I changed buf.c to use the
standard functions.
4. All the functions from gfs2_tool's util.c were moved to libgfs2's
misc.c which already contained similar functions (e.g. debugfs vs
sysfs). So gfs2_tool's util.c is no longer needed.
5. The functions inside gfs2_quota that were referencing the files in
gfs2's sysfs directory were changed to use the simpler common
functions that were moved from gfs2_tool to libgfs2. These are the
functions that figure out the proper directory within sysfs, even
if the device does not match the vfs s_id and the lock table is NULL.
So this is the most important part.
Created attachment 253041 [details]
Patch to fix the problem (try #2)
Found and fixed a problem. The previous version wasn't using the "user"
variable like it should have, in check.c's function set_list().
I tested all the affected tools on roth-01. Patch reviewed by Abhi. I checked it in to the HEAD and RHEL5 branches of CVS for inclusion in RHEL5.2. Changing status to Modified. 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 the 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/RHBA-2008-0350.html |