Lines Matching refs:np

166 static int	smbfs_writenp(smbnode_t *np, caddr_t base, int tcount,
202 smbnode_t *np; in smbfs_open() local
215 np = VTOSMB(vp); in smbfs_open()
234 if (smbfs_rw_enter_sig(&np->r_lkserlock, RW_WRITER, SMBINTR(vp))) in smbfs_open()
244 if (np->n_ovtype == VNON) { in smbfs_open()
245 ASSERT(np->n_dirrefs == 0); in smbfs_open()
246 ASSERT(np->n_fidrefs == 0); in smbfs_open()
247 } else if (np->n_ovtype != vp->v_type) { in smbfs_open()
249 np->n_ovtype, vp->v_type); in smbfs_open()
258 if (np->n_dirseq == NULL) { in smbfs_open()
260 error = smbfs_smb_findopen(np, "*", 1, in smbfs_open()
262 &scred, &np->n_dirseq); in smbfs_open()
266 np->n_dirofs = FIRST_DIROFS; in smbfs_open()
267 np->n_dirrefs++; in smbfs_open()
282 if (np->n_fidrefs > 0 && in smbfs_open()
283 (fid = np->n_fid) != NULL && in smbfs_open()
297 np->n_fidrefs++; in smbfs_open()
318 error = smbfs_smb_open(np, in smbfs_open()
330 oldfid = np->n_fid; in smbfs_open()
331 np->n_fid = fid; in smbfs_open()
332 np->n_fidrefs++; in smbfs_open()
340 mutex_enter(&np->r_statelock); in smbfs_open()
341 oldcr = np->r_cred; in smbfs_open()
342 np->r_cred = cr; in smbfs_open()
346 mutex_exit(&np->r_statelock); in smbfs_open()
353 if (np->n_ovtype == VNON) in smbfs_open()
354 np->n_ovtype = vp->v_type; in smbfs_open()
358 smbfs_rw_exit(&np->r_lkserlock); in smbfs_open()
367 smbnode_t *np; in smbfs_close() local
372 np = VTOSMB(vp); in smbfs_close()
447 mutex_enter(&np->r_statelock); in smbfs_close()
448 np->r_flags &= ~RSTALE; in smbfs_close()
449 np->r_error = 0; in smbfs_close()
450 mutex_exit(&np->r_statelock); in smbfs_close()
460 (void) smbfs_rw_enter_sig(&np->r_lkserlock, RW_WRITER, 0); in smbfs_close()
463 smbfs_rele_fid(np, &scred); in smbfs_close()
466 smbfs_rw_exit(&np->r_lkserlock); in smbfs_close()
478 smbfs_rele_fid(smbnode_t *np, struct smb_cred *scred) in smbfs_rele_fid() argument
488 ASSERT(smbfs_rw_lock_held(&np->r_lkserlock, RW_WRITER)); in smbfs_rele_fid()
497 switch (np->n_ovtype) { in smbfs_rele_fid()
499 ASSERT(np->n_dirrefs > 0); in smbfs_rele_fid()
500 if (--np->n_dirrefs) in smbfs_rele_fid()
502 if ((fctx = np->n_dirseq) != NULL) { in smbfs_rele_fid()
503 np->n_dirseq = NULL; in smbfs_rele_fid()
504 np->n_dirofs = 0; in smbfs_rele_fid()
510 ASSERT(np->n_fidrefs > 0); in smbfs_rele_fid()
511 if (--np->n_fidrefs) in smbfs_rele_fid()
513 if ((ofid = np->n_fid) != NULL) { in smbfs_rele_fid()
514 np->n_fid = NULL; in smbfs_rele_fid()
520 SMBVDEBUG("bad n_ovtype %d\n", np->n_ovtype); in smbfs_rele_fid()
525 error, np->n_rpath); in smbfs_rele_fid()
529 np->n_ovtype = VNON; in smbfs_rele_fid()
534 mutex_enter(&np->r_statelock); in smbfs_rele_fid()
535 if (np->n_flag & NATTRCHANGED) in smbfs_rele_fid()
536 smbfs_attrcache_rm_locked(np); in smbfs_rele_fid()
537 oldcr = np->r_cred; in smbfs_rele_fid()
538 np->r_cred = NULL; in smbfs_rele_fid()
539 mutex_exit(&np->r_statelock); in smbfs_rele_fid()
551 smbnode_t *np; in smbfs_read() local
557 np = VTOSMB(vp); in smbfs_read()
567 if (np->n_fid == NULL) in smbfs_read()
570 ASSERT(smbfs_rw_lock_held(&np->r_rwlock, RW_READER)); in smbfs_read()
615 (((np->r_flags & RDIRECTIO) || (smi->smi_flags & SMI_DIRECTIO)) && in smbfs_read()
616 np->r_mapcnt == 0 && np->r_inmap == 0 && in smbfs_read()
620 if (smbfs_rw_enter_sig(&np->r_lkserlock, RW_READER, SMBINTR(vp))) in smbfs_read()
624 error = smb_rwuio(np->n_fid, UIO_READ, in smbfs_read()
628 smbfs_rw_exit(&np->r_lkserlock); in smbfs_read()
673 mutex_enter(&np->r_statelock); in smbfs_read()
675 uiop->uio_loffset == np->r_size) in smbfs_read()
679 mutex_exit(&np->r_statelock); in smbfs_read()
711 smbnode_t *np; in smbfs_write() local
722 np = VTOSMB(vp); in smbfs_write()
732 if (np->n_fid == NULL) in smbfs_write()
735 ASSERT(smbfs_rw_lock_held(&np->r_rwlock, RW_WRITER)); in smbfs_write()
747 if (np->n_flag & NMODIFIED) { in smbfs_write()
748 smbfs_attrcache_remove(np); in smbfs_write()
808 (((np->r_flags & RDIRECTIO) || (smi->smi_flags & SMI_DIRECTIO)) && in smbfs_write()
809 np->r_mapcnt == 0 && np->r_inmap == 0 && in smbfs_write()
815 if (np->r_flags & RSTALE) { in smbfs_write()
818 error = np->r_error; in smbfs_write()
830 if (endoff > np->r_size) in smbfs_write()
834 if (smbfs_rw_enter_sig(&np->r_lkserlock, RW_READER, SMBINTR(vp))) in smbfs_write()
838 error = smb_rwuio(np->n_fid, UIO_WRITE, in smbfs_write()
842 mutex_enter(&np->r_statelock); in smbfs_write()
843 np->n_flag |= (NFLUSHWIRE | NATTRCHANGED); in smbfs_write()
844 if (uiop->uio_loffset > (offset_t)np->r_size) in smbfs_write()
845 np->r_size = (len_t)uiop->uio_loffset; in smbfs_write()
846 mutex_exit(&np->r_statelock); in smbfs_write()
849 (void) smbfsflush(np, &scred); in smbfs_write()
854 smbfs_rw_exit(&np->r_lkserlock); in smbfs_write()
880 if (np->r_flags & RSTALE) { in smbfs_write()
881 error = np->r_error; in smbfs_write()
897 mutex_enter(&np->r_statelock); in smbfs_write()
898 while (np->r_gcount > 0) { in smbfs_write()
904 if (!cv_wait_sig(&np->r_cv, &np->r_statelock)) { in smbfs_write()
905 mutex_exit(&np->r_statelock); in smbfs_write()
914 cv_wait(&np->r_cv, &np->r_statelock); in smbfs_write()
916 mutex_exit(&np->r_statelock); in smbfs_write()
931 error = smbfs_writenp(np, NULL, n, uiop, 0); in smbfs_write()
939 mutex_enter(&np->r_statelock); in smbfs_write()
941 uiop->uio_loffset + pn >= np->r_size); in smbfs_write()
942 mutex_exit(&np->r_statelock); in smbfs_write()
947 error = smbfs_writenp(np, base + pon, n, uiop, in smbfs_write()
953 error = smbfs_writenp(np, base + on, n, uiop, 0); in smbfs_write()
973 (np->r_flags & ROUTOFSPACE)) { in smbfs_write()
1024 smbfs_writenp(smbnode_t *np, caddr_t base, int tcount, struct uio *uio, in smbfs_writenp() argument
1034 vnode_t *vp = SMBTOV(np); in smbfs_writenp()
1037 ASSERT(smbfs_rw_lock_held(&np->r_rwlock, RW_WRITER)); in smbfs_writenp()
1069 mutex_enter(&np->r_statelock); in smbfs_writenp()
1078 (n == PAGESIZE || ((offset + n) >= np->r_size))); in smbfs_writenp()
1080 mutex_exit(&np->r_statelock); in smbfs_writenp()
1111 ASSERT(!(np->r_flags & RMODINPROGRESS)); in smbfs_writenp()
1112 mutex_enter(&np->r_statelock); in smbfs_writenp()
1113 np->r_flags |= RMODINPROGRESS; in smbfs_writenp()
1114 np->r_modaddr = (offset & MAXBMASK); in smbfs_writenp()
1115 mutex_exit(&np->r_statelock); in smbfs_writenp()
1135 mutex_enter(&np->r_statelock); in smbfs_writenp()
1136 if (np->r_size < uio->uio_loffset) in smbfs_writenp()
1137 np->r_size = uio->uio_loffset; in smbfs_writenp()
1138 np->r_flags &= ~RMODINPROGRESS; in smbfs_writenp()
1139 np->r_flags |= RDIRTY; in smbfs_writenp()
1140 mutex_exit(&np->r_statelock); in smbfs_writenp()
1254 smbnode_t *np = VTOSMB(bp->b_vp); in smbfs_bio() local
1255 smbmntinfo_t *smi = np->n_mount; in smbfs_bio()
1274 mutex_enter(&np->r_statelock); in smbfs_bio()
1275 if (offset >= np->r_size) { in smbfs_bio()
1276 mutex_exit(&np->r_statelock); in smbfs_bio()
1283 if (endoff > np->r_size) { in smbfs_bio()
1284 past_eof = (size_t)(endoff - np->r_size); in smbfs_bio()
1288 mutex_exit(&np->r_statelock); in smbfs_bio()
1302 if (smbfs_rw_enter_sig(&np->r_lkserlock, RW_READER, in smbfs_bio()
1311 error = smb_rwuio(np->n_fid, UIO_READ, in smbfs_bio()
1326 error = smb_rwuio(np->n_fid, UIO_WRITE, in smbfs_bio()
1336 (void) smbfsflush(np, &scred); in smbfs_bio()
1344 mutex_enter(&np->r_statelock); in smbfs_bio()
1346 np->r_flags |= RSTALE; in smbfs_bio()
1347 if (!np->r_error) in smbfs_bio()
1348 np->r_error = error; in smbfs_bio()
1349 mutex_exit(&np->r_statelock); in smbfs_bio()
1356 smbfs_rw_exit(&np->r_lkserlock); in smbfs_bio()
1359 smbfs_attrcache_remove(np); in smbfs_bio()
1440 smbnode_t *np; in smbfs_getattr() local
1461 np = VTOSMB(vp); in smbfs_getattr()
1465 mutex_enter(&np->r_statelock); in smbfs_getattr()
1467 vap->va_size = np->r_size; in smbfs_getattr()
1472 mutex_exit(&np->r_statelock); in smbfs_getattr()
1485 ((np->r_flags & RDIRTY) != 0)) { in smbfs_getattr()
1486 mutex_enter(&np->r_statelock); in smbfs_getattr()
1487 np->r_gcount++; in smbfs_getattr()
1488 mutex_exit(&np->r_statelock); in smbfs_getattr()
1490 mutex_enter(&np->r_statelock); in smbfs_getattr()
1492 if (!np->r_error) in smbfs_getattr()
1493 np->r_error = error; in smbfs_getattr()
1495 if (--np->r_gcount == 0) in smbfs_getattr()
1496 cv_broadcast(&np->r_cv); in smbfs_getattr()
1497 mutex_exit(&np->r_statelock); in smbfs_getattr()
1590 smbnode_t *np = VTOSMB(vp); in smbfssetattr() local
1591 smbmntinfo_t *smi = np->n_mount; in smbfssetattr()
1609 if (np->n_flag & N_XATTR) { in smbfssetattr()
1627 ((np->r_flags & RDIRTY) || in smbfssetattr()
1628 np->r_count > 0 || in smbfssetattr()
1629 np->r_mapcnt > 0)) { in smbfssetattr()
1633 mutex_enter(&np->r_statelock); in smbfssetattr()
1634 if (!np->r_error) in smbfssetattr()
1635 np->r_error = error; in smbfssetattr()
1636 mutex_exit(&np->r_statelock); in smbfssetattr()
1656 dosattr = xvattr_to_dosattr(np, vap); in smbfssetattr()
1679 error = smbfs_smb_tmpopen(np, rights, &scred, &fid); in smbfssetattr()
1682 error, np->n_rpath); in smbfssetattr()
1709 error, np->n_rpath); in smbfssetattr()
1716 mutex_enter(&np->r_statelock); in smbfssetattr()
1717 np->r_size = vap->va_size; in smbfssetattr()
1718 np->n_flag |= (NFLUSHWIRE | NATTRCHANGED); in smbfssetattr()
1719 mutex_exit(&np->r_statelock); in smbfssetattr()
1740 error, np->n_rpath); in smbfssetattr()
1748 smbfs_smb_tmpclose(np, fid); in smbfssetattr()
1757 smbfs_attrcache_remove(np); in smbfssetattr()
1787 xvattr_to_dosattr(smbnode_t *np, struct vattr *vap) in xvattr_to_dosattr() argument
1791 uint32_t attr = np->r_attr.fa_attr; in xvattr_to_dosattr()
1992 smbnode_t *np; in smbfs_fsync() local
1995 np = VTOSMB(vp); in smbfs_fsync()
2015 if (smbfs_rw_enter_sig(&np->r_lkserlock, RW_READER, SMBINTR(vp))) in smbfs_fsync()
2019 error = smbfsflush(np, &scred); in smbfs_fsync()
2022 smbfs_rw_exit(&np->r_lkserlock); in smbfs_fsync()
2028 smbfsflush(smbnode_t *np, struct smb_cred *scrp) in smbfsflush() argument
2030 struct smb_share *ssp = np->n_mount->smi_share; in smbfsflush()
2035 ASSERT(smbfs_rw_lock_held(&np->r_lkserlock, RW_READER)); in smbfsflush()
2037 if (!(np->n_flag & NFLUSHWIRE)) in smbfsflush()
2039 if (np->n_fidrefs == 0) in smbfsflush()
2041 if ((fhp = np->n_fid) == NULL) in smbfsflush()
2051 mutex_enter(&np->r_statelock); in smbfsflush()
2052 np->n_flag &= ~NFLUSHWIRE; in smbfsflush()
2053 mutex_exit(&np->r_statelock); in smbfsflush()
2066 smbnode_t *np = VTOSMB(vp); in smbfs_inactive() local
2091 mutex_enter(&np->r_statelock); in smbfs_inactive()
2092 while (np->r_count > 0) in smbfs_inactive()
2093 cv_wait(&np->r_cv, &np->r_statelock); in smbfs_inactive()
2094 mutex_exit(&np->r_statelock); in smbfs_inactive()
2100 if ((np->r_flags & RDIRTY) && !np->r_error) { in smbfs_inactive()
2103 mutex_enter(&np->r_statelock); in smbfs_inactive()
2104 if (!np->r_error) in smbfs_inactive()
2105 np->r_error = error; in smbfs_inactive()
2106 mutex_exit(&np->r_statelock); in smbfs_inactive()
2126 (void) smbfs_rw_enter_sig(&np->r_lkserlock, RW_WRITER, 0); in smbfs_inactive()
2129 switch (np->n_ovtype) { in smbfs_inactive()
2135 if (np->n_dirrefs == 0) in smbfs_inactive()
2138 np->n_dirrefs, np->n_rpath); in smbfs_inactive()
2140 np->n_dirrefs = 1; in smbfs_inactive()
2141 smbfs_rele_fid(np, &scred); in smbfs_inactive()
2145 if (np->n_fidrefs == 0) in smbfs_inactive()
2148 np->n_fidrefs, np->n_rpath); in smbfs_inactive()
2150 np->n_fidrefs = 1; in smbfs_inactive()
2151 smbfs_rele_fid(np, &scred); in smbfs_inactive()
2155 SMBVDEBUG("bad n_ovtype %d\n", np->n_ovtype); in smbfs_inactive()
2156 np->n_ovtype = VNON; in smbfs_inactive()
2161 smbfs_rw_exit(&np->r_lkserlock); in smbfs_inactive()
2170 if ((np->n_flag & N_XATTR) != 0 && in smbfs_inactive()
2171 (np->r_flags & RHASHED) != 0) in smbfs_inactive()
2172 smbfs_rmhash(np); in smbfs_inactive()
2174 smbfs_addfree(np); in smbfs_inactive()
2245 smbnode_t *np; in smbfslookup() local
2372 np = smbfs_node_findcreate(smi, in smbfslookup()
2375 ASSERT(np != NULL); in smbfslookup()
2376 vp = SMBTOV(np); in smbfslookup()
2464 smbnode_t *np; in smbfslookup_cache() local
2498 np = smbfs_node_findcreate(dnp->n_mount, in smbfslookup_cache()
2501 if (np == NULL) { in smbfslookup_cache()
2511 vp = SMBTOV(np); in smbfslookup_cache()
2512 if (np->r_attrtime <= gethrtime()) { in smbfslookup_cache()
2550 smbnode_t *np; in smbfs_create() local
2642 np = VTOSMB(vp); in smbfs_create()
2648 mutex_enter(&np->r_statelock); in smbfs_create()
2649 if (np->r_size > MAXOFF32_T) in smbfs_create()
2651 mutex_exit(&np->r_statelock); in smbfs_create()
2847 smbnode_t *np = VTOSMB(vp); in smbfsremove() local
2848 smbmntinfo_t *smi = np->n_mount; in smbfsremove()
2867 ((np->r_flags & RDIRTY) || np->r_count > 0)) { in smbfsremove()
2871 mutex_enter(&np->r_statelock); in smbfsremove()
2872 if (!np->r_error) in smbfsremove()
2873 np->r_error = error; in smbfsremove()
2874 mutex_exit(&np->r_statelock); in smbfsremove()
2882 error = smbfs_smb_tmpopen(np, STD_RIGHT_DELETE_ACCESS, in smbfsremove()
2886 error, np->n_rpath); in smbfsremove()
2896 if (vp->v_type != VDIR && vp->v_count > 1 && np->n_fidrefs > 0) { in smbfsremove()
2899 error = smbfs_smb_rename(dnp, np, dnp, tmpname, tnlen, in smbfsremove()
2903 error, np->n_rpath, tmpname); in smbfsremove()
2917 error, np->n_rpath); in smbfsremove()
2929 oldname = np->n_rpath + (dnp->n_rplen + 1); in smbfsremove()
2930 oldnlen = np->n_rplen - (dnp->n_rplen + 1); in smbfsremove()
2931 err2 = smbfs_smb_rename(dnp, np, dnp, oldname, oldnlen, in smbfsremove()
2934 err2, tmpname, np->n_rpath); in smbfsremove()
2940 smbfs_attrcache_remove(np); in smbfsremove()
2941 smbfs_attrcache_prune(np); in smbfsremove()
2947 smbfs_smb_tmpclose(np, fid); in smbfsremove()
2951 smbfs_rmhash(np); in smbfsremove()
3286 struct smbnode *np; in smbfs_rmdir() local
3312 np = VTOSMB(vp); in smbfs_rmdir()
3348 mutex_enter(&np->r_statelock); in smbfs_rmdir()
3350 mutex_exit(&np->r_statelock); in smbfs_rmdir()
3352 smbfs_rmhash(np); in smbfs_rmdir()
3382 struct smbnode *np = VTOSMB(vp); in smbfs_readdir() local
3401 ASSERT(smbfs_rw_lock_held(&np->r_rwlock, RW_READER)); in smbfs_readdir()
3411 if (smbfs_rw_enter_sig(&np->r_lkserlock, RW_WRITER, SMBINTR(vp))) in smbfs_readdir()
3416 smbfs_rw_exit(&np->r_lkserlock); in smbfs_readdir()
3441 struct smbnode *np = VTOSMB(vp); in smbfs_readvdir() local
3453 ASSERT(smbfs_rw_lock_held(&np->r_lkserlock, RW_WRITER)); in smbfs_readvdir()
3458 if (np->n_dirseq == NULL) in smbfs_readvdir()
3470 SMBVDEBUG("dirname='%s'\n", np->n_rpath); in smbfs_readvdir()
3508 dp->d_ino = np->n_ino + offset; /* fiction */ in smbfs_readvdir()
3533 if (offset < np->n_dirofs) { in smbfs_readvdir()
3535 offset, np->n_dirofs); in smbfs_readvdir()
3536 error = smbfs_smb_findopen(np, "*", 1, in smbfs_readvdir()
3544 (void) smbfs_smb_findclose(np->n_dirseq, &scred); in smbfs_readvdir()
3546 np->n_dirseq = ctx; in smbfs_readvdir()
3547 np->n_dirofs = FIRST_DIROFS; in smbfs_readvdir()
3549 ctx = np->n_dirseq; in smbfs_readvdir()
3555 while (np->n_dirofs < offset) { in smbfs_readvdir()
3559 np->n_dirofs++; in smbfs_readvdir()
3574 np->n_dirofs++; in smbfs_readvdir()
3673 smbnode_t *np = VTOSMB(vp); in smbfs_rwlock() local
3676 (void) smbfs_rw_enter_sig(&np->r_rwlock, RW_READER, FALSE); in smbfs_rwlock()
3681 (void) smbfs_rw_enter_sig(&np->r_rwlock, RW_WRITER, FALSE); in smbfs_rwlock()
3689 smbnode_t *np = VTOSMB(vp); in smbfs_rwunlock() local
3691 smbfs_rw_exit(&np->r_rwlock); in smbfs_rwunlock()
3742 smbnode_t *np; in smbfs_getpage() local
3746 np = VTOSMB(vp); in smbfs_getpage()
3769 mutex_enter(&np->r_statelock); in smbfs_getpage()
3780 while (np->r_gcount > 0) in smbfs_getpage()
3781 cv_wait(&np->r_cv, &np->r_statelock); in smbfs_getpage()
3789 if (off + len > np->r_size + PAGEOFFSET && seg != segkmap) { in smbfs_getpage()
3790 mutex_exit(&np->r_statelock); in smbfs_getpage()
3794 mutex_exit(&np->r_statelock); in smbfs_getpage()
3808 mutex_enter(&np->r_statelock); in smbfs_getpage()
3809 np->r_flags |= RSTALE; in smbfs_getpage()
3810 if (!np->r_error) in smbfs_getpage()
3811 np->r_error = (error); in smbfs_getpage()
3812 mutex_exit(&np->r_statelock); in smbfs_getpage()
3834 smbnode_t *np; in smbfs_getapage() local
3851 np = VTOSMB(vp); in smbfs_getapage()
3893 mutex_enter(&np->r_statelock); in smbfs_getapage()
3894 np->r_nextr = off + PAGESIZE; in smbfs_getapage()
3895 mutex_exit(&np->r_statelock); in smbfs_getapage()
3902 mutex_enter(&np->r_statelock); in smbfs_getapage()
3903 if (blkoff < np->r_size && in smbfs_getapage()
3904 blkoff + bsize >= np->r_size) { in smbfs_getapage()
3909 if (np->r_size <= off) { in smbfs_getapage()
3916 blksize = np->r_size - blkoff; in smbfs_getapage()
3918 (off != np->r_nextr && !readahead_issued)) { in smbfs_getapage()
3923 mutex_exit(&np->r_statelock); in smbfs_getapage()
3969 mutex_enter(&np->r_statelock); in smbfs_getapage()
3970 if (io_off >= np->r_size && seg == segkmap) { in smbfs_getapage()
3971 mutex_exit(&np->r_statelock); in smbfs_getapage()
3974 mutex_exit(&np->r_statelock); in smbfs_getapage()
4002 mutex_enter(&np->r_statelock); in smbfs_getapage()
4003 np->r_nextr = io_off + io_len; in smbfs_getapage()
4004 mutex_exit(&np->r_statelock); in smbfs_getapage()
4065 smbnode_t *np; in smbfs_putpage() local
4075 np = VTOSMB(vp); in smbfs_putpage()
4105 if ((np->r_flags & ROUTOFSPACE) || in smbfs_putpage()
4120 (np->r_flags & RDIRTY)) { in smbfs_putpage()
4121 mutex_enter(&np->r_statelock); in smbfs_putpage()
4122 rdirty = (np->r_flags & RDIRTY); in smbfs_putpage()
4123 np->r_flags &= ~RDIRTY; in smbfs_putpage()
4124 mutex_exit(&np->r_statelock); in smbfs_putpage()
4142 mutex_enter(&np->r_statelock); in smbfs_putpage()
4143 np->r_flags |= RDIRTY; in smbfs_putpage()
4144 mutex_exit(&np->r_statelock); in smbfs_putpage()
4156 mutex_enter(&np->r_statelock); in smbfs_putpage()
4157 if (io_off >= np->r_size) { in smbfs_putpage()
4158 mutex_exit(&np->r_statelock); in smbfs_putpage()
4161 mutex_exit(&np->r_statelock); in smbfs_putpage()
4213 smbnode_t *np; in smbfs_putapage() local
4221 np = VTOSMB(vp); in smbfs_putapage()
4278 if (np->r_flags & RMODINPROGRESS) { in smbfs_putapage()
4279 mutex_enter(&np->r_statelock); in smbfs_putapage()
4280 if ((np->r_flags & RMODINPROGRESS) && in smbfs_putapage()
4281 np->r_modaddr + MAXBSIZE > io_off && in smbfs_putapage()
4282 np->r_modaddr < io_off + io_len) { in smbfs_putapage()
4302 np->r_flags |= RDIRTY; in smbfs_putapage()
4303 mutex_exit(&np->r_statelock); in smbfs_putapage()
4310 mutex_exit(&np->r_statelock); in smbfs_putapage()
4327 if (!(np->r_flags & ROUTOFSPACE)) { in smbfs_putapage()
4328 mutex_enter(&np->r_statelock); in smbfs_putapage()
4329 np->r_flags |= ROUTOFSPACE; in smbfs_putapage()
4330 mutex_exit(&np->r_statelock); in smbfs_putapage()
4358 else if (np->r_flags & ROUTOFSPACE) { in smbfs_putapage()
4359 mutex_enter(&np->r_statelock); in smbfs_putapage()
4360 np->r_flags &= ~ROUTOFSPACE; in smbfs_putapage()
4361 mutex_exit(&np->r_statelock); in smbfs_putapage()
4386 smbnode_t *np; in smbfs_invalidate_pages() local
4388 np = VTOSMB(vp); in smbfs_invalidate_pages()
4390 mutex_enter(&np->r_statelock); in smbfs_invalidate_pages()
4391 while (np->r_flags & RTRUNCATE) in smbfs_invalidate_pages()
4392 cv_wait(&np->r_cv, &np->r_statelock); in smbfs_invalidate_pages()
4393 np->r_flags |= RTRUNCATE; in smbfs_invalidate_pages()
4396 np->r_flags &= ~RDIRTY; in smbfs_invalidate_pages()
4397 if (!(np->r_flags & RSTALE)) in smbfs_invalidate_pages()
4398 np->r_error = 0; in smbfs_invalidate_pages()
4401 mutex_exit(&np->r_statelock); in smbfs_invalidate_pages()
4408 mutex_enter(&np->r_statelock); in smbfs_invalidate_pages()
4409 np->r_flags &= ~RTRUNCATE; in smbfs_invalidate_pages()
4410 cv_broadcast(&np->r_cv); in smbfs_invalidate_pages()
4411 mutex_exit(&np->r_statelock); in smbfs_invalidate_pages()
4426 smbnode_t *np; in smbfs_map() local
4430 np = VTOSMB(vp); in smbfs_map()
4440 if (np->n_fid == NULL) in smbfs_map()
4480 if (smbfs_rw_enter_sig(&np->r_rwlock, RW_WRITER, SMBINTR(vp))) in smbfs_map()
4482 atomic_inc_uint(&np->r_inmap); in smbfs_map()
4483 smbfs_rw_exit(&np->r_rwlock); in smbfs_map()
4485 if (smbfs_rw_enter_sig(&np->r_lkserlock, RW_WRITER, SMBINTR(vp))) { in smbfs_map()
4486 atomic_dec_uint(&np->r_inmap); in smbfs_map()
4527 smbfs_rw_exit(&np->r_lkserlock); in smbfs_map()
4528 atomic_dec_uint(&np->r_inmap); in smbfs_map()
4545 smbnode_t *np = VTOSMB(vp); in smbfs_addmap() local
4552 mutex_enter(&np->r_statelock); in smbfs_addmap()
4553 if (np->r_mapcnt == 0) in smbfs_addmap()
4555 np->r_mapcnt += btopr(len); in smbfs_addmap()
4556 mutex_exit(&np->r_statelock); in smbfs_addmap()
4559 (void) smbfs_rw_enter_sig(&np->r_lkserlock, RW_WRITER, 0); in smbfs_addmap()
4560 np->n_fidrefs++; in smbfs_addmap()
4561 smbfs_rw_exit(&np->r_lkserlock); in smbfs_addmap()
4596 smbnode_t *np = VTOSMB(vp); in smbfs_delmap() local
4629 mutex_enter(&np->r_statelock); in smbfs_delmap()
4630 np->r_mapcnt -= btopr(len); in smbfs_delmap()
4631 ASSERT(np->r_mapcnt >= 0); in smbfs_delmap()
4632 if (np->r_mapcnt == 0) in smbfs_delmap()
4634 mutex_exit(&np->r_statelock); in smbfs_delmap()
4653 smbnode_t *np; in smbfs_delmap_async() local
4658 np = VTOSMB(vp); in smbfs_delmap_async()
4674 mutex_enter(&np->r_statelock); in smbfs_delmap_async()
4675 np->r_flags |= RDIRTY; in smbfs_delmap_async()
4676 mutex_exit(&np->r_statelock); in smbfs_delmap_async()
4686 if ((np->r_flags & RDIRECTIO) || (smi->smi_flags & SMI_DIRECTIO)) in smbfs_delmap_async()
4697 (void) smbfs_rw_enter_sig(&np->r_lkserlock, RW_WRITER, 0); in smbfs_delmap_async()
4700 smbfs_rele_fid(np, &scred); in smbfs_delmap_async()
4703 smbfs_rw_exit(&np->r_lkserlock); in smbfs_delmap_async()