Lines Matching refs:param
55 static int check_dev_ioctl_version(int cmd, struct autofs_dev_ioctl *param)
59 if ((param->ver_major != AUTOFS_DEV_IOCTL_VERSION_MAJOR) ||
60 (param->ver_minor > AUTOFS_DEV_IOCTL_VERSION_MINOR)) {
65 param->ver_major, param->ver_minor, cmd);
70 param->ver_major = AUTOFS_DEV_IOCTL_VERSION_MAJOR;
71 param->ver_minor = AUTOFS_DEV_IOCTL_VERSION_MINOR;
101 static inline void free_dev_ioctl(struct autofs_dev_ioctl *param)
103 kfree(param);
110 static int validate_dev_ioctl(int cmd, struct autofs_dev_ioctl *param)
114 err = check_dev_ioctl_version(cmd, param);
121 if (param->size > AUTOFS_DEV_IOCTL_SIZE) {
122 err = invalid_str(param->path, param->size - AUTOFS_DEV_IOCTL_SIZE);
130 err = check_name(param->path);
155 struct autofs_dev_ioctl *param)
158 param->ver_major = AUTOFS_DEV_IOCTL_VERSION_MAJOR;
159 param->ver_minor = AUTOFS_DEV_IOCTL_VERSION_MINOR;
166 struct autofs_dev_ioctl *param)
168 param->protover.version = sbi->version;
175 struct autofs_dev_ioctl *param)
177 param->protosubver.sub_version = sbi->sub_version;
259 struct autofs_dev_ioctl *param)
265 /* param->path has been checked in validate_dev_ioctl() */
267 if (!param->openmount.devid)
270 param->ioctlfd = -1;
272 path = param->path;
273 devid = new_decode_dev(param->openmount.devid);
282 param->ioctlfd = fd;
290 struct autofs_dev_ioctl *param)
292 return ksys_close(param->ioctlfd);
301 struct autofs_dev_ioctl *param)
305 token = (autofs_wqt_t) param->ready.token;
315 struct autofs_dev_ioctl *param)
320 token = (autofs_wqt_t) param->fail.token;
321 status = param->fail.status < 0 ? param->fail.status : -ENOENT;
339 struct autofs_dev_ioctl *param)
345 if (param->setpipefd.pipefd == -1)
348 pipefd = param->setpipefd.pipefd;
392 struct autofs_dev_ioctl *param)
401 struct autofs_dev_ioctl *param)
405 timeout = param->timeout.timeout;
406 param->timeout.timeout = sbi->exp_timeout / HZ;
421 struct autofs_dev_ioctl *param)
428 /* param->path has been checked in validate_dev_ioctl() */
432 param->requester.uid = param->requester.gid = -1;
434 err = find_autofs_mount(param->path, &path, test_by_dev, &devid);
443 param->requester.uid =
445 param->requester.gid =
460 struct autofs_dev_ioctl *param)
465 how = param->expire.how;
474 struct autofs_dev_ioctl *param)
476 param->askumount.may_umount = 0;
478 param->askumount.may_umount = 1;
505 struct autofs_dev_ioctl *param)
513 /* param->path has been checked in validate_dev_ioctl() */
515 name = param->path;
516 type = param->ismountpoint.in.type;
518 param->ismountpoint.out.devid = devid = 0;
519 param->ismountpoint.out.magic = magic = 0;
521 if (!fp || param->ioctlfd == -1) {
551 param->ismountpoint.out.devid = devid;
552 param->ismountpoint.out.magic = magic;
595 struct autofs_dev_ioctl *param;
619 param = copy_dev_ioctl(user);
620 if (IS_ERR(param))
621 return PTR_ERR(param);
623 err = validate_dev_ioctl(command, param);
648 fp = fget(param->ioctlfd);
676 err = fn(fp, sbi, param);
680 if (err >= 0 && copy_to_user(user, param, AUTOFS_DEV_IOCTL_SIZE))
683 free_dev_ioctl(param);