Bug 662666

Summary: Cannot find the extended attribute of #11 inode after remount
Product: Red Hat Enterprise Linux 6 Reporter: Debbie Johnson <dejohnso>
Component: kernelAssignee: Eric Sandeen <esandeen>
Status: CLOSED ERRATA QA Contact: Petr Beňas <pbenas>
Severity: high Docs Contact:
Priority: high    
Version: 6.0CC: cww, eguan, esandeen, lczerner, moshiro, ndoane, pbenas, plyons, pstehlik, rwheeler
Target Milestone: rcKeywords: ZStream
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: kernel-2.6.32-157.el6 Doc Type: Bug Fix
Doc Text:
Deleting the lost+found directory on a file system with inodes of size greater than 128 bytes and reusing inode 11 for a different file caused the extended attributes for inode 11 (which were set before a umount operation) to not be saved after a file system remount. As a result, the extended attributes were lost after the remount. With this update, inodes store their extended attributes under all circumstances.
Story Points: ---
Clone Of: Environment:
Last Closed: 2011-12-06 12:36:04 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Bug Depends On:    
Bug Blocks: 658636, 712413    
Attachments:
Description Flags
patch for RHEL 6 none

Description Debbie Johnson 2010-12-13 14:53:35 UTC
Created attachment 468399 [details]
patch for RHEL 6

Description of problem:

In ext3 filesystem, if following conditions 1., 2., 3. and 4. are satisfied,
we cannot find the extended attribute (EA) after remount.

Condition:
1. the inode size is over 128 bytes
2. "lost+found" whose inode number is 11 was removed
3. the #11 inode is created as a file.
4. the EA of #11 inode locates in-inode

This happens because of the following logic:
i_extra_isize (member of ext3_inode structure) is set to over 0 by ext3_new_inode()
when we create a file whose inode number is 11 after removing "lost+found".
Therefore setfattr creates the EA of #11 inode in-inode.
After remount, i_extra_isize of #11 inode is set to 0 by ext3_iget()
when we lookup the file, so getfattr tries to search the EA only out-inode.
However, the EA locates in-inode, so getfattr can't find the EA.

This problem is fixed in the upstream kernel. The patch is http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=beb37b85b0b727e68e16a39a1e5a2140f87fa201. 

Patch for RHEL6.0 is attached.

Comment 1 Ondrej Vasik 2010-12-13 15:14:37 UTC
Filesystem is just package with basic directory layout. It has nothing to do with filesystem. It's not the first time you have reported such issue against filesystem package (you did so in the case of https://bugzilla.redhat.com/show_bug.cgi?id=643390 and https://bugzilla.redhat.com/show_bug.cgi?id=645824 ) , please, try to remember that such issues should be reported against kernel package.

Comment 12 Aristeu Rozanski 2011-06-14 14:59:15 UTC
Patch(es) available on kernel-2.6.32-157.el6

Comment 16 Martin Prpič 2011-07-12 11:34:35 UTC
    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:
Deleting the lost+found directory on a file system with inodes of size greater than 128 bytes and reusing inode 11 for a different file caused the extended attributes for inode 11 (which were set before a umount operation) to not be saved after a file system remount. As a result, the extended attributes were lost after the remount. With this update, inodes store their extended attributes under all circumstances.

Comment 18 Petr Beňas 2011-07-25 07:09:42 UTC
Repdoruced in 2.6.32-156.el6 and verified in 2.6.32-157.el6.

Comment 19 errata-xmlrpc 2011-12-06 12:36:04 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

http://rhn.redhat.com/errata/RHSA-2011-1530.html