|
@@ -3458,47 +3458,19 @@ static void cdrom_update_settings(void)
|
|
|
static int cdrom_sysctl_handler(ctl_table *ctl, int write, struct file * filp,
|
|
|
void __user *buffer, size_t *lenp, loff_t *ppos)
|
|
|
{
|
|
|
- int *valp = ctl->data;
|
|
|
- int val = *valp;
|
|
|
int ret;
|
|
|
|
|
|
ret = proc_dointvec(ctl, write, filp, buffer, lenp, ppos);
|
|
|
|
|
|
- if (write && *valp != val) {
|
|
|
+ if (write) {
|
|
|
|
|
|
/* we only care for 1 or 0. */
|
|
|
- if (*valp)
|
|
|
- *valp = 1;
|
|
|
- else
|
|
|
- *valp = 0;
|
|
|
+ autoclose = !!cdrom_sysctl_settings.autoclose;
|
|
|
+ autoeject = !!cdrom_sysctl_settings.autoeject;
|
|
|
+ debug = !!cdrom_sysctl_settings.debug;
|
|
|
+ lockdoor = !!cdrom_sysctl_settings.lock;
|
|
|
+ check_media_type = !!cdrom_sysctl_settings.check;
|
|
|
|
|
|
- switch (ctl->ctl_name) {
|
|
|
- case DEV_CDROM_AUTOCLOSE: {
|
|
|
- if (valp == &cdrom_sysctl_settings.autoclose)
|
|
|
- autoclose = cdrom_sysctl_settings.autoclose;
|
|
|
- break;
|
|
|
- }
|
|
|
- case DEV_CDROM_AUTOEJECT: {
|
|
|
- if (valp == &cdrom_sysctl_settings.autoeject)
|
|
|
- autoeject = cdrom_sysctl_settings.autoeject;
|
|
|
- break;
|
|
|
- }
|
|
|
- case DEV_CDROM_DEBUG: {
|
|
|
- if (valp == &cdrom_sysctl_settings.debug)
|
|
|
- debug = cdrom_sysctl_settings.debug;
|
|
|
- break;
|
|
|
- }
|
|
|
- case DEV_CDROM_LOCK: {
|
|
|
- if (valp == &cdrom_sysctl_settings.lock)
|
|
|
- lockdoor = cdrom_sysctl_settings.lock;
|
|
|
- break;
|
|
|
- }
|
|
|
- case DEV_CDROM_CHECK_MEDIA: {
|
|
|
- if (valp == &cdrom_sysctl_settings.check)
|
|
|
- check_media_type = cdrom_sysctl_settings.check;
|
|
|
- break;
|
|
|
- }
|
|
|
- }
|
|
|
/* update the option flags according to the changes. we
|
|
|
don't have per device options through sysctl yet,
|
|
|
but we will have and then this will disappear. */
|
|
@@ -3511,7 +3483,6 @@ static int cdrom_sysctl_handler(ctl_table *ctl, int write, struct file * filp,
|
|
|
/* Place files in /proc/sys/dev/cdrom */
|
|
|
static ctl_table cdrom_table[] = {
|
|
|
{
|
|
|
- .ctl_name = DEV_CDROM_INFO,
|
|
|
.procname = "info",
|
|
|
.data = &cdrom_sysctl_settings.info,
|
|
|
.maxlen = CDROM_STR_SIZE,
|
|
@@ -3519,7 +3490,6 @@ static ctl_table cdrom_table[] = {
|
|
|
.proc_handler = &cdrom_sysctl_info,
|
|
|
},
|
|
|
{
|
|
|
- .ctl_name = DEV_CDROM_AUTOCLOSE,
|
|
|
.procname = "autoclose",
|
|
|
.data = &cdrom_sysctl_settings.autoclose,
|
|
|
.maxlen = sizeof(int),
|
|
@@ -3527,7 +3497,6 @@ static ctl_table cdrom_table[] = {
|
|
|
.proc_handler = &cdrom_sysctl_handler,
|
|
|
},
|
|
|
{
|
|
|
- .ctl_name = DEV_CDROM_AUTOEJECT,
|
|
|
.procname = "autoeject",
|
|
|
.data = &cdrom_sysctl_settings.autoeject,
|
|
|
.maxlen = sizeof(int),
|
|
@@ -3535,7 +3504,6 @@ static ctl_table cdrom_table[] = {
|
|
|
.proc_handler = &cdrom_sysctl_handler,
|
|
|
},
|
|
|
{
|
|
|
- .ctl_name = DEV_CDROM_DEBUG,
|
|
|
.procname = "debug",
|
|
|
.data = &cdrom_sysctl_settings.debug,
|
|
|
.maxlen = sizeof(int),
|
|
@@ -3543,7 +3511,6 @@ static ctl_table cdrom_table[] = {
|
|
|
.proc_handler = &cdrom_sysctl_handler,
|
|
|
},
|
|
|
{
|
|
|
- .ctl_name = DEV_CDROM_LOCK,
|
|
|
.procname = "lock",
|
|
|
.data = &cdrom_sysctl_settings.lock,
|
|
|
.maxlen = sizeof(int),
|
|
@@ -3551,7 +3518,6 @@ static ctl_table cdrom_table[] = {
|
|
|
.proc_handler = &cdrom_sysctl_handler,
|
|
|
},
|
|
|
{
|
|
|
- .ctl_name = DEV_CDROM_CHECK_MEDIA,
|
|
|
.procname = "check_media",
|
|
|
.data = &cdrom_sysctl_settings.check,
|
|
|
.maxlen = sizeof(int),
|