Lines Matching refs:param
71 static int check_dev_ioctl_version(int cmd, struct autofs_dev_ioctl *param) in check_dev_ioctl_version() argument
75 if ((param->ver_major != AUTOFS_DEV_IOCTL_VERSION_MAJOR) || in check_dev_ioctl_version()
76 (param->ver_minor > AUTOFS_DEV_IOCTL_VERSION_MINOR)) { in check_dev_ioctl_version()
81 param->ver_major, param->ver_minor, cmd); in check_dev_ioctl_version()
86 param->ver_major = AUTOFS_DEV_IOCTL_VERSION_MAJOR; in check_dev_ioctl_version()
87 param->ver_minor = AUTOFS_DEV_IOCTL_VERSION_MINOR; in check_dev_ioctl_version()
117 static inline void free_dev_ioctl(struct autofs_dev_ioctl *param) in free_dev_ioctl() argument
119 kfree(param); in free_dev_ioctl()
126 static int validate_dev_ioctl(int cmd, struct autofs_dev_ioctl *param) in validate_dev_ioctl() argument
130 err = check_dev_ioctl_version(cmd, param); in validate_dev_ioctl()
137 if (param->size > sizeof(*param)) { in validate_dev_ioctl()
138 err = invalid_str(param->path, param->size - sizeof(*param)); in validate_dev_ioctl()
146 err = check_name(param->path); in validate_dev_ioctl()
178 struct autofs_dev_ioctl *param) in autofs_dev_ioctl_version() argument
181 param->ver_major = AUTOFS_DEV_IOCTL_VERSION_MAJOR; in autofs_dev_ioctl_version()
182 param->ver_minor = AUTOFS_DEV_IOCTL_VERSION_MINOR; in autofs_dev_ioctl_version()
189 struct autofs_dev_ioctl *param) in autofs_dev_ioctl_protover() argument
191 param->protover.version = sbi->version; in autofs_dev_ioctl_protover()
198 struct autofs_dev_ioctl *param) in autofs_dev_ioctl_protosubver() argument
200 param->protosubver.sub_version = sbi->sub_version; in autofs_dev_ioctl_protosubver()
287 struct autofs_dev_ioctl *param) in autofs_dev_ioctl_openmount() argument
294 if (!param->openmount.devid) in autofs_dev_ioctl_openmount()
297 param->ioctlfd = -1; in autofs_dev_ioctl_openmount()
299 path = param->path; in autofs_dev_ioctl_openmount()
300 devid = new_decode_dev(param->openmount.devid); in autofs_dev_ioctl_openmount()
309 param->ioctlfd = fd; in autofs_dev_ioctl_openmount()
317 struct autofs_dev_ioctl *param) in autofs_dev_ioctl_closemount() argument
319 return sys_close(param->ioctlfd); in autofs_dev_ioctl_closemount()
328 struct autofs_dev_ioctl *param) in autofs_dev_ioctl_ready() argument
332 token = (autofs_wqt_t) param->ready.token; in autofs_dev_ioctl_ready()
342 struct autofs_dev_ioctl *param) in autofs_dev_ioctl_fail() argument
347 token = (autofs_wqt_t) param->fail.token; in autofs_dev_ioctl_fail()
348 status = param->fail.status < 0 ? param->fail.status : -ENOENT; in autofs_dev_ioctl_fail()
366 struct autofs_dev_ioctl *param) in autofs_dev_ioctl_setpipefd() argument
372 if (param->setpipefd.pipefd == -1) in autofs_dev_ioctl_setpipefd()
375 pipefd = param->setpipefd.pipefd; in autofs_dev_ioctl_setpipefd()
419 struct autofs_dev_ioctl *param) in autofs_dev_ioctl_catatonic() argument
428 struct autofs_dev_ioctl *param) in autofs_dev_ioctl_timeout() argument
432 timeout = param->timeout.timeout; in autofs_dev_ioctl_timeout()
433 param->timeout.timeout = sbi->exp_timeout / HZ; in autofs_dev_ioctl_timeout()
448 struct autofs_dev_ioctl *param) in autofs_dev_ioctl_requester() argument
455 if (param->size <= sizeof(*param)) { in autofs_dev_ioctl_requester()
462 param->requester.uid = param->requester.gid = -1; in autofs_dev_ioctl_requester()
464 err = find_autofs_mount(param->path, &path, test_by_dev, &devid); in autofs_dev_ioctl_requester()
473 param->requester.uid = in autofs_dev_ioctl_requester()
475 param->requester.gid = in autofs_dev_ioctl_requester()
490 struct autofs_dev_ioctl *param) in autofs_dev_ioctl_expire() argument
495 how = param->expire.how; in autofs_dev_ioctl_expire()
504 struct autofs_dev_ioctl *param) in autofs_dev_ioctl_askumount() argument
506 param->askumount.may_umount = 0; in autofs_dev_ioctl_askumount()
508 param->askumount.may_umount = 1; in autofs_dev_ioctl_askumount()
535 struct autofs_dev_ioctl *param) in autofs_dev_ioctl_ismountpoint() argument
543 if (param->size <= sizeof(*param)) { in autofs_dev_ioctl_ismountpoint()
548 name = param->path; in autofs_dev_ioctl_ismountpoint()
549 type = param->ismountpoint.in.type; in autofs_dev_ioctl_ismountpoint()
551 param->ismountpoint.out.devid = devid = 0; in autofs_dev_ioctl_ismountpoint()
552 param->ismountpoint.out.magic = magic = 0; in autofs_dev_ioctl_ismountpoint()
554 if (!fp || param->ioctlfd == -1) { in autofs_dev_ioctl_ismountpoint()
584 param->ismountpoint.out.devid = devid; in autofs_dev_ioctl_ismountpoint()
585 param->ismountpoint.out.magic = magic; in autofs_dev_ioctl_ismountpoint()
625 struct autofs_dev_ioctl *param; in _autofs_dev_ioctl() local
645 param = copy_dev_ioctl(user); in _autofs_dev_ioctl()
646 if (IS_ERR(param)) in _autofs_dev_ioctl()
647 return PTR_ERR(param); in _autofs_dev_ioctl()
649 err = validate_dev_ioctl(command, param); in _autofs_dev_ioctl()
672 fp = fget(param->ioctlfd); in _autofs_dev_ioctl()
699 err = fn(fp, sbi, param); in _autofs_dev_ioctl()
703 if (err >= 0 && copy_to_user(user, param, AUTOFS_DEV_IOCTL_SIZE)) in _autofs_dev_ioctl()
706 free_dev_ioctl(param); in _autofs_dev_ioctl()