diff mbox

avoid struct fsxattr redefinition

Message ID 20160518174054.GA27634@tarantula.localdomain (mailing list archive)
State New, archived
Headers show

Commit Message

Jeffrey Bastian May 18, 2016, 5:40 p.m. UTC
Linux kernel v4.5 defines 'struct fsxattr' in linux/fs.h [0] but it's
still defined in xfs/linux.h as a backup [1].  If the files are included
in the wrong order, the compiler will complain with a redefinition
error.  This patch moves linux/fs.h (and linux/magic.h) before the xfs
headers for the t_immutable.c and fsstress.c tests.

[0] https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=334e580a6f97e
[1] http://oss.sgi.com/cgi-bin/gitweb.cgi?p=xfs/cmds/xfsprogs.git;a=blob;f=include/linux.h;h=cc0f70ceed72#l183

Signed-off-by: Jeffrey Bastian <jbastian@redhat.com>
---
 ltp/fsstress.c    | 2 +-
 src/t_immutable.c | 4 ++--
 2 files changed, 3 insertions(+), 3 deletions(-)

Comments

Jeffrey Bastian May 18, 2016, 10:18 p.m. UTC | #1
On Wed, May 18, 2016 at 12:40:54PM -0500, Jeffrey Bastian wrote:
> Linux kernel v4.5 defines 'struct fsxattr' in linux/fs.h [0] but it's
> still defined in xfs/linux.h as a backup [1].  If the files are included
> in the wrong order, the compiler will complain with a redefinition
> error.  This patch moves linux/fs.h (and linux/magic.h) before the xfs
> headers for the t_immutable.c and fsstress.c tests.

This patch _may_ not be necessary; this is also being discussed on the
xfs list and including linux/fs.h in xfsprogs' include/linux.h solves
the problem, i.e., the include order won't matter.  On the other hand,
it seems to be best-practice (if not a hard-and-fast rule) to include
fs.h first, so maybe the patch should be applied to xfstests anyway?

http://oss.sgi.com/archives/xfs/2016-05/msg00347.html
diff mbox

Patch

diff --git a/ltp/fsstress.c b/ltp/fsstress.c
index 1e6c913294ae..7e7cf608f5f3 100644
--- a/ltp/fsstress.c
+++ b/ltp/fsstress.c
@@ -16,6 +16,7 @@ 
  * Inc.,  51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
  */
 
+#include <linux/fs.h>
 #include "global.h"
 
 #ifdef HAVE_ATTR_XATTR_H
@@ -34,7 +35,6 @@ 
 #include <sys/prctl.h>
 #endif
 
-#include <linux/fs.h>
 #ifndef FS_IOC_GETFLAGS
 #define FS_IOC_GETFLAGS                 _IOR('f', 1, long)
 #endif
diff --git a/src/t_immutable.c b/src/t_immutable.c
index 87ffc75f2d02..7fd9e5dd9625 100644
--- a/src/t_immutable.c
+++ b/src/t_immutable.c
@@ -38,11 +38,11 @@ 
 #include <libgen.h>
 #include <sys/acl.h>
 #include <attr/xattr.h>
+#include <linux/fs.h>
+#include <linux/magic.h>
 #include <xfs/xfs.h>
 #include <xfs/handle.h>
 #include <xfs/jdm.h>
-#include <linux/fs.h>
-#include <linux/magic.h>
 
 #ifndef XFS_SUPER_MAGIC
 #define XFS_SUPER_MAGIC 0x58465342