Bug 1373605

Summary: ustat() not implemented on aarch64, returns ENOSYS, xfsprogs fails to detect mounted fs
Product: Red Hat Enterprise Linux 7 Reporter: Eric Sandeen <esandeen>
Component: xfsprogsAssignee: Eric Sandeen <esandeen>
Status: CLOSED ERRATA QA Contact: Zorro Lang <zlang>
Severity: unspecified Docs Contact:
Priority: high    
Version: 7.3CC: eguan, lmiksik, swhiteho, zlang
Target Milestone: rc   
Target Release: ---   
Hardware: aarch64   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2016-11-04 06:24:54 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:

Description Eric Sandeen 2016-09-06 17:17:08 UTC
The ustat() sysetm call is not implemented on aarch64, but xfsprogs uses this to detect whether a filesystem is mounted.  We check for success to determine mounted state, but we do not test for failure, which until now meant only "this filesystem is not mounted."

That assumption fails now:

../libxfs/.libs/libxfs.a(linux.o): In function `platform_check_ismounted':
/root/sandeen/xfsprogs-dev/libxfs/linux.c:66: warning: ustat is not implemented and will always fail

And lo:

# xfs_metadump -o /dev/sda3 dump
# mount /dev/sda3 /mnt/scratch
# xfs_mdrestore dump /dev/sda3
# echo $?
0
#

i.e. the tools fail to detect a mounted filesystem, and happily write over it, which will cause corruption.

Comment 2 Eric Sandeen 2016-09-07 16:26:19 UTC
Need to request blocker on this one too - on aarch64 this could lead to filesystem corruption by operating on a mounted filesystem.  There is a patch upstream to fix it:

libxfs/linux.c: Replace use of ustat by stat

Comment 3 Zorro Lang 2016-09-08 02:50:12 UTC
(In reply to Eric Sandeen from comment #2)
> Need to request blocker on this one too - on aarch64 this could lead to
> filesystem corruption by operating on a mounted filesystem.  There is a
> patch upstream to fix it:

If we must merge this patch in RHEL-7.3, please hurry, xfsprogs errata need to be done in this month:)

Thanks,
Zorro

> 
> libxfs/linux.c: Replace use of ustat by stat

Comment 5 Eric Sandeen 2016-09-08 23:21:36 UTC
Merged upstream commit to use getmntent/stat instead of ustat.

Comment 9 errata-xmlrpc 2016-11-04 06:24:54 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.

https://rhn.redhat.com/errata/RHBA-2016-2431.html