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