Bug 1373605 - ustat() not implemented on aarch64, returns ENOSYS, xfsprogs fails to detect mounted fs
Summary: ustat() not implemented on aarch64, returns ENOSYS, xfsprogs fails to detect ...
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Red Hat Enterprise Linux 7
Classification: Red Hat
Component: xfsprogs
Version: 7.3
Hardware: aarch64
OS: Unspecified
high
unspecified
Target Milestone: rc
: ---
Assignee: Eric Sandeen
QA Contact: Zorro Lang
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2016-09-06 17:17 UTC by Eric Sandeen
Modified: 2016-11-04 06:24 UTC (History)
4 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2016-11-04 06:24:54 UTC
Target Upstream Version:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Red Hat Product Errata RHBA-2016:2431 0 normal SHIPPED_LIVE xfsprogs bug fix and enhancement update 2016-11-03 14:00:51 UTC

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


Note You need to log in before you can comment on or make changes to this bug.