sysctl: replace child with an enumeration
authorJoel Granados <j.granados@samsung.com>
Fri, 16 Jun 2023 08:59:22 +0000 (10:59 +0200)
committerLuis Chamberlain <mcgrof@kernel.org>
Sun, 18 Jun 2023 09:32:54 +0000 (02:32 -0700)
commit2f2665c13af4895b26761107c2f637c2f112d8e9
tree640cf1f5bcc8a0f9b87981e33a71ab92d4bf14db
parent94a6490518d80a61c7a8e5aa107547e53636d964
sysctl: replace child with an enumeration

This is part of the effort to remove the empty element at the end of
ctl_table structs. "child" was a deprecated elem in this struct and was
being used to differentiate between two types of ctl_tables: "normal"
and "permanently emtpy".

What changed?:
* Replace "child" with an enumeration that will have two values: the
  default (0) and the permanently empty (1). The latter is left at zero
  so when struct ctl_table is created with kzalloc or in a local
  context, it will have the zero value by default. We document the
  new enum with kdoc.
* Remove the "empty child" check from sysctl_check_table
* Remove count_subheaders function as there is no longer a need to
  calculate how many headers there are for every child
* Remove the recursive call to unregister_sysctl_table as there is no
  need to traverse down the child tree any longer
* Add a new SYSCTL_PERM_EMPTY_DIR binary flag
* Remove the last remanence of child from partport/procfs.c

Signed-off-by: Joel Granados <j.granados@samsung.com>
Signed-off-by: Luis Chamberlain <mcgrof@kernel.org>
drivers/parport/procfs.c
fs/proc/proc_sysctl.c
include/linux/sysctl.h