[PATCH] nfsd: Add quotes to client info 'callback address'

Mark Grimes posted 1 patch 1 year, 4 months ago
fs/nfsd/nfs4state.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
[PATCH] nfsd: Add quotes to client info 'callback address'
Posted by Mark Grimes 1 year, 4 months ago
The 'callback address' in client_info_show is output without quotes
causing yaml parsers to fail on processing IPv6 addresses.
Adding quotes to 'callback address' also matches that used by
the 'address' field.

Signed-off-by: Mark Grimes <mark.grimes@ixsystems.com>
---
 fs/nfsd/nfs4state.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/fs/nfsd/nfs4state.c b/fs/nfsd/nfs4state.c
index a20c2c9d7d45..0061ae253f4d 100644
--- a/fs/nfsd/nfs4state.c
+++ b/fs/nfsd/nfs4state.c
@@ -2692,7 +2692,7 @@ static int client_info_show(struct seq_file *m, void *v)
 			clp->cl_nii_time.tv_sec, clp->cl_nii_time.tv_nsec);
 	}
 	seq_printf(m, "callback state: %s\n", cb_state2str(clp->cl_cb_state));
-	seq_printf(m, "callback address: %pISpc\n", &clp->cl_cb_conn.cb_addr);
+	seq_printf(m, "callback address: \"%pISpc\"\n", &clp->cl_cb_conn.cb_addr);
 	seq_printf(m, "admin-revoked states: %d\n",
 		   atomic_read(&clp->cl_admin_revoked));
 	drop_client(clp);
-- 
2.39.2
Re: [PATCH] nfsd: Add quotes to client info 'callback address'
Posted by Jeff Layton 1 year, 4 months ago
On Tue, 2024-08-06 at 18:58 -0700, Mark Grimes wrote:
> The 'callback address' in client_info_show is output without quotes
> causing yaml parsers to fail on processing IPv6 addresses.
> Adding quotes to 'callback address' also matches that used by
> the 'address' field.
> 
> Signed-off-by: Mark Grimes <mark.grimes@ixsystems.com>
> ---
>  fs/nfsd/nfs4state.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/fs/nfsd/nfs4state.c b/fs/nfsd/nfs4state.c
> index a20c2c9d7d45..0061ae253f4d 100644
> --- a/fs/nfsd/nfs4state.c
> +++ b/fs/nfsd/nfs4state.c
> @@ -2692,7 +2692,7 @@ static int client_info_show(struct seq_file *m, void *v)
>  			clp->cl_nii_time.tv_sec, clp->cl_nii_time.tv_nsec);
>  	}
>  	seq_printf(m, "callback state: %s\n", cb_state2str(clp->cl_cb_state));
> -	seq_printf(m, "callback address: %pISpc\n", &clp->cl_cb_conn.cb_addr);
> +	seq_printf(m, "callback address: \"%pISpc\"\n", &clp->cl_cb_conn.cb_addr);
>  	seq_printf(m, "admin-revoked states: %d\n",
>  		   atomic_read(&clp->cl_admin_revoked));
>  	drop_client(clp);

I agree with Neil's assessment here:

Reviewed-by: Jeff Layton <jlayton@kernel.org>
Re: [PATCH] nfsd: Add quotes to client info 'callback address'
Posted by NeilBrown 1 year, 4 months ago
On Wed, 07 Aug 2024, Mark Grimes wrote:
> The 'callback address' in client_info_show is output without quotes
> causing yaml parsers to fail on processing IPv6 addresses.
> Adding quotes to 'callback address' also matches that used by
> the 'address' field.

Reviewed-by: NeilBrown <neilb@suse.de>

It is conceivable that existing code already handles the existing format
and could break, but it seems unlikely.  nfs-utils has code to parse
this file but it ignores "callback address" and doesn't care about the
content of "address" just including it in logs.

Consistency with "address" is a strong argument - strong enough to risk
the unlikely breakage.

Thanks,
NeilBrown


> 
> Signed-off-by: Mark Grimes <mark.grimes@ixsystems.com>
> ---
>  fs/nfsd/nfs4state.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/fs/nfsd/nfs4state.c b/fs/nfsd/nfs4state.c
> index a20c2c9d7d45..0061ae253f4d 100644
> --- a/fs/nfsd/nfs4state.c
> +++ b/fs/nfsd/nfs4state.c
> @@ -2692,7 +2692,7 @@ static int client_info_show(struct seq_file *m, void *v)
>  			clp->cl_nii_time.tv_sec, clp->cl_nii_time.tv_nsec);
>  	}
>  	seq_printf(m, "callback state: %s\n", cb_state2str(clp->cl_cb_state));
> -	seq_printf(m, "callback address: %pISpc\n", &clp->cl_cb_conn.cb_addr);
> +	seq_printf(m, "callback address: \"%pISpc\"\n", &clp->cl_cb_conn.cb_addr);
>  	seq_printf(m, "admin-revoked states: %d\n",
>  		   atomic_read(&clp->cl_admin_revoked));
>  	drop_client(clp);
> -- 
> 2.39.2
> 
>