xfs
[Top] [All Lists]

Re: [PATCH] xfs: Fix xfs_attr_leafblock definition

To: Jan Kara <jack@xxxxxxxx>
Subject: Re: [PATCH] xfs: Fix xfs_attr_leafblock definition
From: Mark Tinguely <tinguely@xxxxxxx>
Date: Thu, 13 Aug 2015 08:17:17 -0500
Cc: xfs@xxxxxxxxxxx
Delivered-to: xfs@xxxxxxxxxxx
In-reply-to: <1439458000-28395-1-git-send-email-jack@xxxxxxxx>
References: <1439458000-28395-1-git-send-email-jack@xxxxxxxx>
User-agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:9.0) Gecko/20120122 Thunderbird/9.0
On 08/13/15 04:26, Jan Kara wrote:
struct xfs_attr_leafblock contains 'entries' array which is declared
with size 1 altough it can in fact contain much more entries. Since this
array is followed by further struct members, gcc (at least in version
4.8.3) thinks that the array has the fixed size of 1 element and thus
may optimize away all accesses beyond the end of array resulting in
non-working code. This problem was only observed with userspace code in
xfsprogs, however it's better to be safe in kernel as well and have
matching kernel and xfsprogs definitions.

Signed-off-by: Jan Kara<jack@xxxxxxxx>
---

I hit this bug in SLES12 and RHEL7 XFS kernel code. It is the gcc 4.8's new loop optimization routine. A person can bypass it with the option:
    -fno-aggressive-loop-optimizations
but this fixes the source of the problem.

Acked-by: Mark Tinguely <tinguely@xxxxxxx>

<Prev in Thread] Current Thread [Next in Thread>