Lines Matching refs:ip

246 ufs_delete(struct ufsvfs *ufsvfsp, struct inode *ip, int dolockfs)  in ufs_delete()  argument
249 struct vnode *vp = ITOV(ip); in ufs_delete()
252 int dorwlock = ((ip->i_mode & IFMT) == IFREG); in ufs_delete()
262 if (ULOCKFS_IS_NOIDEL(ITOUL(ip))) { in ufs_delete()
264 delq_info->delq_unreclaimed_blocks -= ip->i_blocks; in ufs_delete()
271 if ((vp->v_count > 1) || (ip->i_mode == 0)) { in ufs_delete()
273 delq_info->delq_unreclaimed_blocks -= ip->i_blocks; in ufs_delete()
302 rw_enter(&ip->i_rwlock, RW_WRITER); in ufs_delete()
307 if (ip->i_oeftflag != 0) { in ufs_delete()
309 trans_size = (int)TOP_REMOVE_SIZE(ip)); in ufs_delete()
310 rw_enter(&ip->i_contents, RW_WRITER); in ufs_delete()
311 err = ufs_iget(ip->i_vfs, ip->i_oeftflag, in ufs_delete()
346 ip->i_oeftflag = 0; in ufs_delete()
347 rw_exit(&ip->i_contents); in ufs_delete()
350 dnlc_remove(ITOV(ip), XATTR_DIR_NAME); in ufs_delete()
353 if ((ip->i_mode & IFMT) == IFATTRDIR) { in ufs_delete()
354 ufs_attr_purge(ip); in ufs_delete()
357 (void) TRANS_ITRUNC(ip, (u_offset_t)0, I_FREE | I_ACCT, CRED()); in ufs_delete()
363 trans_size = TOP_IFREE_SIZE(ip); in ufs_delete()
367 rw_enter(&ip->i_contents, RW_WRITER); in ufs_delete()
368 TRANS_INODE(ufsvfsp, ip); in ufs_delete()
369 mode = ip->i_mode; in ufs_delete()
370 ip->i_mode = 0; in ufs_delete()
371 ip->i_rdev = 0; in ufs_delete()
372 ip->i_ordev = 0; in ufs_delete()
373 ip->i_flag |= IMOD; in ufs_delete()
374 if (ip->i_ufs_acl) { in ufs_delete()
375 (void) ufs_si_free(ip->i_ufs_acl, vp->v_vfsp, CRED()); in ufs_delete()
376 ip->i_ufs_acl = NULL; in ufs_delete()
377 ip->i_shadow = 0; in ufs_delete()
392 ufs_ifree(ip, ip->i_number, mode); in ufs_delete()
397 /* change */ -1, ip, (uid_t)ip->i_uid, 0, CRED(), in ufs_delete()
399 dqrele(ip->i_dquot); in ufs_delete()
400 ip->i_dquot = NULL; in ufs_delete()
401 ip->i_flag &= ~(IDEL | IDIRECTIO); in ufs_delete()
402 ip->i_cflags = 0; in ufs_delete()
404 ufs_iupdat(ip, I_SYNC); in ufs_delete()
410 rw_exit(&ip->i_contents); in ufs_delete()
413 rw_exit(&ip->i_rwlock); in ufs_delete()
448 struct inode *ip; in ufs_thread_delete() local
467 if (ne && (ip = uq->uq_ihead)) { in ufs_thread_delete()
474 if ((uq->uq_ihead = ip->i_freef) == ip) in ufs_thread_delete()
476 ip->i_freef->i_freeb = ip->i_freeb; in ufs_thread_delete()
477 ip->i_freeb->i_freef = ip->i_freef; in ufs_thread_delete()
478 ip->i_freef = ip; in ufs_thread_delete()
479 ip->i_freeb = ip; in ufs_thread_delete()
482 ufs_delete(ufsvfsp, ip, 1); in ufs_thread_delete()
501 struct inode *ip; in ufs_delete_drain() local
523 while (!done && (ip = uq->uq_ihead)) { in ufs_delete_drain()
528 if ((uq->uq_ihead = ip->i_freef) == ip) in ufs_delete_drain()
530 ip->i_freef->i_freeb = ip->i_freeb; in ufs_delete_drain()
531 ip->i_freeb->i_freef = ip->i_freef; in ufs_delete_drain()
532 ip->i_freef = ip; in ufs_delete_drain()
533 ip->i_freeb = ip; in ufs_delete_drain()
536 ufs_delete(ufsvfsp, ip, dolockfs); in ufs_delete_drain()
646 ufs_idle_free(struct inode *ip) in ufs_idle_free() argument
651 struct ufsvfs *ufsvfsp = ip->i_ufsvfs; in ufs_idle_free()
652 struct vnode *vp = ITOV(ip); in ufs_idle_free()
662 pages = (ip->i_mode && vn_has_cached_data(vp) && vp->v_type != VCHR); in ufs_idle_free()
668 if ((ip->i_flag & ISTALE) == 0) { in ufs_idle_free()
669 (void) TRANS_SYNCIP(ip, B_ASYNC, I_ASYNC, TOP_SYNCIP_FREE); in ufs_idle_free()
670 (void) TRANS_SYNCIP(ip, in ufs_idle_free()
678 ASSERT(ip->i_number != 0); in ufs_idle_free()
679 hno = INOHASH(ip->i_number); in ufs_idle_free()
697 vn_modified = (ip->i_flag & (IMOD|IMODACC|IACC|ICHG|IUPD|IATTCHG)); in ufs_idle_free()
701 ((ip->i_flag & ISTALE) == 0))) { in ufs_idle_free()
727 remque(ip); in ufs_idle_free()
732 if ((ip->i_flag & ISTALE) == 0 && ip->i_dquot) { in ufs_idle_free()
733 TRANS_DQRELE(ufsvfsp, ip->i_dquot); in ufs_idle_free()
734 ip->i_dquot = NULL; in ufs_idle_free()
736 if ((ip->i_flag & ISTALE) && in ufs_idle_free()
747 ufs_si_del(ip); in ufs_idle_free()
762 ufs_free_inode(ip); in ufs_idle_free()
863 struct inode *ip; in ufs_idle_some() local
876 ip = ufs_junk_iq[junk_rotor].i_freef; in ufs_idle_some()
877 ASSERT(ip->i_flag & IJUNKIQ); in ufs_idle_some()
883 ip = ufs_useful_iq[useful_rotor].i_freef; in ufs_idle_some()
884 ASSERT(!(ip->i_flag & IJUNKIQ)); in ufs_idle_some()
893 vp = ITOV(ip); in ufs_idle_some()
896 rw_enter(&ip->i_contents, RW_WRITER); in ufs_idle_some()
902 if (ufs_rmidle(ip)) { in ufs_idle_some()
903 rw_exit(&ip->i_contents); in ufs_idle_some()
904 ufs_idle_free(ip); in ufs_idle_some()
906 rw_exit(&ip->i_contents); in ufs_idle_some()
919 struct inode *ip, *nip; in ufs_idle_drain() local
928 for (ip = ufs_junk_iq[i].i_freef; in ufs_idle_drain()
929 ip != (inode_t *)&ufs_junk_iq[i]; in ufs_idle_drain()
930 ip = ip->i_freef) { in ufs_idle_drain()
931 if (ip->i_vfs == vfsp || vfsp == NULL) { in ufs_idle_drain()
933 VN_HOLD(ITOV(ip)); in ufs_idle_drain()
935 rw_enter(&ip->i_contents, RW_WRITER); in ufs_idle_drain()
941 if (ufs_rmidle(ip)) { in ufs_idle_drain()
942 rw_exit(&ip->i_contents); in ufs_idle_drain()
943 ip->i_freef = ianchor; in ufs_idle_drain()
944 ianchor = ip; in ufs_idle_drain()
946 rw_exit(&ip->i_contents); in ufs_idle_drain()
947 VN_RELE(ITOV(ip)); in ufs_idle_drain()
950 ip = (inode_t *)&ufs_junk_iq[i]; in ufs_idle_drain()
960 for (ip = ufs_useful_iq[i].i_freef; in ufs_idle_drain()
961 ip != (inode_t *)&ufs_useful_iq[i]; in ufs_idle_drain()
962 ip = ip->i_freef) { in ufs_idle_drain()
963 if (ip->i_vfs == vfsp || vfsp == NULL) { in ufs_idle_drain()
965 VN_HOLD(ITOV(ip)); in ufs_idle_drain()
967 rw_enter(&ip->i_contents, RW_WRITER); in ufs_idle_drain()
973 if (ufs_rmidle(ip)) { in ufs_idle_drain()
974 rw_exit(&ip->i_contents); in ufs_idle_drain()
975 ip->i_freef = ianchor; in ufs_idle_drain()
976 ianchor = ip; in ufs_idle_drain()
978 rw_exit(&ip->i_contents); in ufs_idle_drain()
979 VN_RELE(ITOV(ip)); in ufs_idle_drain()
982 ip = (inode_t *)&ufs_useful_iq[i]; in ufs_idle_drain()
991 for (ip = ianchor; ip; ip = nip) { in ufs_idle_drain()
992 nip = ip->i_freef; in ufs_idle_drain()
993 ip->i_freef = ip; in ufs_idle_drain()
994 ufs_idle_free(ip); in ufs_idle_drain()
1013 struct inode *ip; in ufs_thread_reclaim() local
1097 if (ufs_iget(vfsp, ino, &ip, CRED())) in ufs_thread_reclaim()
1100 VN_RELE(ITOV(ip)); in ufs_thread_reclaim()