Lines Matching defs:opt

155 vfs_freeopt(struct vfsoptlist *opts, struct vfsopt *opt)
158 TAILQ_REMOVE(opts, opt, link);
159 free(opt->name, M_MOUNT);
160 if (opt->value != NULL)
161 free(opt->value, M_MOUNT);
162 free(opt, M_MOUNT);
169 struct vfsopt *opt;
172 opt = TAILQ_FIRST(opts);
173 vfs_freeopt(opts, opt);
181 struct vfsopt *opt, *temp;
185 TAILQ_FOREACH_SAFE(opt, opts, link, temp) {
186 if (strcmp(opt->name, name) == 0)
187 vfs_freeopt(opts, opt);
192 vfs_isopt_ro(const char *opt)
195 if (strcmp(opt, "ro") == 0 || strcmp(opt, "rdonly") == 0 ||
196 strcmp(opt, "norw") == 0)
202 vfs_isopt_rw(const char *opt)
205 if (strcmp(opt, "rw") == 0 || strcmp(opt, "noro") == 0)
218 /* "opt" vs. "opt" or "noopt" vs. "noopt" */
221 /* "noopt" vs. "opt" */
224 /* "opt" vs. "noopt" */
231 /* "foo.noopt" vs. "foo.opt" */
234 /* "foo.opt" vs. "foo.noopt" */
253 struct vfsopt *opt, *opt2, *tmp;
255 TAILQ_FOREACH_REVERSE(opt, opts, vfsoptlist, link) {
256 opt2 = TAILQ_PREV(opt, vfsoptlist, link);
258 if (vfs_equalopts(opt->name, opt2->name)) {
276 struct vfsopt *opt;
300 opt = malloc(sizeof(struct vfsopt), M_MOUNT, M_WAITOK);
301 opt->name = malloc(namelen, M_MOUNT, M_WAITOK);
302 opt->value = NULL;
303 opt->len = 0;
304 opt->pos = i / 2;
305 opt->seen = 0;
311 TAILQ_INSERT_TAIL(opts, opt, link);
314 bcopy(auio->uio_iov[i].iov_base, opt->name, namelen);
316 error = copyin(auio->uio_iov[i].iov_base, opt->name,
322 if (namelen == 0 || opt->name[namelen - 1] != '\0') {
327 opt->len = optlen;
328 opt->value = malloc(optlen, M_MOUNT, M_WAITOK);
330 bcopy(auio->uio_iov[i + 1].iov_base, opt->value,
334 opt->value, optlen);
359 struct vfsopt *opt, *new;
361 TAILQ_FOREACH(opt, oldopts, link) {
363 new->name = strdup(opt->name, M_MOUNT);
364 if (opt->len != 0) {
365 new->value = malloc(opt->len, M_MOUNT, M_WAITOK);
366 bcopy(opt->value, new->value, opt->len);
369 new->len = opt->len;
370 new->seen = opt->seen;
582 struct vfsopt *opt, *tmp_opt;
627 TAILQ_FOREACH_SAFE(opt, optlist, link, tmp_opt) {
628 if (strcmp(opt->name, "update") == 0) {
630 vfs_freeopt(optlist, opt);
632 else if (strcmp(opt->name, "async") == 0)
634 else if (strcmp(opt->name, "force") == 0) {
636 vfs_freeopt(optlist, opt);
638 else if (strcmp(opt->name, "reload") == 0) {
640 vfs_freeopt(optlist, opt);
642 else if (strcmp(opt->name, "multilabel") == 0)
644 else if (strcmp(opt->name, "noasync") == 0)
646 else if (strcmp(opt->name, "noatime") == 0)
648 else if (strcmp(opt->name, "atime") == 0) {
649 free(opt->name, M_MOUNT);
650 opt->name = strdup("nonoatime", M_MOUNT);
652 else if (strcmp(opt->name, "noclusterr") == 0)
654 else if (strcmp(opt->name, "clusterr") == 0) {
655 free(opt->name, M_MOUNT);
656 opt->name = strdup("nonoclusterr", M_MOUNT);
658 else if (strcmp(opt->name, "noclusterw") == 0)
660 else if (strcmp(opt->name, "clusterw") == 0) {
661 free(opt->name, M_MOUNT);
662 opt->name = strdup("nonoclusterw", M_MOUNT);
664 else if (strcmp(opt->name, "noexec") == 0)
666 else if (strcmp(opt->name, "exec") == 0) {
667 free(opt->name, M_MOUNT);
668 opt->name = strdup("nonoexec", M_MOUNT);
670 else if (strcmp(opt->name, "nosuid") == 0)
672 else if (strcmp(opt->name, "suid") == 0) {
673 free(opt->name, M_MOUNT);
674 opt->name = strdup("nonosuid", M_MOUNT);
676 else if (strcmp(opt->name, "nosymfollow") == 0)
678 else if (strcmp(opt->name, "symfollow") == 0) {
679 free(opt->name, M_MOUNT);
680 opt->name = strdup("nonosymfollow", M_MOUNT);
682 else if (strcmp(opt->name, "noro") == 0) {
686 else if (strcmp(opt->name, "rw") == 0) {
690 else if (strcmp(opt->name, "ro") == 0) {
694 else if (strcmp(opt->name, "rdonly") == 0) {
695 free(opt->name, M_MOUNT);
696 opt->name = strdup("ro", M_MOUNT);
700 else if (strcmp(opt->name, "autoro") == 0) {
701 vfs_freeopt(optlist, opt);
704 else if (strcmp(opt->name, "suiddir") == 0)
706 else if (strcmp(opt->name, "sync") == 0)
708 else if (strcmp(opt->name, "union") == 0)
710 else if (strcmp(opt->name, "automounted") == 0) {
712 vfs_freeopt(optlist, opt);
1536 struct vfsopt *opt;
1541 TAILQ_FOREACH(opt, opts, link) {
1542 p = opt->name;
1571 TAILQ_FOREACH(opt, opts, link) {
1572 if (strcmp(opt->name, "errmsg") == 0) {
1573 strncpy((char *)opt->value, errmsg, opt->len);
1577 if (opt == NULL)
1594 struct vfsopt *opt;
1598 TAILQ_FOREACH(opt, opts, link) {
1599 if (strcmp(name, opt->name) == 0) {
1600 opt->seen = 1;
1602 *len = opt->len;
1604 *buf = opt->value;
1614 struct vfsopt *opt;
1619 TAILQ_FOREACH(opt, opts, link) {
1620 if (strcmp(name, opt->name) == 0) {
1621 opt->seen = 1;
1622 return (opt->pos);
1672 struct vfsopt *opt;
1675 TAILQ_FOREACH(opt, opts, link) {
1676 if (strcmp(name, opt->name) != 0)
1678 opt->seen = 1;
1679 if (opt->len == 0 ||
1680 ((char *)opt->value)[opt->len - 1] != '\0') {
1684 return (opt->value);
1694 struct vfsopt *opt;
1696 TAILQ_FOREACH(opt, opts, link) {
1697 if (strcmp(name, opt->name) == 0) {
1698 opt->seen = 1;
1713 struct vfsopt *opt;
1718 TAILQ_FOREACH(opt, opts, link) {
1719 if (strcmp(name, opt->name) != 0)
1721 opt->seen = 1;
1722 if (opt->len == 0 || opt->value == NULL)
1724 if (((char *)opt->value)[opt->len - 1] != '\0')
1727 ret = vsscanf(opt->value, fmt, ap);
1737 struct vfsopt *opt;
1739 TAILQ_FOREACH(opt, opts, link) {
1740 if (strcmp(name, opt->name) != 0)
1742 opt->seen = 1;
1743 if (opt->value == NULL)
1744 opt->len = len;
1746 if (opt->len != len)
1748 bcopy(value, opt->value, len);
1758 struct vfsopt *opt;
1760 TAILQ_FOREACH(opt, opts, link) {
1761 if (strcmp(name, opt->name) != 0)
1763 opt->seen = 1;
1764 if (opt->value == NULL)
1765 opt->len = len;
1767 if (opt->len < len)
1769 opt->len = len;
1770 bcopy(value, opt->value, len);
1780 struct vfsopt *opt;
1782 TAILQ_FOREACH(opt, opts, link) {
1783 if (strcmp(name, opt->name) != 0)
1785 opt->seen = 1;
1786 if (opt->value == NULL)
1787 opt->len = strlen(value) + 1;
1788 else if (strlcpy(opt->value, value, opt->len) >= opt->len)
1806 struct vfsopt *opt;
1810 TAILQ_FOREACH(opt, opts, link) {
1811 if (strcmp(name, opt->name) == 0) {
1812 opt->seen = 1;
1813 if (len != opt->len)
1815 bcopy(opt->value, dest, opt->len);