* [PATCH 0/2] Fix /proc/sys/fs/nfs/nsm_use_hostnames on big endian machines @ 2021-08-03 10:59 Thomas Huth 2021-08-03 10:59 ` [PATCH 1/2] sysctl: introduce new proc handler proc_dobool Thomas Huth ` (4 more replies) 0 siblings, 5 replies; 11+ messages in thread From: Thomas Huth @ 2021-08-03 10:59 UTC (permalink / raw) To: linux-kernel, linux-fsdevel, linux-nfs Cc: J. Bruce Fields, Chuck Lever, Trond Myklebust, Anna Schumaker, Luis Chamberlain, Kees Cook, Iurii Zaikin, linux-s390, Jia He, Pan Xinhui There is an endianess problem with /proc/sys/fs/nfs/nsm_use_hostnames (which can e.g. be seen on an s390x host) : # modprobe lockd nsm_use_hostnames=1 # cat /proc/sys/fs/nfs/nsm_use_hostnames 16777216 The nsm_use_hostnames variable is declared as "bool" which is required for the correct type for the module parameter. However, this does not work correctly with the entry in the /proc filesystem since this currently requires "int". Jia He already provided patches for this problem a couple of years ago, but apparently they felt through the cracks and never got merged. So here's a rebased version to finally fix this issue. Buglink: https://bugzilla.redhat.com/show_bug.cgi?id=1764075 Jia He (2): sysctl: introduce new proc handler proc_dobool lockd: change the proc_handler for nsm_use_hostnames fs/lockd/svc.c | 2 +- include/linux/sysctl.h | 2 ++ kernel/sysctl.c | 42 ++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 45 insertions(+), 1 deletion(-) -- 2.27.0 ^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH 1/2] sysctl: introduce new proc handler proc_dobool 2021-08-03 10:59 [PATCH 0/2] Fix /proc/sys/fs/nfs/nsm_use_hostnames on big endian machines Thomas Huth @ 2021-08-03 10:59 ` Thomas Huth 2021-08-18 9:38 ` Thomas Huth 2021-09-16 22:03 ` Kees Cook 2021-08-03 10:59 ` [PATCH 2/2] lockd: change the proc_handler for nsm_use_hostnames Thomas Huth ` (3 subsequent siblings) 4 siblings, 2 replies; 11+ messages in thread From: Thomas Huth @ 2021-08-03 10:59 UTC (permalink / raw) To: linux-kernel, linux-fsdevel, linux-nfs Cc: J. Bruce Fields, Chuck Lever, Trond Myklebust, Anna Schumaker, Luis Chamberlain, Kees Cook, Iurii Zaikin, linux-s390, Jia He, Pan Xinhui From: Jia He <hejianet@gmail.com> This is to let bool variable could be correctly displayed in big/little endian sysctl procfs. sizeof(bool) is arch dependent, proc_dobool should work in all arches. Suggested-by: Pan Xinhui <xinhui@linux.vnet.ibm.com> Signed-off-by: Jia He <hejianet@gmail.com> [thuth: rebased the patch to the current kernel version] Signed-off-by: Thomas Huth <thuth@redhat.com> --- include/linux/sysctl.h | 2 ++ kernel/sysctl.c | 42 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 44 insertions(+) diff --git a/include/linux/sysctl.h b/include/linux/sysctl.h index d99ca99837de..1fa2b69c6fc3 100644 --- a/include/linux/sysctl.h +++ b/include/linux/sysctl.h @@ -48,6 +48,8 @@ typedef int proc_handler(struct ctl_table *ctl, int write, void *buffer, size_t *lenp, loff_t *ppos); int proc_dostring(struct ctl_table *, int, void *, size_t *, loff_t *); +int proc_dobool(struct ctl_table *table, int write, void *buffer, + size_t *lenp, loff_t *ppos); int proc_dointvec(struct ctl_table *, int, void *, size_t *, loff_t *); int proc_douintvec(struct ctl_table *, int, void *, size_t *, loff_t *); int proc_dointvec_minmax(struct ctl_table *, int, void *, size_t *, loff_t *); diff --git a/kernel/sysctl.c b/kernel/sysctl.c index 272f4a272f8c..25e49b4d8049 100644 --- a/kernel/sysctl.c +++ b/kernel/sysctl.c @@ -536,6 +536,21 @@ static void proc_put_char(void **buf, size_t *size, char c) } } +static int do_proc_dobool_conv(bool *negp, unsigned long *lvalp, + int *valp, + int write, void *data) +{ + if (write) { + *(bool *)valp = *lvalp; + } else { + int val = *(bool *)valp; + + *lvalp = (unsigned long)val; + *negp = false; + } + return 0; +} + static int do_proc_dointvec_conv(bool *negp, unsigned long *lvalp, int *valp, int write, void *data) @@ -798,6 +813,26 @@ static int do_proc_douintvec(struct ctl_table *table, int write, buffer, lenp, ppos, conv, data); } +/** + * proc_dobool - read/write a bool + * @table: the sysctl table + * @write: %TRUE if this is a write to the sysctl file + * @buffer: the user buffer + * @lenp: the size of the user buffer + * @ppos: file position + * + * Reads/writes up to table->maxlen/sizeof(unsigned int) integer + * values from/to the user buffer, treated as an ASCII string. + * + * Returns 0 on success. + */ +int proc_dobool(struct ctl_table *table, int write, void *buffer, + size_t *lenp, loff_t *ppos) +{ + return do_proc_dointvec(table, write, buffer, lenp, ppos, + do_proc_dobool_conv, NULL); +} + /** * proc_dointvec - read a vector of integers * @table: the sysctl table @@ -1630,6 +1665,12 @@ int proc_dostring(struct ctl_table *table, int write, return -ENOSYS; } +int proc_dobool(struct ctl_table *table, int write, + void *buffer, size_t *lenp, loff_t *ppos) +{ + return -ENOSYS; +} + int proc_dointvec(struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { @@ -3425,6 +3466,7 @@ int __init sysctl_init(void) * No sense putting this after each symbol definition, twice, * exception granted :-) */ +EXPORT_SYMBOL(proc_dobool); EXPORT_SYMBOL(proc_dointvec); EXPORT_SYMBOL(proc_douintvec); EXPORT_SYMBOL(proc_dointvec_jiffies); -- 2.27.0 ^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: [PATCH 1/2] sysctl: introduce new proc handler proc_dobool 2021-08-03 10:59 ` [PATCH 1/2] sysctl: introduce new proc handler proc_dobool Thomas Huth @ 2021-08-18 9:38 ` Thomas Huth 2021-09-16 5:16 ` Thomas Huth 2021-09-16 22:03 ` Kees Cook 1 sibling, 1 reply; 11+ messages in thread From: Thomas Huth @ 2021-08-18 9:38 UTC (permalink / raw) To: linux-kernel, linux-fsdevel, Luis Chamberlain, Kees Cook, Iurii Zaikin Cc: J. Bruce Fields, Chuck Lever, linux-s390, Jia He On 03/08/2021 12.59, Thomas Huth wrote: > From: Jia He <hejianet@gmail.com> > > This is to let bool variable could be correctly displayed in > big/little endian sysctl procfs. sizeof(bool) is arch dependent, > proc_dobool should work in all arches. > > Suggested-by: Pan Xinhui <xinhui@linux.vnet.ibm.com> > Signed-off-by: Jia He <hejianet@gmail.com> > [thuth: rebased the patch to the current kernel version] > Signed-off-by: Thomas Huth <thuth@redhat.com> > --- > include/linux/sysctl.h | 2 ++ > kernel/sysctl.c | 42 ++++++++++++++++++++++++++++++++++++++++++ > 2 files changed, 44 insertions(+) > > diff --git a/include/linux/sysctl.h b/include/linux/sysctl.h > index d99ca99837de..1fa2b69c6fc3 100644 > --- a/include/linux/sysctl.h > +++ b/include/linux/sysctl.h > @@ -48,6 +48,8 @@ typedef int proc_handler(struct ctl_table *ctl, int write, void *buffer, > size_t *lenp, loff_t *ppos); > > int proc_dostring(struct ctl_table *, int, void *, size_t *, loff_t *); > +int proc_dobool(struct ctl_table *table, int write, void *buffer, > + size_t *lenp, loff_t *ppos); > int proc_dointvec(struct ctl_table *, int, void *, size_t *, loff_t *); > int proc_douintvec(struct ctl_table *, int, void *, size_t *, loff_t *); > int proc_dointvec_minmax(struct ctl_table *, int, void *, size_t *, loff_t *); > diff --git a/kernel/sysctl.c b/kernel/sysctl.c > index 272f4a272f8c..25e49b4d8049 100644 > --- a/kernel/sysctl.c > +++ b/kernel/sysctl.c > @@ -536,6 +536,21 @@ static void proc_put_char(void **buf, size_t *size, char c) > } > } > > +static int do_proc_dobool_conv(bool *negp, unsigned long *lvalp, > + int *valp, > + int write, void *data) > +{ > + if (write) { > + *(bool *)valp = *lvalp; > + } else { > + int val = *(bool *)valp; > + > + *lvalp = (unsigned long)val; > + *negp = false; > + } > + return 0; > +} > + > static int do_proc_dointvec_conv(bool *negp, unsigned long *lvalp, > int *valp, > int write, void *data) > @@ -798,6 +813,26 @@ static int do_proc_douintvec(struct ctl_table *table, int write, > buffer, lenp, ppos, conv, data); > } > > +/** > + * proc_dobool - read/write a bool > + * @table: the sysctl table > + * @write: %TRUE if this is a write to the sysctl file > + * @buffer: the user buffer > + * @lenp: the size of the user buffer > + * @ppos: file position > + * > + * Reads/writes up to table->maxlen/sizeof(unsigned int) integer > + * values from/to the user buffer, treated as an ASCII string. > + * > + * Returns 0 on success. > + */ > +int proc_dobool(struct ctl_table *table, int write, void *buffer, > + size_t *lenp, loff_t *ppos) > +{ > + return do_proc_dointvec(table, write, buffer, lenp, ppos, > + do_proc_dobool_conv, NULL); > +} > + > /** > * proc_dointvec - read a vector of integers > * @table: the sysctl table > @@ -1630,6 +1665,12 @@ int proc_dostring(struct ctl_table *table, int write, > return -ENOSYS; > } > > +int proc_dobool(struct ctl_table *table, int write, > + void *buffer, size_t *lenp, loff_t *ppos) > +{ > + return -ENOSYS; > +} > + > int proc_dointvec(struct ctl_table *table, int write, > void *buffer, size_t *lenp, loff_t *ppos) > { > @@ -3425,6 +3466,7 @@ int __init sysctl_init(void) > * No sense putting this after each symbol definition, twice, > * exception granted :-) > */ > +EXPORT_SYMBOL(proc_dobool); > EXPORT_SYMBOL(proc_dointvec); > EXPORT_SYMBOL(proc_douintvec); > EXPORT_SYMBOL(proc_dointvec_jiffies); > Friendly ping! Luis, Kees, Iurii, could you please have a look and provide an Ack if this looks ok to you? Thanks, Thomas ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH 1/2] sysctl: introduce new proc handler proc_dobool 2021-08-18 9:38 ` Thomas Huth @ 2021-09-16 5:16 ` Thomas Huth 0 siblings, 0 replies; 11+ messages in thread From: Thomas Huth @ 2021-09-16 5:16 UTC (permalink / raw) To: linux-kernel, linux-fsdevel, Luis Chamberlain, Kees Cook, Iurii Zaikin Cc: J. Bruce Fields, Chuck Lever, linux-s390, Jia He On 18/08/2021 11.38, Thomas Huth wrote: > On 03/08/2021 12.59, Thomas Huth wrote: >> From: Jia He <hejianet@gmail.com> >> >> This is to let bool variable could be correctly displayed in >> big/little endian sysctl procfs. sizeof(bool) is arch dependent, >> proc_dobool should work in all arches. >> >> Suggested-by: Pan Xinhui <xinhui@linux.vnet.ibm.com> >> Signed-off-by: Jia He <hejianet@gmail.com> >> [thuth: rebased the patch to the current kernel version] >> Signed-off-by: Thomas Huth <thuth@redhat.com> >> --- >> include/linux/sysctl.h | 2 ++ >> kernel/sysctl.c | 42 ++++++++++++++++++++++++++++++++++++++++++ >> 2 files changed, 44 insertions(+) >> >> diff --git a/include/linux/sysctl.h b/include/linux/sysctl.h >> index d99ca99837de..1fa2b69c6fc3 100644 >> --- a/include/linux/sysctl.h >> +++ b/include/linux/sysctl.h >> @@ -48,6 +48,8 @@ typedef int proc_handler(struct ctl_table *ctl, int >> write, void *buffer, >> size_t *lenp, loff_t *ppos); >> int proc_dostring(struct ctl_table *, int, void *, size_t *, loff_t *); >> +int proc_dobool(struct ctl_table *table, int write, void *buffer, >> + size_t *lenp, loff_t *ppos); >> int proc_dointvec(struct ctl_table *, int, void *, size_t *, loff_t *); >> int proc_douintvec(struct ctl_table *, int, void *, size_t *, loff_t *); >> int proc_dointvec_minmax(struct ctl_table *, int, void *, size_t *, >> loff_t *); >> diff --git a/kernel/sysctl.c b/kernel/sysctl.c >> index 272f4a272f8c..25e49b4d8049 100644 >> --- a/kernel/sysctl.c >> +++ b/kernel/sysctl.c >> @@ -536,6 +536,21 @@ static void proc_put_char(void **buf, size_t *size, >> char c) >> } >> } >> +static int do_proc_dobool_conv(bool *negp, unsigned long *lvalp, >> + int *valp, >> + int write, void *data) >> +{ >> + if (write) { >> + *(bool *)valp = *lvalp; >> + } else { >> + int val = *(bool *)valp; >> + >> + *lvalp = (unsigned long)val; >> + *negp = false; >> + } >> + return 0; >> +} >> + >> static int do_proc_dointvec_conv(bool *negp, unsigned long *lvalp, >> int *valp, >> int write, void *data) >> @@ -798,6 +813,26 @@ static int do_proc_douintvec(struct ctl_table *table, >> int write, >> buffer, lenp, ppos, conv, data); >> } >> +/** >> + * proc_dobool - read/write a bool >> + * @table: the sysctl table >> + * @write: %TRUE if this is a write to the sysctl file >> + * @buffer: the user buffer >> + * @lenp: the size of the user buffer >> + * @ppos: file position >> + * >> + * Reads/writes up to table->maxlen/sizeof(unsigned int) integer >> + * values from/to the user buffer, treated as an ASCII string. >> + * >> + * Returns 0 on success. >> + */ >> +int proc_dobool(struct ctl_table *table, int write, void *buffer, >> + size_t *lenp, loff_t *ppos) >> +{ >> + return do_proc_dointvec(table, write, buffer, lenp, ppos, >> + do_proc_dobool_conv, NULL); >> +} >> + >> /** >> * proc_dointvec - read a vector of integers >> * @table: the sysctl table >> @@ -1630,6 +1665,12 @@ int proc_dostring(struct ctl_table *table, int write, >> return -ENOSYS; >> } >> +int proc_dobool(struct ctl_table *table, int write, >> + void *buffer, size_t *lenp, loff_t *ppos) >> +{ >> + return -ENOSYS; >> +} >> + >> int proc_dointvec(struct ctl_table *table, int write, >> void *buffer, size_t *lenp, loff_t *ppos) >> { >> @@ -3425,6 +3466,7 @@ int __init sysctl_init(void) >> * No sense putting this after each symbol definition, twice, >> * exception granted :-) >> */ >> +EXPORT_SYMBOL(proc_dobool); >> EXPORT_SYMBOL(proc_dointvec); >> EXPORT_SYMBOL(proc_douintvec); >> EXPORT_SYMBOL(proc_dointvec_jiffies); >> > > Friendly ping! > > Luis, Kees, Iurii, could you please have a look and provide an Ack if this > looks ok to you? Ping again! Could anybody please provide an Ack? Thanks, Thomas ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH 1/2] sysctl: introduce new proc handler proc_dobool 2021-08-03 10:59 ` [PATCH 1/2] sysctl: introduce new proc handler proc_dobool Thomas Huth 2021-08-18 9:38 ` Thomas Huth @ 2021-09-16 22:03 ` Kees Cook 1 sibling, 0 replies; 11+ messages in thread From: Kees Cook @ 2021-09-16 22:03 UTC (permalink / raw) To: Thomas Huth Cc: linux-kernel, linux-fsdevel, linux-nfs, J. Bruce Fields, Chuck Lever, Trond Myklebust, Anna Schumaker, Luis Chamberlain, Iurii Zaikin, linux-s390, Jia He, Pan Xinhui On Tue, Aug 03, 2021 at 12:59:36PM +0200, Thomas Huth wrote: > From: Jia He <hejianet@gmail.com> > > This is to let bool variable could be correctly displayed in > big/little endian sysctl procfs. sizeof(bool) is arch dependent, > proc_dobool should work in all arches. > > Suggested-by: Pan Xinhui <xinhui@linux.vnet.ibm.com> > Signed-off-by: Jia He <hejianet@gmail.com> Hi! I apologize for the delay. Yes, this looks good to me; thanks! Acked-by: Kees Cook <keescook@chromium.org> -- Kees Cook ^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH 2/2] lockd: change the proc_handler for nsm_use_hostnames 2021-08-03 10:59 [PATCH 0/2] Fix /proc/sys/fs/nfs/nsm_use_hostnames on big endian machines Thomas Huth 2021-08-03 10:59 ` [PATCH 1/2] sysctl: introduce new proc handler proc_dobool Thomas Huth @ 2021-08-03 10:59 ` Thomas Huth 2021-09-16 22:05 ` Kees Cook 2021-08-03 14:08 ` [PATCH 0/2] Fix /proc/sys/fs/nfs/nsm_use_hostnames on big endian machines J. Bruce Fields ` (2 subsequent siblings) 4 siblings, 1 reply; 11+ messages in thread From: Thomas Huth @ 2021-08-03 10:59 UTC (permalink / raw) To: linux-kernel, linux-fsdevel, linux-nfs Cc: J. Bruce Fields, Chuck Lever, Trond Myklebust, Anna Schumaker, Luis Chamberlain, Kees Cook, Iurii Zaikin, linux-s390, Jia He, Pan Xinhui From: Jia He <hejianet@gmail.com> nsm_use_hostnames is a module parameter 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_dobool to fix it. Signed-off-by: Jia He <hejianet@gmail.com> Reviewed-by: Pan Xinhui <xinhui.pan@linux.vnet.ibm.com> [thuth: Fix typo in commit message] Signed-off-by: Thomas Huth <thuth@redhat.com> --- 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 2de048f80eb8..0ab9756ed235 100644 --- a/fs/lockd/svc.c +++ b/fs/lockd/svc.c @@ -584,7 +584,7 @@ static struct ctl_table nlm_sysctls[] = { .data = &nsm_use_hostnames, .maxlen = sizeof(int), .mode = 0644, - .proc_handler = proc_dointvec, + .proc_handler = proc_dobool, }, { .procname = "nsm_local_state", -- 2.27.0 ^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: [PATCH 2/2] lockd: change the proc_handler for nsm_use_hostnames 2021-08-03 10:59 ` [PATCH 2/2] lockd: change the proc_handler for nsm_use_hostnames Thomas Huth @ 2021-09-16 22:05 ` Kees Cook 0 siblings, 0 replies; 11+ messages in thread From: Kees Cook @ 2021-09-16 22:05 UTC (permalink / raw) To: Thomas Huth Cc: linux-kernel, linux-fsdevel, linux-nfs, J. Bruce Fields, Chuck Lever, Trond Myklebust, Anna Schumaker, Luis Chamberlain, Iurii Zaikin, linux-s390, Jia He, Pan Xinhui On Tue, Aug 03, 2021 at 12:59:37PM +0200, Thomas Huth wrote: > From: Jia He <hejianet@gmail.com> > > nsm_use_hostnames is a module parameter 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_dobool to fix it. > > Signed-off-by: Jia He <hejianet@gmail.com> > Reviewed-by: Pan Xinhui <xinhui.pan@linux.vnet.ibm.com> > [thuth: Fix typo in commit message] > Signed-off-by: Thomas Huth <thuth@redhat.com> > --- > 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 2de048f80eb8..0ab9756ed235 100644 > --- a/fs/lockd/svc.c > +++ b/fs/lockd/svc.c > @@ -584,7 +584,7 @@ static struct ctl_table nlm_sysctls[] = { > .data = &nsm_use_hostnames, > .maxlen = sizeof(int), For robustness, maybe this should be: .maxlen = sizeof(nsm_use_hostnames), > .mode = 0644, > - .proc_handler = proc_dointvec, > + .proc_handler = proc_dobool, > }, > { > .procname = "nsm_local_state", > -- > 2.27.0 > Reviewed-by: Kees Cook <keescook@chromium.org> Also, I wonder what other BE-corrupted bools are out there? -- Kees Cook ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH 0/2] Fix /proc/sys/fs/nfs/nsm_use_hostnames on big endian machines 2021-08-03 10:59 [PATCH 0/2] Fix /proc/sys/fs/nfs/nsm_use_hostnames on big endian machines Thomas Huth 2021-08-03 10:59 ` [PATCH 1/2] sysctl: introduce new proc handler proc_dobool Thomas Huth 2021-08-03 10:59 ` [PATCH 2/2] lockd: change the proc_handler for nsm_use_hostnames Thomas Huth @ 2021-08-03 14:08 ` J. Bruce Fields 2021-08-03 14:24 ` Chuck Lever III 2021-08-04 2:12 ` Jia He 2021-08-09 17:50 ` Chuck Lever III 4 siblings, 1 reply; 11+ messages in thread From: J. Bruce Fields @ 2021-08-03 14:08 UTC (permalink / raw) To: Thomas Huth Cc: linux-kernel, linux-fsdevel, linux-nfs, Chuck Lever, Trond Myklebust, Anna Schumaker, Luis Chamberlain, Kees Cook, Iurii Zaikin, linux-s390, Jia He, Pan Xinhui Looks good to me. Could Chuck take it with nfsd stuff if somebody could ACK the sysctl part? --b. On Tue, Aug 03, 2021 at 12:59:35PM +0200, Thomas Huth wrote: > There is an endianess problem with /proc/sys/fs/nfs/nsm_use_hostnames > (which can e.g. be seen on an s390x host) : > > # modprobe lockd nsm_use_hostnames=1 > # cat /proc/sys/fs/nfs/nsm_use_hostnames > 16777216 > > The nsm_use_hostnames variable is declared as "bool" which is required > for the correct type for the module parameter. However, this does not > work correctly with the entry in the /proc filesystem since this > currently requires "int". > > Jia He already provided patches for this problem a couple of years ago, > but apparently they felt through the cracks and never got merged. So > here's a rebased version to finally fix this issue. > > Buglink: https://bugzilla.redhat.com/show_bug.cgi?id=1764075 > > Jia He (2): > sysctl: introduce new proc handler proc_dobool > lockd: change the proc_handler for nsm_use_hostnames > > fs/lockd/svc.c | 2 +- > include/linux/sysctl.h | 2 ++ > kernel/sysctl.c | 42 ++++++++++++++++++++++++++++++++++++++++++ > 3 files changed, 45 insertions(+), 1 deletion(-) > > -- > 2.27.0 ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH 0/2] Fix /proc/sys/fs/nfs/nsm_use_hostnames on big endian machines 2021-08-03 14:08 ` [PATCH 0/2] Fix /proc/sys/fs/nfs/nsm_use_hostnames on big endian machines J. Bruce Fields @ 2021-08-03 14:24 ` Chuck Lever III 0 siblings, 0 replies; 11+ messages in thread From: Chuck Lever III @ 2021-08-03 14:24 UTC (permalink / raw) To: Bruce Fields Cc: Thomas Huth, LKML, linux-fsdevel, Linux NFS Mailing List, Trond Myklebust, Anna Schumaker, Luis Chamberlain, Kees Cook, Iurii Zaikin, linux-s390, Jia He, Pan Xinhui Thanks for your review, Bruce. I'll watch for the additional Ack. > On Aug 3, 2021, at 10:08 AM, J. Bruce Fields <bfields@fieldses.org> wrote: > > Looks good to me. Could Chuck take it with nfsd stuff if somebody could > ACK the sysctl part? > > --b. > > On Tue, Aug 03, 2021 at 12:59:35PM +0200, Thomas Huth wrote: >> There is an endianess problem with /proc/sys/fs/nfs/nsm_use_hostnames >> (which can e.g. be seen on an s390x host) : >> >> # modprobe lockd nsm_use_hostnames=1 >> # cat /proc/sys/fs/nfs/nsm_use_hostnames >> 16777216 >> >> The nsm_use_hostnames variable is declared as "bool" which is required >> for the correct type for the module parameter. However, this does not >> work correctly with the entry in the /proc filesystem since this >> currently requires "int". >> >> Jia He already provided patches for this problem a couple of years ago, >> but apparently they felt through the cracks and never got merged. So >> here's a rebased version to finally fix this issue. >> >> Buglink: https://bugzilla.redhat.com/show_bug.cgi?id=1764075 >> >> Jia He (2): >> sysctl: introduce new proc handler proc_dobool >> lockd: change the proc_handler for nsm_use_hostnames >> >> fs/lockd/svc.c | 2 +- >> include/linux/sysctl.h | 2 ++ >> kernel/sysctl.c | 42 ++++++++++++++++++++++++++++++++++++++++++ >> 3 files changed, 45 insertions(+), 1 deletion(-) >> >> -- >> 2.27.0 -- Chuck Lever ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH 0/2] Fix /proc/sys/fs/nfs/nsm_use_hostnames on big endian machines 2021-08-03 10:59 [PATCH 0/2] Fix /proc/sys/fs/nfs/nsm_use_hostnames on big endian machines Thomas Huth ` (2 preceding siblings ...) 2021-08-03 14:08 ` [PATCH 0/2] Fix /proc/sys/fs/nfs/nsm_use_hostnames on big endian machines J. Bruce Fields @ 2021-08-04 2:12 ` Jia He 2021-08-09 17:50 ` Chuck Lever III 4 siblings, 0 replies; 11+ messages in thread From: Jia He @ 2021-08-04 2:12 UTC (permalink / raw) To: Thomas Huth, linux-kernel, linux-fsdevel, linux-nfs Cc: J. Bruce Fields, Chuck Lever, Trond Myklebust, Anna Schumaker, Luis Chamberlain, Kees Cook, Iurii Zaikin, linux-s390, Pan Xinhui On 2021/8/3 18:59, Thomas Huth wrote: > There is an endianess problem with /proc/sys/fs/nfs/nsm_use_hostnames > (which can e.g. be seen on an s390x host) : > > # modprobe lockd nsm_use_hostnames=1 > # cat /proc/sys/fs/nfs/nsm_use_hostnames > 16777216 > > The nsm_use_hostnames variable is declared as "bool" which is required > for the correct type for the module parameter. However, this does not > work correctly with the entry in the /proc filesystem since this > currently requires "int". > > Jia He already provided patches for this problem a couple of years ago, > but apparently they felt through the cracks and never got merged. So > here's a rebased version to finally fix this issue. > > Buglink: https://bugzilla.redhat.com/show_bug.cgi?id=1764075 > > Jia He (2): > sysctl: introduce new proc handler proc_dobool > lockd: change the proc_handler for nsm_use_hostnames Thanks for picking them up ;-) --- Cheers, Justin (Jia He) ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH 0/2] Fix /proc/sys/fs/nfs/nsm_use_hostnames on big endian machines 2021-08-03 10:59 [PATCH 0/2] Fix /proc/sys/fs/nfs/nsm_use_hostnames on big endian machines Thomas Huth ` (3 preceding siblings ...) 2021-08-04 2:12 ` Jia He @ 2021-08-09 17:50 ` Chuck Lever III 4 siblings, 0 replies; 11+ messages in thread From: Chuck Lever III @ 2021-08-09 17:50 UTC (permalink / raw) To: Thomas Huth Cc: LKML, linux-fsdevel, Linux NFS Mailing List, Bruce Fields, Trond Myklebust, Anna Schumaker, Luis Chamberlain, Kees Cook, Iurii Zaikin, linux-s390, Jia He, Pan Xinhui > On Aug 3, 2021, at 6:59 AM, Thomas Huth <thuth@redhat.com> wrote: > > There is an endianess problem with /proc/sys/fs/nfs/nsm_use_hostnames > (which can e.g. be seen on an s390x host) : > > # modprobe lockd nsm_use_hostnames=1 > # cat /proc/sys/fs/nfs/nsm_use_hostnames > 16777216 > > The nsm_use_hostnames variable is declared as "bool" which is required > for the correct type for the module parameter. However, this does not > work correctly with the entry in the /proc filesystem since this > currently requires "int". > > Jia He already provided patches for this problem a couple of years ago, > but apparently they felt through the cracks and never got merged. So > here's a rebased version to finally fix this issue. > > Buglink: https://bugzilla.redhat.com/show_bug.cgi?id=1764075 > > Jia He (2): > sysctl: introduce new proc handler proc_dobool > lockd: change the proc_handler for nsm_use_hostnames > > fs/lockd/svc.c | 2 +- > include/linux/sysctl.h | 2 ++ > kernel/sysctl.c | 42 ++++++++++++++++++++++++++++++++++++++++++ > 3 files changed, 45 insertions(+), 1 deletion(-) > > -- > 2.27.0 To get these patches in front of our zero-day apparatus, I've applied them to the for-next topic branch here: https://git.kernel.org/pub/scm/linux/kernel/git/cel/linux.git/log/?h=for-next However I haven't seen an Ack for the kernel/sysctl.c change yet. -- Chuck Lever ^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2021-09-16 22:05 UTC | newest] Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2021-08-03 10:59 [PATCH 0/2] Fix /proc/sys/fs/nfs/nsm_use_hostnames on big endian machines Thomas Huth 2021-08-03 10:59 ` [PATCH 1/2] sysctl: introduce new proc handler proc_dobool Thomas Huth 2021-08-18 9:38 ` Thomas Huth 2021-09-16 5:16 ` Thomas Huth 2021-09-16 22:03 ` Kees Cook 2021-08-03 10:59 ` [PATCH 2/2] lockd: change the proc_handler for nsm_use_hostnames Thomas Huth 2021-09-16 22:05 ` Kees Cook 2021-08-03 14:08 ` [PATCH 0/2] Fix /proc/sys/fs/nfs/nsm_use_hostnames on big endian machines J. Bruce Fields 2021-08-03 14:24 ` Chuck Lever III 2021-08-04 2:12 ` Jia He 2021-08-09 17:50 ` Chuck Lever III
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).