Bug 851158

Summary: [xfs/xfsdump] The core.projid_hi is lost in dump/restore process
Product: Red Hat Enterprise Linux 7 Reporter: Boris Ranto <branto>
Component: xfsdumpAssignee: Eric Sandeen <esandeen>
Status: CLOSED CURRENTRELEASE QA Contact: BaseOS QE - Apps <qe-baseos-apps>
Severity: high Docs Contact:
Priority: unspecified    
Version: 7.0CC: dchinner
Target Milestone: rc   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
: 860454 (view as bug list) Environment:
Last Closed: 2013-02-25 13:49:37 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 860454    
Attachments:
Description Flags
The test script I used to find this. none

Description Boris Ranto 2012-08-23 11:42:04 UTC
Created attachment 606518 [details]
The test script I used to find this.

Description of problem:
When a projid32bit enabled xfs fs is dumped and then restored to a different location (again with the projid32bit functionality enabled), the core.projid_hi value is not copied to the new location resulting in incorrect 16bit project quota id.

Version-Release number of selected component (if applicable):
kernel-3.3.0-0.20.el7.x86_64
xfsprogs-3.1.8-4.el7.x86_64
xfsdump-3.1.0-2.el7.x86_64

How reproducible:
Always

Steps to Reproduce:
1. Create 32bit project quota enabled xfs filesystem
2. Dump the filesystem
3. Restore the filesystem, check the 32bit project quota id
  
Actual results:
The core.projid_hi is not copied resulting in 16bit project quota ids.

Expected results:
The dump and restore preserve the 32bit project quota ids.

Additional info:
The fact that the core.projid_hi is thrown away in dump/restore cycle was found by the examination of the original and restored fs with xfs_db. You just need to know the inode number of the project quota file:
xfs_db -c "inode <ino>" -c "print core.projid_lo" -c "print core.projid_hi" <device>
You can notice that the core.projid_hi is 0 in the restored filesystem.

Comment 1 Eric Sandeen 2012-08-27 18:50:55 UTC
Patch for this sent upstream, pending review:

http://oss.sgi.com/archives/xfs/2012-08/msg00391.html

Comment 4 Boris Ranto 2013-02-25 13:49:37 UTC
This is actually fixed in current rhel7 xfsdump/xfsprogs/kernel packages.