Re: [PATCH v2 2/2] lockd: change the proc_handler for nsm_use_hostnames from int to u8

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Added Olaf Kirch the originator of nsm_use_hostnames to the cc.

Jia He <hejianet@xxxxxxxxx> writes:

> nsm_use_hostnames is a module paramter and it will be exported to sysctl
> procfs. This is to let user sometimes change it from userspace. But the
> minimal unit for sysctl procfs read/write it sizeof(int).
> In big endian system, the converting from/to  bool to/from int will cause
> error for proc items.
>
> This patch use a new proc_handler proc_dou8vec.
>
> Suggested-by: Pan Xinhui <xinhui@xxxxxxxxxxxxxxxxxx>
> Signed-off-by: Jia He <hejianet@xxxxxxxxx>
> ---
>  fs/lockd/svc.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/fs/lockd/svc.c b/fs/lockd/svc.c
> index fc4084e..7a4ad9d 100644
> --- a/fs/lockd/svc.c
> +++ b/fs/lockd/svc.c
> @@ -561,7 +561,7 @@ static struct ctl_table nlm_sysctls[] = {
>  		.data		= &nsm_use_hostnames,
>  		.maxlen		= sizeof(int),
>  		.mode		= 0644,
> -		.proc_handler	= proc_dointvec,
> +		.proc_handler	= proc_dou8vec,

proc_dou8vec does not exist in my tree so I don't know what it does,
but if it's name is accurate this change is wrong.  As the maxlen has
not changed so you are implying that it is a vector of u8 and
sizeof(int) long.

Further this is wrong if nsm_use_hostnames is a bool as this sysctl
can be assigned values that are out of bounds for a bool.

Furthermore this is wrong in that a bool is not necessarily a u8, the
size of bool is very architecture dependent.  So for either
nsm_use_hostnames needs to become an int, a proc_dobool helper needs
to be added, or the sysctl needs to be removed entirely as module
parameters can be edited at runtime through sysfs.

But I completely agree that this decade old bug needs to be fixed.

Eric


>  	},
>  	{
>  		.procname	= "nsm_local_state",
--
To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux Filesystem Development]     [Linux USB Development]     [Linux Media Development]     [Video for Linux]     [Linux NILFS]     [Linux Audio Users]     [Yosemite Info]     [Linux SCSI]

  Powered by Linux