[nfs-utils,1/1] mountd: Add check for 'struct file_handle'
diff mbox series

Message ID 20191117221506.32084-1-petr.vorel@gmail.com
State New
Headers show
Series
  • [nfs-utils,1/1] mountd: Add check for 'struct file_handle'
Related show

Commit Message

Petr Vorel Nov. 17, 2019, 10:15 p.m. UTC
From: Maxime Hadjinlian <maxime.hadjinlian@gmail.com>

The code to check if name_to_handle_at() is implemented generates only a
warning but with some toolchain it doesn't fail to link (the function must be
implemented somewhere).
However the "struct file_handle" type is not available.

So, this patch adds a check for this struct.

Patch taken from buildroot distribution.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
[ pvorel: rebased from nfs-utils-1-3-4 ]
Signed-off-by: Petr Vorel <petr.vorel@gmail.com>
Signed-off-by: Maxime Hadjinlian <maxime.hadjinlian@gmail.com>
---
 configure.ac         | 1 +
 utils/mountd/cache.c | 2 +-
 2 files changed, 2 insertions(+), 1 deletion(-)

Comments

Steve Dickson Nov. 18, 2019, 2:02 p.m. UTC | #1
On 11/17/19 5:15 PM, Petr Vorel wrote:
> From: Maxime Hadjinlian <maxime.hadjinlian@gmail.com>
> 
> The code to check if name_to_handle_at() is implemented generates only a
> warning but with some toolchain it doesn't fail to link (the function must be
> implemented somewhere).
> However the "struct file_handle" type is not available.
> 
> So, this patch adds a check for this struct.
> 
> Patch taken from buildroot distribution.
> 
> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
> [ pvorel: rebased from nfs-utils-1-3-4 ]
> Signed-off-by: Petr Vorel <petr.vorel@gmail.com>
> Signed-off-by: Maxime Hadjinlian <maxime.hadjinlian@gmail.com>
Committed... (tag: nfs-utils-2-4-3-rc1)

steved.
> ---
>  configure.ac         | 1 +
>  utils/mountd/cache.c | 2 +-
>  2 files changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/configure.ac b/configure.ac
> index 9ba9d4b5..949ff9fc 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -510,6 +510,7 @@ AC_TYPE_PID_T
>  AC_TYPE_SIZE_T
>  AC_HEADER_TIME
>  AC_STRUCT_TM
> +AC_CHECK_TYPES([struct file_handle])
>  
>  dnl *************************************************************
>  dnl Check for functions
> diff --git a/utils/mountd/cache.c b/utils/mountd/cache.c
> index 3861f84a..31e9507d 100644
> --- a/utils/mountd/cache.c
> +++ b/utils/mountd/cache.c
> @@ -446,7 +446,7 @@ static int same_path(char *child, char *parent, int len)
>  	if (count_slashes(p) != count_slashes(parent))
>  		return 0;
>  
> -#if HAVE_NAME_TO_HANDLE_AT
> +#if defined(HAVE_NAME_TO_HANDLE_AT) && defined(HAVE_STRUCT_FILE_HANDLE)
>  	struct {
>  		struct file_handle fh;
>  		unsigned char handle[128];
>

Patch
diff mbox series

diff --git a/configure.ac b/configure.ac
index 9ba9d4b5..949ff9fc 100644
--- a/configure.ac
+++ b/configure.ac
@@ -510,6 +510,7 @@  AC_TYPE_PID_T
 AC_TYPE_SIZE_T
 AC_HEADER_TIME
 AC_STRUCT_TM
+AC_CHECK_TYPES([struct file_handle])
 
 dnl *************************************************************
 dnl Check for functions
diff --git a/utils/mountd/cache.c b/utils/mountd/cache.c
index 3861f84a..31e9507d 100644
--- a/utils/mountd/cache.c
+++ b/utils/mountd/cache.c
@@ -446,7 +446,7 @@  static int same_path(char *child, char *parent, int len)
 	if (count_slashes(p) != count_slashes(parent))
 		return 0;
 
-#if HAVE_NAME_TO_HANDLE_AT
+#if defined(HAVE_NAME_TO_HANDLE_AT) && defined(HAVE_STRUCT_FILE_HANDLE)
 	struct {
 		struct file_handle fh;
 		unsigned char handle[128];