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 ((AUTOFS_DEV_IOCTL_VERSION_MAJOR != param->ver_major) || in check_dev_ioctl_version()
76 (AUTOFS_DEV_IOCTL_VERSION_MINOR < param->ver_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()
116 static inline void free_dev_ioctl(struct autofs_dev_ioctl *param) in free_dev_ioctl() argument
118 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_protover() argument
180 param->protover.version = sbi->version; in autofs_dev_ioctl_protover()
187 struct autofs_dev_ioctl *param) in autofs_dev_ioctl_protosubver() argument
189 param->protosubver.sub_version = sbi->sub_version; in autofs_dev_ioctl_protosubver()
273 struct autofs_dev_ioctl *param) in autofs_dev_ioctl_openmount() argument
280 if (!param->openmount.devid) in autofs_dev_ioctl_openmount()
283 param->ioctlfd = -1; in autofs_dev_ioctl_openmount()
285 path = param->path; in autofs_dev_ioctl_openmount()
286 devid = new_decode_dev(param->openmount.devid); in autofs_dev_ioctl_openmount()
295 param->ioctlfd = fd; in autofs_dev_ioctl_openmount()
303 struct autofs_dev_ioctl *param) in autofs_dev_ioctl_closemount() argument
305 return sys_close(param->ioctlfd); in autofs_dev_ioctl_closemount()
314 struct autofs_dev_ioctl *param) in autofs_dev_ioctl_ready() argument
318 token = (autofs_wqt_t) param->ready.token; in autofs_dev_ioctl_ready()
328 struct autofs_dev_ioctl *param) in autofs_dev_ioctl_fail() argument
333 token = (autofs_wqt_t) param->fail.token; in autofs_dev_ioctl_fail()
334 status = param->fail.status ? param->fail.status : -ENOENT; in autofs_dev_ioctl_fail()
352 struct autofs_dev_ioctl *param) in autofs_dev_ioctl_setpipefd() argument
358 if (param->setpipefd.pipefd == -1) in autofs_dev_ioctl_setpipefd()
361 pipefd = param->setpipefd.pipefd; in autofs_dev_ioctl_setpipefd()
405 struct autofs_dev_ioctl *param) in autofs_dev_ioctl_catatonic() argument
414 struct autofs_dev_ioctl *param) in autofs_dev_ioctl_timeout() argument
418 timeout = param->timeout.timeout; in autofs_dev_ioctl_timeout()
419 param->timeout.timeout = sbi->exp_timeout / HZ; in autofs_dev_ioctl_timeout()
434 struct autofs_dev_ioctl *param) in autofs_dev_ioctl_requester() argument
441 if (param->size <= sizeof(*param)) { in autofs_dev_ioctl_requester()
448 param->requester.uid = param->requester.gid = -1; in autofs_dev_ioctl_requester()
450 err = find_autofs_mount(param->path, &path, test_by_dev, &devid); in autofs_dev_ioctl_requester()
459 param->requester.uid = from_kuid_munged(current_user_ns(), ino->uid); in autofs_dev_ioctl_requester()
460 param->requester.gid = from_kgid_munged(current_user_ns(), ino->gid); in autofs_dev_ioctl_requester()
474 struct autofs_dev_ioctl *param) in autofs_dev_ioctl_expire() argument
479 how = param->expire.how; in autofs_dev_ioctl_expire()
488 struct autofs_dev_ioctl *param) in autofs_dev_ioctl_askumount() argument
490 param->askumount.may_umount = 0; in autofs_dev_ioctl_askumount()
492 param->askumount.may_umount = 1; in autofs_dev_ioctl_askumount()
519 struct autofs_dev_ioctl *param) in autofs_dev_ioctl_ismountpoint() argument
527 if (param->size <= sizeof(*param)) { in autofs_dev_ioctl_ismountpoint()
532 name = param->path; in autofs_dev_ioctl_ismountpoint()
533 type = param->ismountpoint.in.type; in autofs_dev_ioctl_ismountpoint()
535 param->ismountpoint.out.devid = devid = 0; in autofs_dev_ioctl_ismountpoint()
536 param->ismountpoint.out.magic = magic = 0; in autofs_dev_ioctl_ismountpoint()
538 if (!fp || param->ioctlfd == -1) { in autofs_dev_ioctl_ismountpoint()
568 param->ismountpoint.out.devid = devid; in autofs_dev_ioctl_ismountpoint()
569 param->ismountpoint.out.magic = magic; in autofs_dev_ioctl_ismountpoint()
624 struct autofs_dev_ioctl *param; in _autofs_dev_ioctl() local
644 param = copy_dev_ioctl(user); in _autofs_dev_ioctl()
645 if (IS_ERR(param)) in _autofs_dev_ioctl()
646 return PTR_ERR(param); in _autofs_dev_ioctl()
648 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()
704 if (err >= 0 && copy_to_user(user, param, AUTOFS_DEV_IOCTL_SIZE)) in _autofs_dev_ioctl()
707 free_dev_ioctl(param); in _autofs_dev_ioctl()