Lines Matching refs:sp
118 struct snode *sp; in specvp() local
149 if ((sp = sfind(dev, type, vp)) == NULL) { in specvp()
152 sp = nsp; /* Use pre-allocated snode */ in specvp()
153 svp = STOV(sp); in specvp()
155 sp->s_realvp = vp; in specvp()
157 sp->s_commonvp = NULL; in specvp()
158 sp->s_dev = dev; in specvp()
159 sp->s_dip = NULL; in specvp()
160 sp->s_nextr = NULL; in specvp()
161 sp->s_list = NULL; in specvp()
162 sp->s_plcy = NULL; in specvp()
163 sp->s_size = 0; in specvp()
164 sp->s_flag = 0; in specvp()
169 sp->s_fsid = va.va_fsid; in specvp()
170 sp->s_atime = va.va_atime.tv_sec; in specvp()
171 sp->s_mtime = va.va_mtime.tv_sec; in specvp()
172 sp->s_ctime = va.va_ctime.tv_sec; in specvp()
174 sp->s_fsid = specdev; in specvp()
175 sp->s_atime = 0; in specvp()
176 sp->s_mtime = 0; in specvp()
177 sp->s_ctime = 0; in specvp()
179 sp->s_count = 0; in specvp()
180 sp->s_mapcnt = 0; in specvp()
193 sp->s_commonvp = cvp; in specvp()
196 sinsert(sp); in specvp()
208 return (STOV(sp)); in specvp()
225 struct snode *sp; in makespecvp() local
229 sp = kmem_cache_alloc(snode_cache, KM_SLEEP); in makespecvp()
230 svp = STOV(sp); in makespecvp()
234 sp->s_realvp = NULL; in makespecvp()
235 sp->s_commonvp = cvp; in makespecvp()
236 sp->s_dev = dev; in makespecvp()
237 sp->s_dip = NULL; in makespecvp()
238 sp->s_nextr = NULL; in makespecvp()
239 sp->s_list = NULL; in makespecvp()
240 sp->s_plcy = NULL; in makespecvp()
241 sp->s_size = 0; in makespecvp()
242 sp->s_flag = 0; in makespecvp()
243 sp->s_fsid = specdev; in makespecvp()
244 sp->s_atime = now; in makespecvp()
245 sp->s_mtime = now; in makespecvp()
246 sp->s_ctime = now; in makespecvp()
247 sp->s_count = 0; in makespecvp()
248 sp->s_mapcnt = 0; in makespecvp()
258 sinsert(sp); in makespecvp()
446 struct snode *sp; in devi_stillreferenced() local
455 for (sp = stable[i]; sp != NULL; sp = sp->s_next) { in devi_stillreferenced()
456 if (sp->s_dip == dip) { in devi_stillreferenced()
476 spec_devi_open_count(struct snode *sp, dev_info_t **dipp) in spec_devi_open_count() argument
482 ASSERT(sp); in spec_devi_open_count()
485 vp = STOV(sp); in spec_devi_open_count()
493 if (sp->s_commonvp != vp || (dip = sp->s_dip) == NULL) in spec_devi_open_count()
496 mutex_enter(&sp->s_lock); in spec_devi_open_count()
497 count = sp->s_count + sp->s_mapcnt; in spec_devi_open_count()
498 if (sp->s_flag & SLOCKED) in spec_devi_open_count()
500 mutex_exit(&sp->s_lock); in spec_devi_open_count()
514 struct snode *sp; in common_specvp() local
519 sp = VTOS(vp); in common_specvp()
520 return (sp->s_commonvp); in common_specvp()
537 struct snode *sp; in get_cvp() local
541 if ((sp = sfind(dev, type, NULL)) == NULL) { in get_cvp()
542 sp = nsp; /* Use pre-allocated snode */ in get_cvp()
544 svp = STOV(sp); in get_cvp()
546 sp->s_realvp = NULL; in get_cvp()
547 sp->s_commonvp = svp; /* points to itself */ in get_cvp()
548 sp->s_dev = dev; in get_cvp()
549 sp->s_dip = NULL; in get_cvp()
550 sp->s_nextr = NULL; in get_cvp()
551 sp->s_list = NULL; in get_cvp()
552 sp->s_plcy = NULL; in get_cvp()
553 sp->s_size = UNKNOWN_SIZE; in get_cvp()
554 sp->s_flag = 0; in get_cvp()
555 sp->s_fsid = specdev; in get_cvp()
556 sp->s_atime = 0; in get_cvp()
557 sp->s_mtime = 0; in get_cvp()
558 sp->s_ctime = 0; in get_cvp()
559 sp->s_count = 0; in get_cvp()
560 sp->s_mapcnt = 0; in get_cvp()
567 sinsert(sp); in get_cvp()
570 return (STOV(sp)); in get_cvp()
581 struct snode *sp, *nsp; in commonvp() local
588 if ((sp = sfind(dev, type, NULL)) == NULL) { in commonvp()
589 sp = nsp; /* Use pre-alloced snode */ in commonvp()
590 svp = STOV(sp); in commonvp()
592 sp->s_realvp = NULL; in commonvp()
593 sp->s_commonvp = svp; /* points to itself */ in commonvp()
594 sp->s_dev = dev; in commonvp()
595 sp->s_dip = NULL; in commonvp()
596 sp->s_nextr = NULL; in commonvp()
597 sp->s_list = NULL; in commonvp()
598 sp->s_plcy = NULL; in commonvp()
599 sp->s_size = UNKNOWN_SIZE; in commonvp()
600 sp->s_flag = 0; in commonvp()
601 sp->s_fsid = specdev; in commonvp()
602 sp->s_atime = 0; in commonvp()
603 sp->s_mtime = 0; in commonvp()
604 sp->s_ctime = 0; in commonvp()
605 sp->s_count = 0; in commonvp()
606 sp->s_mapcnt = 0; in commonvp()
613 sinsert(sp); in commonvp()
620 return (STOV(sp)); in commonvp()
636 sinsert(struct snode *sp) in sinsert() argument
639 sp->s_next = stable[STABLEHASH(sp->s_dev)]; in sinsert()
640 stable[STABLEHASH(sp->s_dev)] = sp; in sinsert()
649 sdelete(struct snode *sp) in sdelete() argument
655 st = stable[STABLEHASH(sp->s_dev)]; in sdelete()
657 if (st == sp) { in sdelete()
659 stable[STABLEHASH(sp->s_dev)] = st->s_next; in sdelete()
707 smark(struct snode *sp, int flag) in smark() argument
713 if (((flag & sp->s_flag) != flag) || in smark()
714 ((flag & SACC) && (sp->s_atime != now)) || in smark()
715 ((flag & SUPD) && (sp->s_mtime != now)) || in smark()
716 ((flag & SCHG) && (sp->s_ctime != now))) { in smark()
718 mutex_enter(&sp->s_lock); in smark()
719 sp->s_flag |= flag; in smark()
721 sp->s_atime = now; in smark()
723 sp->s_mtime = now; in smark()
725 sp->s_ctime = now; in smark()
726 mutex_exit(&sp->s_lock); in smark()
741 struct snode *sp = VTOS(vp); in spec_maxoffset() local
742 struct snode *csp = VTOS(sp->s_commonvp); in spec_maxoffset()
759 struct snode *sp = buf; in snode_constructor() local
762 vp = sp->s_vnode = vn_alloc(kmflags); in snode_constructor()
767 vp->v_data = sp; in snode_constructor()
769 mutex_init(&sp->s_lock, NULL, MUTEX_DEFAULT, NULL); in snode_constructor()
770 cv_init(&sp->s_cv, NULL, CV_DEFAULT, NULL); in snode_constructor()
778 struct snode *sp = buf; in snode_destructor() local
779 struct vnode *vp = STOV(sp); in snode_destructor()
781 mutex_destroy(&sp->s_lock); in snode_destructor()
782 cv_destroy(&sp->s_cv); in snode_destructor()
839 struct snode *sp = VTOS(vp); in device_close() local
845 dev = sp->s_dev; in device_close()
846 cvp = sp->s_commonvp; in device_close()
885 struct snode *sp; in makectty() local
889 sp = VTOS(vp); in makectty()
890 cvp = sp->s_commonvp; in makectty()
901 spec_snode_walk(int (*callback)(struct snode *sp, void *arg), void *arg) in spec_snode_walk() argument
903 struct snode *sp; in spec_snode_walk() local
910 for (sp = stable[i]; sp; sp = sp->s_next) { in spec_snode_walk()
911 if (callback(sp, arg) != DDI_WALK_CONTINUE) in spec_snode_walk()
922 struct snode *sp; in spec_is_clone() local
925 sp = VTOS(vp); in spec_is_clone()
926 return ((sp->s_flag & SCLONE) ? 1 : 0); in spec_is_clone()
935 struct snode *sp; in spec_is_selfclone() local
938 sp = VTOS(vp); in spec_is_selfclone()
939 return ((sp->s_flag & SSELFCLONE) ? 1 : 0); in spec_is_selfclone()
952 struct snode *sp; in spec_fence_snode() local
990 for (sp = stable[i]; sp != NULL; sp = sp->s_next) { in spec_fence_snode()
991 ASSERT(sp->s_commonvp); in spec_fence_snode()
992 csp = VTOS(sp->s_commonvp); in spec_fence_snode()
1017 struct snode *sp; in spec_unfence_snode() local
1031 for (sp = stable[i]; sp != NULL; sp = sp->s_next) { in spec_unfence_snode()
1032 ASSERT(sp->s_commonvp); in spec_unfence_snode()
1033 csp = VTOS(sp->s_commonvp); in spec_unfence_snode()