public inbox for fstests@vger.kernel.org
 help / color / mirror / Atom feed
From: Eryu Guan <eguan@redhat.com>
To: Gwendal Grignou <gwendal@chromium.org>
Cc: fstests@vger.kernel.org
Subject: Re: [PATCH v4] Code to allow cros-compilation on chromeOS
Date: Tue, 25 Apr 2017 21:09:44 +0800	[thread overview]
Message-ID: <20170425130944.GX26397@eguan.usersys.redhat.com> (raw)
In-Reply-To: <20170419233348.33617-1-gwendal@chromium.org>

[-- Attachment #1: Type: text/plain, Size: 3624 bytes --]

On Wed, Apr 19, 2017 at 04:33:48PM -0700, Gwendal Grignou wrote:
> - Request LIBTOOL to be used
> - Set topbuildir based on a Makefile variable to call libtool
> - Use /usr/local instead of /var for xfstest final location
> - Move macros from aclocal.m4 to acinclude.m4, aclocal.m4 is autogenerated.
> - Use autoconf variables @prefix@, @exec_prefix@.
> 
> The regular way of compiling xfstests - make - remains.
> But it now runs autoreconf and libtoolize -i to produce a valid
> configure.
> Verified with 'make install --dry-run' that files are installed at the
> same place.
> Verified compiling in chromeOS chroot works as well.
> 
> Signed-off-by: Gwendal Grignou <gwendal@chromium.org>
> ---
> 
> Changes in v2:
> Removal of instal-sh, use of autoreconf
> 
> Changes in v3:
> Use of @exec_prefix@ variable, unify installation location.
> 
> Changes in v4:
> Add --install option to autoreconf so that aclocal is called with -I m4.
> Keep using AC_CONFIG_MACRO_DIR when autoconf is called directly.
> With --install option and AC_CONFIG_MACRO_DIR undefined verify that configure
> still works.

Thanks a lot for the update! v4 works for me too with RHEL6, RHEL7 and
Fedora 25 hosts.

If all the following changes look OK to you and there're no new comments
from other reviewers on the list, I'm going to push this patch to
upstream this week. So please shout out loud if anyone has any complains :)
(new patch attached)

First, I updated the patch a bit to resolve the merge conflicts with
commit b34b378 src/open_by_handle: program to exercise
open_by_handle_at() syscall, added open_by_handle_at detection in
acinclude.m4

> 
>  Makefile             |   7 +-
>  acinclude.m4         |  30 ++++++
>  aclocal.m4           |  50 ----------
>  configure.ac         |   3 +-
>  include/builddefs.in |   9 +-
>  install-sh           | 259 ---------------------------------------------------
>  6 files changed, 41 insertions(+), 317 deletions(-)
>  create mode 100644 acinclude.m4
>  delete mode 100644 aclocal.m4
>  delete mode 100755 install-sh
> 
> diff --git a/Makefile b/Makefile
> index 30d8747d..d41750ab 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -76,12 +76,13 @@ clean:  # if configure hasn't run, nothing to clean
>  endif
>  
>  configure: configure.ac
> -	autoheader
> -	autoconf
> +	autoreconf --include=m4
> +	libtoolize -i

Second. This creates some new untracked files, I'd like to add them to
.gitignore too and remove them by running "make realclean", so I made
the following changes.

--- a/.gitignore
+++ b/.gitignore
@@ -9,10 +9,23 @@
 /results
 
 # autoconf generated files
+/aclocal.m4
 /autom4te.cache
 /configure
+/config.guess
 /config.log
 /config.status
+/config.sub
+/m4/libtool.m4
+/m4/ltoptions.m4
+/m4/ltsugar.m4
+/m4/ltversion.m4
+/m4/lt~obsolete.m4
+
+# libtool
+/libtool
+/install-sh
+/ltmain.sh

 # build system
 /include/builddefs
diff --git a/Makefile b/Makefile
index 30d8747..ebf5c03 100644
--- a/Makefile
+++ b/Makefile
@@ -41,10 +41,13 @@ endif

 SRCTAR = $(PKG_NAME)-$(PKG_VERSION).tar.gz

-CONFIGURE = configure include/builddefs include/config.h
+CONFIGURE = configure include/builddefs include/config.h \
+           aclocal.m4 config.guess config.sub install-sh ltmain.sh \
+           m4/libtool.m4 m4/ltoptions.m4 m4/ltsugar.m4 m4/ltversion.m4 \
+           m4/lt~obsolete.m4
 LSRCFILES = configure configure.ac aclocal.m4 README VERSION
 LDIRT = config.log .ltdep .dep config.status config.cache confdefs.h \
-       conftest* check.log check.time
+       conftest* check.log check.time libtool

 ifeq ($(HAVE_BUILDDEFS), yes)
 LDIRT += $(SRCTAR)


Thanks again!

Eryu

[-- Attachment #2: 0001-build-Code-to-allow-cros-compilation-on-chromeOS.patch --]
[-- Type: text/plain, Size: 14005 bytes --]

>From ee2e2e29533220c8e40c667c53a3302394e087fb Mon Sep 17 00:00:00 2001
From: Gwendal Grignou <gwendal@chromium.org>
Date: Wed, 19 Apr 2017 16:33:48 -0700
Subject: [PATCH] build: Code to allow cros-compilation on chromeOS

- Request LIBTOOL to be used
- Set topbuildir based on a Makefile variable to call libtool
- Use /usr/local instead of /var for xfstest final location
- Move macros from aclocal.m4 to acinclude.m4, aclocal.m4 is autogenerated.
- Use autoconf variables @prefix@, @exec_prefix@.

The regular way of compiling xfstests - make - remains.
But it now runs autoreconf and libtoolize -i to produce a valid
configure.
Verified with 'make install --dry-run' that files are installed at the
same place.
Verified compiling in chromeOS chroot works as well.

[eguan: resolve merge conflicts and update .gitignore and remove
generated files by realclean]

Signed-off-by: Gwendal Grignou <gwendal@chromium.org>
Reviewed-by: Eryu Guan <eguan@redhat.com>
Signed-off-by: Eryu Guan <eguan@redhat.com>
---
 .gitignore           |  13 +++
 Makefile             |  14 ++-
 acinclude.m4         |  45 +++++++++
 aclocal.m4           |  65 -------------
 configure.ac         |   3 +-
 include/builddefs.in |   9 +-
 install-sh           | 259 ---------------------------------------------------
 7 files changed, 74 insertions(+), 334 deletions(-)
 create mode 100644 acinclude.m4
 delete mode 100644 aclocal.m4
 delete mode 100755 install-sh

diff --git a/.gitignore b/.gitignore
index ded4a61..c049bef 100644
--- a/.gitignore
+++ b/.gitignore
@@ -9,10 +9,23 @@
 /results
 
 # autoconf generated files
+/aclocal.m4
 /autom4te.cache
 /configure
+/config.guess
 /config.log
 /config.status
+/config.sub
+/m4/libtool.m4
+/m4/ltoptions.m4
+/m4/ltsugar.m4
+/m4/ltversion.m4
+/m4/lt~obsolete.m4
+
+# libtool
+/libtool
+/install-sh
+/ltmain.sh
 
 # build system
 /include/builddefs
diff --git a/Makefile b/Makefile
index 30d8747..ebf5c03 100644
--- a/Makefile
+++ b/Makefile
@@ -41,10 +41,13 @@ endif
 
 SRCTAR = $(PKG_NAME)-$(PKG_VERSION).tar.gz
 
-CONFIGURE = configure include/builddefs include/config.h
+CONFIGURE = configure include/builddefs include/config.h \
+	    aclocal.m4 config.guess config.sub install-sh ltmain.sh \
+	    m4/libtool.m4 m4/ltoptions.m4 m4/ltsugar.m4 m4/ltversion.m4 \
+	    m4/lt~obsolete.m4
 LSRCFILES = configure configure.ac aclocal.m4 README VERSION
 LDIRT = config.log .ltdep .dep config.status config.cache confdefs.h \
-	conftest* check.log check.time
+	conftest* check.log check.time libtool
 
 ifeq ($(HAVE_BUILDDEFS), yes)
 LDIRT += $(SRCTAR)
@@ -76,12 +79,13 @@ clean:  # if configure hasn't run, nothing to clean
 endif
 
 configure: configure.ac
-	autoheader
-	autoconf
+	autoreconf --include=m4
+	libtoolize -i
 
 include/builddefs include/config.h: configure
 	./configure \
-                --libexecdir=/usr/lib
+                --libexecdir=/usr/lib \
+                --exec_prefix=/var/lib
 
 aclocal.m4::
 	aclocal --acdir=`pwd`/m4 --output=$@
diff --git a/acinclude.m4 b/acinclude.m4
new file mode 100644
index 0000000..a605c01
--- /dev/null
+++ b/acinclude.m4
@@ -0,0 +1,45 @@
+dnl Copyright (C) 2016 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+AC_DEFUN([AC_PACKAGE_WANT_LINUX_FIEMAP_H],
+  [ AC_CHECK_HEADERS([linux/fiemap.h], [ have_fiemap=true ], [ have_fiemap=false ])
+    AC_SUBST(have_fiemap)
+  ])
+
+AC_DEFUN([AC_PACKAGE_WANT_LINUX_PRCTL_H],
+  [ AC_CHECK_HEADERS([sys/prctl.h], [ have_prctl=true ], [ have_prctl=false ])
+    AC_SUBST(have_prctl)
+  ])
+
+AC_DEFUN([AC_PACKAGE_WANT_LINUX_FS_H],
+  [ AC_CHECK_HEADER([linux/fs.h])
+  ])
+
+AC_DEFUN([AC_PACKAGE_WANT_FALLOCATE],
+  [ AC_MSG_CHECKING([for fallocate])
+    AC_TRY_LINK([
+#define _GNU_SOURCE
+#define _FILE_OFFSET_BITS 64
+#include <fcntl.h>
+#include <linux/falloc.h> ],
+      [ fallocate(0, 0, 0, 0); ],
+      [ have_fallocate=true; AC_MSG_RESULT(yes) ],
+      [ have_fallocate=false; AC_MSG_RESULT(no) ])
+    AC_SUBST(have_fallocate)
+  ])
+
+AC_DEFUN([AC_PACKAGE_WANT_OPEN_BY_HANDLE_AT],
+  [ AC_MSG_CHECKING([for open_by_handle_at])
+    AC_TRY_LINK([
+#define _GNU_SOURCE
+#include <fcntl.h>
+      ],
+      [
+          struct file_handle fh;
+          open_by_handle_at(0, &fh, 0);
+      ],
+      [ have_open_by_handle_at=true; AC_MSG_RESULT(yes) ],
+      [ have_open_by_handle_at=false; AC_MSG_RESULT(no) ])
+    AC_SUBST(have_open_by_handle_at)
+  ])
diff --git a/aclocal.m4 b/aclocal.m4
deleted file mode 100644
index 829fa10..0000000
--- a/aclocal.m4
+++ /dev/null
@@ -1,65 +0,0 @@
-# generated automatically by aclocal 1.11 -*- Autoconf -*-
-
-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
-# 2005, 2006, 2007, 2008, 2009  Free Software Foundation, Inc.
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-AC_DEFUN([AC_PACKAGE_WANT_LINUX_FIEMAP_H],
-  [ AC_CHECK_HEADERS([linux/fiemap.h], [ have_fiemap=true ], [ have_fiemap=false ])
-    AC_SUBST(have_fiemap)
-  ])
-
-AC_DEFUN([AC_PACKAGE_WANT_LINUX_PRCTL_H],
-  [ AC_CHECK_HEADERS([sys/prctl.h], [ have_prctl=true ], [ have_prctl=false ])
-    AC_SUBST(have_prctl)
-  ])
-
-AC_DEFUN([AC_PACKAGE_WANT_LINUX_FS_H],
-  [ AC_CHECK_HEADER([linux/fs.h])
-  ])
-
-AC_DEFUN([AC_PACKAGE_WANT_FALLOCATE],
-  [ AC_MSG_CHECKING([for fallocate])
-    AC_TRY_LINK([
-#define _GNU_SOURCE
-#define _FILE_OFFSET_BITS 64
-#include <fcntl.h>
-#include <linux/falloc.h> ],
-      [ fallocate(0, 0, 0, 0); ],
-      [ have_fallocate=true; AC_MSG_RESULT(yes) ],
-      [ have_fallocate=false; AC_MSG_RESULT(no) ])
-    AC_SUBST(have_fallocate)
-  ])
-
-AC_DEFUN([AC_PACKAGE_WANT_OPEN_BY_HANDLE_AT],
-  [ AC_MSG_CHECKING([for open_by_handle_at])
-    AC_TRY_LINK([
-#define _GNU_SOURCE
-#include <fcntl.h>
-      ],
-      [
-          struct file_handle fh;
-          open_by_handle_at(0, &fh, 0);
-      ],
-      [ have_open_by_handle_at=true; AC_MSG_RESULT(yes) ],
-      [ have_open_by_handle_at=false; AC_MSG_RESULT(no) ])
-    AC_SUBST(have_open_by_handle_at)
-  ])
-m4_include([m4/multilib.m4])
-m4_include([m4/package_acldev.m4])
-m4_include([m4/package_aiodev.m4])
-m4_include([m4/package_attrdev.m4])
-m4_include([m4/package_dmapidev.m4])
-m4_include([m4/package_gdbmdev.m4])
-m4_include([m4/package_globals.m4])
-m4_include([m4/package_ssldev.m4])
-m4_include([m4/package_utilies.m4])
-m4_include([m4/package_uuiddev.m4])
-m4_include([m4/package_xfslibs.m4])
diff --git a/configure.ac b/configure.ac
index 1285bf4..5ddaadc 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,5 +1,6 @@
 AC_INIT([xfstests], [1.1.1])
-AC_PREREQ(2.50)
+AC_CONFIG_MACRO_DIR([m4])
+LT_INIT
 AC_CONFIG_SRCDIR([src/xfsctl.c])
 AC_PACKAGE_GLOBALS(xfstests)
 AC_PACKAGE_UTILITIES(xfstests)
diff --git a/include/builddefs.in b/include/builddefs.in
index 2725037..952a3e0 100644
--- a/include/builddefs.in
+++ b/include/builddefs.in
@@ -7,6 +7,8 @@
 ifndef _BUILDDEFS_INCLUDED_
 _BUILDDEFS_INCLUDED_ = 1
 
+top_builddir=$(TOPDIR)
+
 DEBUG = @debug_build@
 OPTIMIZER = @opt_build@
 MALLOCLIB = @malloc_lib@
@@ -24,6 +26,7 @@ LIBUUID = @libuuid@
 LIBHANDLE = @libhdl@
 LIBDM = @libdm@
 LIBTEST = $(TOPDIR)/lib/libtest.la
+prefix = @prefix@
 
 PKG_NAME        = @pkg_name@
 PKG_USER        = @pkg_user@
@@ -32,10 +35,8 @@ PKG_RELEASE     = @pkg_release@
 PKG_VERSION     = @pkg_version@
 PKG_PLATFORM    = @pkg_platform@
 PKG_DISTRIBUTION= @pkg_distribution@
-PKG_SBIN_DIR    = @sbindir@
-# A bit of a hack; by rights only state should probably go here
-# But for now ...
-PKG_LIB_DIR     = /var/lib/@pkg_name@
+PKG_LIB_DIR     = $(DESTDIR)@exec_prefix@/@pkg_name@
+
 
 CC              = @cc@
 AWK             = @awk@
diff --git a/install-sh b/install-sh
deleted file mode 100755
index 58e7b58..0000000
--- a/install-sh
+++ /dev/null
@@ -1,259 +0,0 @@
-#! /bin/bash
-#
-# Copyright (c) 2000-2001 Silicon Graphics, Inc.  All Rights Reserved.
-#
-# This program is free software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License as
-# published by the Free Software Foundation.
-#
-# This program is distributed in the hope that it would be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write the Free Software Foundation,
-# Inc.,  51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
-#
-#
-# This script emulates bsd install and also recognises
-# two environment variables, with the following semantics :-
-#
-# $DIST_MANIFEST - if set, the name of the file to append manifest
-#                  information in the following format:
-#                  File     :  f mode owner group src target
-#                  Directory:  d mode owner group target
-#                  Symlink  :  l linkval target
-#
-# $DIST_ROOT     - if set, prepend to target
-#
-# The sematics of all combinations of these two variables
-# are as follows:
-#
-# $DIST_MANIFEST?  $DIST_ROOT? |   Copy?  Append Manifest?
-# -----------------------------+--------------------------
-#       not set       not set  |    yes        no
-#       not set       set      |    yes        no
-#       set           not set  |    no         yes
-#       set           set      |    yes        yes
-#
-_usage() {
-    echo "Usage: $prog [-o owner] [-g group] [-m mode] -d directory"
-    echo "or     $prog [-D] [-o owner] [-g group] [-m mode] file directory/file"
-    echo "or     $prog [-o owner] [-g group] [-m mode] file [file ...] directory"
-    echo "or     $prog -S file target  (creates \"target\" symlink)"
-    echo ""
-    echo "The \$DIST_MANIFEST and \$DIST_ROOT environment variables affect the"
-    echo "behaviour of this command - see comments in the script."
-    echo "The -D flag is only available for the second usage, and causes"
-    echo "the target directory to be created before installing the file."
-    echo ""
-    exit 1
-}
-
-_chown ()
-{
-    _st=255
-    if [ $# -eq 3 ] ; then
-	chown $1:$2 $3
-	_st=$?
-	if [ $_st -ne 0 ] ; then
-	    if [ $REAL_UID != '0' ] ; then
-		if [ ! -f $DIST_ROOT/.chown.quite ] ; then
-		    echo '==============================================='
-		    echo Ownership of files under ${DIST_ROOT:-/}
-		    echo cannot be changed
-		    echo '==============================================='
-		    if [ -n "$DIST_ROOT" ] ; then
-			touch $DIST_ROOT/.chown.quite
-		    fi
-		fi
-	       _st=0
-	    fi     
-	fi
-    fi
-
-    return $_st
-}
-
-
-_manifest ()
-{ 
-    echo $* | sed -e 's/\/\//\//g' >>${DIST_MANIFEST:-/dev/null}
-}
-
-prog=`basename $0`
-HERE=`pwd`
-dflag=false
-Dflag=false
-Sflag=false
-DIRMODE=755
-FILEMODE=644
-OWNER=`id -u`
-GROUP=`id -g`
-REAL_UID=$OWNER
-
-# default is to install and don't append manifest
-INSTALL=true
-MANIFEST=:
-
-: ${DIST_ROOT:=${DESTDIR}}
-
-[ -n "$DIST_MANIFEST" -a -z "$DIST_ROOT" ] && INSTALL=false
-[ -n "$DIST_MANIFEST" ] && MANIFEST="_manifest"
-
-[ $# -eq 0 ] && _usage
-
-if $INSTALL
-then
-    CP=cp; LN=ln; MKDIR=mkdir; CHMOD=chmod; CHOWN=_chown
-else
-    CP=true; LN=true; MKDIR=true; CHMOD=true; CHOWN=true
-fi
-
-[ -n "$DIST_ROOT" -a $REAL_UID -ne 0 ] && CHOWN=true
-
-while getopts "Dcm:d:S:o:g:" c $*
-do
-   case $c in
-   c)
-	;;
-   g)
-	GROUP=$OPTARG
-	;;
-   o)
-	OWNER=$OPTARG
-	;;
-   m)
-	DIRMODE=`expr $OPTARG`
-	FILEMODE=$DIRMODE
-	;;
-   D) 
-	Dflag=true
-	;;
-   S) 
-	symlink=$OPTARG
-	Sflag=true
-	;;
-   d) 
-	dir=$DIST_ROOT/$OPTARG
-	dflag=true
-	;;
-   *)
-   	_usage
-	;;
-   esac
-done
-
-shift `expr $OPTIND - 1`
-
-status=0
-if $dflag
-then
-    #
-    # first usage
-    #
-    $MKDIR -p $dir 
-    status=$?
-    if [ $status -eq 0 ]
-    then
-	$CHMOD $DIRMODE $dir
-	status=$?
-    fi
-    if [ $status -eq 0 ]
-    then
-	$CHOWN $OWNER $GROUP $dir
-	status=$?
-    fi
-    $MANIFEST d $DIRMODE $OWNER $GROUP ${dir#$DIST_ROOT}
-elif $Sflag
-then
-    #
-    # fourth usage (symlink)
-    #
-    if [ $# -ne 1 ]
-    then
-    	_usage
-    else
-    	target=$DIST_ROOT/$1
-    fi
-    $LN -s -f $symlink $target
-    status=$?
-    $MANIFEST l $symlink ${target#$DIST_ROOT} 
-else
-    list=""
-    dir=""
-    if [ $# -eq 2 ]
-    then
-	#
-	# second usage
-	#
-	f=$1
-	dir=$DIST_ROOT/$2
-	if $Dflag
-	then
-	    mkdir -p `dirname $dir`
-	fi
-	$CP $f $dir
-	status=$?
-	if [ $status -eq 0 ]
-	then 
-	    if [ -f $dir/$f ]
-	    then
-		$CHMOD $FILEMODE $dir/$f
-		status=$?
-		if [ $status -eq 0 ]
-		then
-		    $CHOWN $OWNER $GROUP $dir/$f
-		    status=$?
-		fi
-		$MANIFEST f $FILEMODE $OWNER $GROUP $HERE/$f ${dir#$DIST_ROOT}/$f
-	    else
-		$CHMOD $FILEMODE $dir
-		status=$?
-		if [ $status -eq 0 ]
-		then
-		    $CHOWN $OWNER $GROUP $dir
-		    status=$?
-		fi
-		$MANIFEST f $FILEMODE $OWNER $GROUP $HERE/$dir ${dir#$DIST_ROOT}
-	    fi
-	fi
-    else
-	#
-	# third usage
-	#
-	n=1
-	while [ $# -gt 0 ]
-	do
-	    if [ $# -gt 1 ]
-	    then
-		list="$list $1"
-	    else
-		dir=$DIST_ROOT/$1
-	    fi
-	    shift
-	done
-
-	# echo DIR=$dir list=\"$list\"
-	for f in $list
-	do
-	    $CP $f $dir
-	    status=$?
-	    if [ $status -eq 0 ]
-	    then
-		$CHMOD $FILEMODE $dir/$f
-		status=$?
-		if [ $status -eq 0 ]
-		then
-		    $CHOWN $OWNER $GROUP $dir/$f
-		    status=$?
-		fi
-		$MANIFEST f $FILEMODE $OWNER $GROUP $HERE/$f ${dir#$DIST_ROOT}/$f
-	    fi
-	    [ $status -ne 0 ] && break
-	done
-    fi
-fi
-
-exit $status
-- 
1.8.3.1


  reply	other threads:[~2017-04-25 13:09 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <CAMHSBOXjP4QOGmM2HxygY0r+ML93XyEmLEfwGz6KvS0S0sjuCA@mail.gmail.com>
2017-03-24 23:48 ` [PATCH v2] Code to allow cros-compilation on chromeOS Gwendal Grignou
2017-03-27 11:35   ` Eryu Guan
2017-04-04 17:37     ` [PATCH v3] " Gwendal Grignou
2017-04-06 11:18       ` Eryu Guan
2017-04-06 23:26         ` Gwendal Grignou
2017-04-07  4:12           ` Eryu Guan
2017-04-07 21:41             ` Gwendal Grignou
2017-04-10  9:25               ` Eryu Guan
2017-04-19 21:59                 ` Gwendal Grignou
2017-04-19 23:33                   ` [PATCH v4] " Gwendal Grignou
2017-04-25 13:09                     ` Eryu Guan [this message]
2017-05-08 10:19                       ` Xiao Yang
2017-05-08 10:50                         ` Eryu Guan
2017-05-08 11:19                           ` Xiao Yang
2017-05-08 21:22                             ` Gwendal Grignou
2017-05-09  1:37                               ` Xiao Yang
2017-05-09  7:12                           ` Xiao Yang
2017-05-12  6:04                             ` Xiao Yang
2017-05-12  8:12                               ` Eryu Guan
2017-04-28 16:27                     ` [PATCH v5] " Gwendal Grignou
2017-04-28 16:58                       ` Gwendal Grignou

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20170425130944.GX26397@eguan.usersys.redhat.com \
    --to=eguan@redhat.com \
    --cc=fstests@vger.kernel.org \
    --cc=gwendal@chromium.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox