Lines Matching refs:argv
30 * @argv: vector of arguments from userspace
35 * calling dofunc() function on the basis of @argv argument.
48 struct nilfs_argv *argv, int dir,
54 void __user *base = (void __user *)(unsigned long)argv->v_base;
60 if (argv->v_nmembs == 0)
63 if (argv->v_size > PAGE_SIZE)
67 * Reject pairs of a start item position (argv->v_index) and a
68 * total count (argv->v_nmembs) which leads position 'pos' to
71 if (argv->v_index > ~(__u64)0 - argv->v_nmembs)
77 maxmembs = PAGE_SIZE / argv->v_size;
81 pos = argv->v_index;
82 for (i = 0; i < argv->v_nmembs; i += n) {
83 n = (argv->v_nmembs - i < maxmembs) ?
84 argv->v_nmembs - i : maxmembs;
86 copy_from_user(buf, base + argv->v_size * i,
87 argv->v_size * n)) {
92 nr = dofunc(nilfs, &pos, argv->v_flags, buf, argv->v_size,
99 copy_to_user(base + argv->v_size * i, buf,
100 argv->v_size * nr)) {
110 argv->v_nmembs = total;
501 struct nilfs_argv argv;
504 if (copy_from_user(&argv, argp, sizeof(argv)))
507 if (argv.v_size != sizeof(struct nilfs_bdesc))
510 ret = nilfs_ioctl_wrap_copy(nilfs, &argv, _IOC_DIR(cmd),
515 if (copy_to_user(argp, &argv, sizeof(argv)))
586 * @argv: vector of arguments from userspace
597 struct nilfs_argv *argv, void *buf)
599 size_t nmembs = argv->v_nmembs;
664 * @argv: vector of arguments from userspace
681 struct nilfs_argv *argv, void *buf)
683 size_t nmembs = argv->v_nmembs;
700 * @argv: vector of arguments from userspace
704 * the virtual block numbers specified by @buf and @argv->v_nmembs.
716 struct nilfs_argv *argv, void *buf)
718 size_t nmembs = argv->v_nmembs;
729 * @argv: vector of arguments from userspace
745 struct nilfs_argv *argv, void *buf)
747 size_t nmembs = argv->v_nmembs;
791 struct nilfs_argv *argv, void **kbufs)
796 ret = nilfs_ioctl_delete_checkpoints(nilfs, &argv[1], kbufs[1]);
805 ret = nilfs_ioctl_free_vblocknrs(nilfs, &argv[2], kbufs[2]);
814 ret = nilfs_ioctl_mark_blocks_dirty(nilfs, &argv[3], kbufs[3]);
846 struct nilfs_argv argv[5];
868 if (copy_from_user(argv, argp, sizeof(argv)))
872 nsegs = argv[4].v_nmembs;
873 if (argv[4].v_size != argsz[4])
879 * argv[4] points to segment numbers this ioctl cleans. We
883 kbufs[4] = memdup_user((void __user *)(unsigned long)argv[4].v_base,
893 if (argv[n].v_size != argsz[n])
896 if (argv[n].v_nmembs > nsegs * nilfs->ns_blocks_per_segment)
899 if (argv[n].v_nmembs >= UINT_MAX / argv[n].v_size)
902 len = argv[n].v_size * argv[n].v_nmembs;
903 base = (void __user *)(unsigned long)argv[n].v_base;
932 ret = nilfs_ioctl_move_blocks(inode->i_sb, &argv[0], kbufs[0]);
940 ret = nilfs_clean_segments(inode->i_sb, argv, kbufs);
1164 struct nilfs_argv argv;
1167 if (copy_from_user(&argv, argp, sizeof(argv)))
1170 if (argv.v_size < membsz)
1173 ret = nilfs_ioctl_wrap_copy(nilfs, &argv, _IOC_DIR(cmd), dofunc);
1177 if (copy_to_user(argp, &argv, sizeof(argv)))
1211 struct nilfs_argv argv;
1225 if (copy_from_user(&argv, argp, sizeof(argv)))
1229 if (argv.v_size < sizeof(struct nilfs_suinfo_update))
1232 if (argv.v_nmembs > nilfs->ns_nsegments)
1235 if (argv.v_nmembs >= UINT_MAX / argv.v_size)
1238 len = argv.v_size * argv.v_nmembs;
1244 base = (void __user *)(unsigned long)argv.v_base;
1257 ret = nilfs_sufile_set_suinfo(nilfs->ns_sufile, kbuf, argv.v_size,
1258 argv.v_nmembs);