Lines Matching refs:si

388 smb_shr_add(smb_share_t *si)  in smb_shr_add()  argument
397 assert(si != NULL); in smb_shr_add()
399 if (smb_name_validate_share(si->shr_name) != ERROR_SUCCESS) in smb_shr_add()
405 cached_si = smb_shr_cache_findent(si->shr_name); in smb_shr_add()
407 if (si->shr_flags & SMB_SHRF_AUTOHOME) { in smb_shr_add()
417 if (STYPE_ISDSK(si->shr_type)) { in smb_shr_add()
434 rc = stat(si->shr_path, &st); in smb_shr_add()
436 smb_shr_zfs_add(si); in smb_shr_add()
455 if ((status = smb_shr_cache_addent(si)) != NERR_Success) { in smb_shr_add()
464 if ((rc = smb_shr_encode(si, &shrlist)) == 0) { in smb_shr_add()
470 smb_shr_publish(si->shr_name, si->shr_container); in smb_shr_add()
472 if ((si->shr_flags & SMB_SHRF_DFSROOT) != 0) in smb_shr_add()
473 dfs_namespace_load(si->shr_name); in smb_shr_add()
484 smb_shr_cache_delent(si->shr_name); in smb_shr_add()
496 smb_shr_zfs_remove(si); in smb_shr_add()
524 smb_share_t *si; in smb_shr_remove() local
537 if ((si = smb_shr_cache_findent(sharename)) == NULL) { in smb_shr_remove()
542 if (STYPE_ISIPC(si->shr_type)) { in smb_shr_remove()
548 if (si->shr_flags & SMB_SHRF_AUTOHOME) { in smb_shr_remove()
549 if ((--si->shr_refcnt) > 0) { in smb_shr_remove()
568 smb_shr_zfs_remove(si); in smb_shr_remove()
579 (void) smb_shr_encode(si, &shrlist); in smb_shr_remove()
581 (void) strlcpy(container, si->shr_container, sizeof (container)); in smb_shr_remove()
582 dfsroot = ((si->shr_flags & SMB_SHRF_DFSROOT) != 0); in smb_shr_remove()
693 smb_shr_get(char *sharename, smb_share_t *si) in smb_shr_get() argument
700 if ((status = smb_shr_lookup(sharename, si)) == NERR_Success) in smb_shr_get()
704 status = smb_shr_lookup(sharename, si); in smb_shr_get()
721 smb_share_t *si; in smb_shr_modify() local
732 if ((si = smb_shr_cache_findent(new_si->shr_name)) == NULL) { in smb_shr_modify()
737 if (STYPE_ISIPC(si->shr_type)) { in smb_shr_modify()
748 bcopy(si, &old_si, sizeof (old_si)); in smb_shr_modify()
751 (void) strlcpy(si->shr_cmnt, new_si->shr_cmnt, sizeof (si->shr_cmnt)); in smb_shr_modify()
754 (void) strlcpy(si->shr_container, new_si->shr_container, in smb_shr_modify()
755 sizeof (si->shr_container)); in smb_shr_modify()
756 adc_changed = (strcmp(old_si.shr_container, si->shr_container) != 0); in smb_shr_modify()
759 si->shr_flags &= ~SMB_SHRF_ABE; in smb_shr_modify()
760 si->shr_flags |= flag; in smb_shr_modify()
763 si->shr_flags &= ~SMB_SHRF_CATIA; in smb_shr_modify()
764 si->shr_flags |= flag; in smb_shr_modify()
767 si->shr_flags &= ~SMB_SHRF_GUEST_OK; in smb_shr_modify()
768 si->shr_flags |= flag; in smb_shr_modify()
771 si->shr_flags &= ~SMB_SHRF_DFSROOT; in smb_shr_modify()
772 si->shr_flags |= flag; in smb_shr_modify()
775 si->shr_flags &= ~SMB_SHRF_CA; in smb_shr_modify()
776 si->shr_flags |= flag; in smb_shr_modify()
779 si->shr_flags &= ~SMB_SHRF_FSO; in smb_shr_modify()
780 si->shr_flags |= flag; in smb_shr_modify()
783 si->shr_flags &= ~SMB_SHRF_QUOTAS; in smb_shr_modify()
784 si->shr_flags |= flag; in smb_shr_modify()
785 if ((old_si.shr_flags ^ si->shr_flags) & SMB_SHRF_QUOTAS) in smb_shr_modify()
789 si->shr_flags &= ~SMB_SHRF_CSC_MASK; in smb_shr_modify()
790 si->shr_flags |= flag; in smb_shr_modify()
793 si->shr_flags &= ~SMB_SHRF_ACC_ALL; in smb_shr_modify()
794 si->shr_flags |= access; in smb_shr_modify()
796 si->shr_encrypt = new_si->shr_encrypt; in smb_shr_modify()
799 (void) strlcpy(si->shr_access_none, new_si->shr_access_none, in smb_shr_modify()
800 sizeof (si->shr_access_none)); in smb_shr_modify()
803 (void) strlcpy(si->shr_access_ro, new_si->shr_access_ro, in smb_shr_modify()
804 sizeof (si->shr_access_ro)); in smb_shr_modify()
807 (void) strlcpy(si->shr_access_rw, new_si->shr_access_rw, in smb_shr_modify()
808 sizeof (si->shr_access_rw)); in smb_shr_modify()
812 if (smb_shr_encode(si, &shrlist) == 0) { in smb_shr_modify()
837 smb_shr_zfs_add(si); in smb_shr_modify()
1119 smb_share_t *si; in smb_shr_list() local
1125 while ((si = smb_shr_iterate(&iterator)) != NULL) { in smb_shr_list()
1129 if ((si->shr_flags & SMB_SHRF_TRANS) && in smb_shr_list()
1130 (!STYPE_ISIPC(si->shr_type))) { in smb_shr_list()
1131 bcopy(si, &list->sl_shares[n], sizeof (smb_share_t)); in smb_shr_list()
1152 smb_share_t si; in smb_shr_exec() local
1154 if (smb_shr_get(subs->e_sharename, &si) != 0) in smb_shr_exec()
1219 if (smb_shr_expand_subs(cmd_tokens, &si, subs) != 0) { in smb_shr_exec()
1286 smb_shr_lookup(char *sharename, smb_share_t *si) in smb_shr_lookup() argument
1296 bcopy(cached_si, si, sizeof (smb_share_t)); in smb_shr_lookup()
1511 smb_shr_cache_addent(smb_share_t *si) in smb_shr_cache_addent() argument
1519 si->shr_type |= smb_shr_is_special(si->shr_name); in smb_shr_cache_addent()
1521 if (smb_shr_is_admin(si->shr_name)) in smb_shr_cache_addent()
1522 si->shr_flags |= SMB_SHRF_ADMIN; in smb_shr_cache_addent()
1524 bcopy(si, cache_ent, sizeof (smb_share_t)); in smb_shr_cache_addent()
1526 if (si->shr_flags & SMB_SHRF_AUTOHOME) in smb_shr_cache_addent()
1631 smb_share_t *si; in smb_shr_unload() local
1642 while ((si = smb_shr_iterate(&iterator)) != NULL) { in smb_shr_unload()
1645 if ((si->shr_flags & SMB_SHRF_TRANS) || in smb_shr_unload()
1646 STYPE_ISIPC(si->shr_type)) in smb_shr_unload()
1649 rc = sa_delete_sharetab(handle, si->shr_path, "smb"); in smb_shr_unload()
1653 si->shr_path, rc, errno); in smb_shr_unload()
1709 smb_share_t si; in smb_shr_sa_load() local
1724 if ((status = smb_shr_sa_get(share, resource, &si)) != NERR_Success) { in smb_shr_sa_load()
1726 si.shr_name, status); in smb_shr_sa_load()
1730 status = smb_shr_add(&si); in smb_shr_sa_load()
1733 si.shr_name, status); in smb_shr_sa_load()
1766 smb_shr_sa_get(sa_share_t share, sa_resource_t resource, smb_share_t *si) in smb_shr_sa_get() argument
1781 bzero(si, sizeof (smb_share_t)); in smb_shr_sa_get()
1782 si->shr_flags = SMB_SHRF_PERM; in smb_shr_sa_get()
1784 (void) strlcpy(si->shr_path, path, sizeof (si->shr_path)); in smb_shr_sa_get()
1785 (void) strlcpy(si->shr_name, rname, sizeof (si->shr_name)); in smb_shr_sa_get()
1794 (void) strlcpy(si->shr_cmnt, val, sizeof (si->shr_cmnt)); in smb_shr_sa_get()
1804 (void) strlcpy(si->shr_container, val, in smb_shr_sa_get()
1805 sizeof (si->shr_container)); in smb_shr_sa_get()
1811 smb_shr_sa_setflag(val, si, SMB_SHRF_CATIA); in smb_shr_sa_get()
1817 smb_shr_sa_setflag(val, si, SMB_SHRF_ABE); in smb_shr_sa_get()
1823 smb_shr_sa_setflag(val, si, SMB_SHRF_GUEST_OK); in smb_shr_sa_get()
1829 smb_shr_sa_setflag(val, si, SMB_SHRF_DFSROOT); in smb_shr_sa_get()
1835 smb_shr_sa_setflag(val, si, SMB_SHRF_CA); in smb_shr_sa_get()
1841 smb_shr_sa_setflag(val, si, SMB_SHRF_FSO); in smb_shr_sa_get()
1848 smb_shr_sa_setflag(val, si, SMB_SHRF_QUOTAS); in smb_shr_sa_get()
1852 si->shr_flags |= SMB_SHRF_QUOTAS; in smb_shr_sa_get()
1857 smb_cfg_set_require(val, &si->shr_encrypt); in smb_shr_sa_get()
1863 smb_shr_sa_csc_option(val, si); in smb_shr_sa_get()
1869 (void) strlcpy(si->shr_access_none, val, in smb_shr_sa_get()
1870 sizeof (si->shr_access_none)); in smb_shr_sa_get()
1872 si->shr_flags |= SMB_SHRF_ACC_NONE; in smb_shr_sa_get()
1877 (void) strlcpy(si->shr_access_ro, val, in smb_shr_sa_get()
1878 sizeof (si->shr_access_ro)); in smb_shr_sa_get()
1880 si->shr_flags |= SMB_SHRF_ACC_RO; in smb_shr_sa_get()
1885 (void) strlcpy(si->shr_access_rw, val, in smb_shr_sa_get()
1886 sizeof (si->shr_access_rw)); in smb_shr_sa_get()
1888 si->shr_flags |= SMB_SHRF_ACC_RW; in smb_shr_sa_get()
1906 smb_shr_sa_csc_option(const char *value, smb_share_t *si) in smb_shr_sa_csc_option() argument
1912 si->shr_flags |= cscopt[i].flag; in smb_shr_sa_csc_option()
1917 switch (si->shr_flags & SMB_SHRF_CSC_MASK) { in smb_shr_sa_csc_option()
1927 si->shr_flags & SMB_SHRF_CSC_MASK); in smb_shr_sa_csc_option()
1937 smb_shr_sa_csc_name(const smb_share_t *si) in smb_shr_sa_csc_name() argument
1942 if (si->shr_flags & cscopt[i].flag) in smb_shr_sa_csc_name()
1954 smb_shr_sa_setflag(const char *value, smb_share_t *si, uint32_t flag) in smb_shr_sa_setflag() argument
1957 si->shr_flags |= flag; in smb_shr_sa_setflag()
1959 si->shr_flags &= ~flag; in smb_shr_sa_setflag()
2240 smb_shr_zfs_add(smb_share_t *si) in smb_shr_zfs_add() argument
2250 if (smb_getdataset(libhd, si->shr_path, buf, MAXPATHLEN) != 0) { in smb_shr_zfs_add()
2261 ret = zfs_smb_acl_add(libhd, buf, si->shr_path, si->shr_name); in smb_shr_zfs_add()
2264 si->shr_name, strerror(errno)); in smb_shr_zfs_add()
2270 "%s\n", si->shr_name); in smb_shr_zfs_add()
2272 if ((si->shr_flags & SMB_SHRF_QUOTAS) != 0) { in smb_shr_zfs_add()
2288 smb_shr_zfs_remove(smb_share_t *si) in smb_shr_zfs_remove() argument
2297 if (smb_getdataset(libhd, si->shr_path, buf, MAXPATHLEN) != 0) { in smb_shr_zfs_remove()
2303 ret = zfs_smb_acl_remove(libhd, buf, si->shr_path, si->shr_name); in smb_shr_zfs_remove()
2306 si->shr_name, strerror(errno)); in smb_shr_zfs_remove()
2447 smb_shr_expand_subs(char **cmd_toks, smb_share_t *si, smb_shr_execinfo_t *subs) in smb_shr_expand_subs() argument
2527 ptr = strdup(si->shr_name); in smb_shr_expand_subs()
2530 ptr = strdup(si->shr_path); in smb_shr_expand_subs()
2588 smb_shr_encode(smb_share_t *si, nvlist_t **nvlist) in smb_shr_encode() argument
2613 rc |= nvlist_add_string(share, "name", si->shr_name); in smb_shr_encode()
2614 rc |= nvlist_add_string(share, "path", si->shr_path); in smb_shr_encode()
2615 rc |= nvlist_add_string(share, "desc", si->shr_cmnt); in smb_shr_encode()
2618 rc = nvlist_add_string(smb, SHOPT_AD_CONTAINER, si->shr_container); in smb_shr_encode()
2619 if ((si->shr_flags & SMB_SHRF_ACC_NONE) != 0) in smb_shr_encode()
2620 rc |= nvlist_add_string(smb, SHOPT_NONE, si->shr_access_none); in smb_shr_encode()
2621 if ((si->shr_flags & SMB_SHRF_ACC_RO) != 0) in smb_shr_encode()
2622 rc |= nvlist_add_string(smb, SHOPT_RO, si->shr_access_ro); in smb_shr_encode()
2623 if ((si->shr_flags & SMB_SHRF_ACC_RW) != 0) in smb_shr_encode()
2624 rc |= nvlist_add_string(smb, SHOPT_RW, si->shr_access_rw); in smb_shr_encode()
2626 if ((si->shr_flags & SMB_SHRF_ABE) != 0) in smb_shr_encode()
2628 if ((si->shr_flags & SMB_SHRF_CATIA) != 0) in smb_shr_encode()
2630 if ((si->shr_flags & SMB_SHRF_GUEST_OK) != 0) in smb_shr_encode()
2632 if ((si->shr_flags & SMB_SHRF_DFSROOT) != 0) in smb_shr_encode()
2634 if ((si->shr_flags & SMB_SHRF_CA) != 0) in smb_shr_encode()
2636 if ((si->shr_flags & SMB_SHRF_FSO) != 0) in smb_shr_encode()
2638 if ((si->shr_flags & SMB_SHRF_QUOTAS) != 0) in smb_shr_encode()
2641 if (si->shr_encrypt == SMB_CONFIG_REQUIRED) in smb_shr_encode()
2643 else if (si->shr_encrypt == SMB_CONFIG_ENABLED) in smb_shr_encode()
2648 if ((si->shr_flags & SMB_SHRF_AUTOHOME) != 0) { in smb_shr_encode()
2650 rc |= nvlist_add_uint32(smb, "uid", si->shr_uid); in smb_shr_encode()
2651 rc |= nvlist_add_uint32(smb, "gid", si->shr_gid); in smb_shr_encode()
2654 if ((csc = smb_shr_sa_csc_name(si)) != NULL) in smb_shr_encode()
2657 rc |= nvlist_add_uint32(smb, "type", si->shr_type); in smb_shr_encode()
2660 rc |= nvlist_add_nvlist(list, si->shr_name, share); in smb_shr_encode()