Provide a callback that will be called when writing to a ctl_table entry after the user input has been validated. This will simplify user input checks since now it will be possible to remove them out of the proc_handler. Signed-off-by: Sasha Levin <levinsasha928@xxxxxxxxx> --- fs/proc/proc_sysctl.c | 4 ++++ include/linux/sysctl.h | 1 + 2 files changed, 5 insertions(+), 0 deletions(-) diff --git a/fs/proc/proc_sysctl.c b/fs/proc/proc_sysctl.c index 21d836f..190db28 100644 --- a/fs/proc/proc_sysctl.c +++ b/fs/proc/proc_sysctl.c @@ -507,6 +507,10 @@ static ssize_t proc_sys_call_handler(struct file *filp, void __user *buf, error = table->proc_handler(table, write, buf, &res, ppos); if (!error) error = res; + + if (!error && write && table->callback) + error = table->callback(); + out: sysctl_head_finish(head); diff --git a/include/linux/sysctl.h b/include/linux/sysctl.h index c34b4c8..27c14cf 100644 --- a/include/linux/sysctl.h +++ b/include/linux/sysctl.h @@ -1022,6 +1022,7 @@ struct ctl_table struct ctl_table_poll *poll; void *extra1; void *extra2; + int (*callback)(void); /* Called when entry is written to */ }; struct ctl_node { -- 1.7.8.5 -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html