Lines Matching refs:udf_node

68 #define VTOI(vnode) ((struct udf_node *) (vnode)->v_data)
71 static int udf_do_readlink(struct udf_node *udf_node, uint64_t filesize,
85 struct udf_node *udf_node = VTOI(vp); in udf_inactive() local
90 if (udf_node == NULL) { in udf_inactive()
98 if (udf_node->fe) { in udf_inactive()
99 refcnt = udf_rw16(udf_node->fe->link_cnt); in udf_inactive()
101 assert(udf_node->efe); in udf_inactive()
102 refcnt = udf_rw16(udf_node->efe->link_cnt); in udf_inactive()
108 udf_node->i_flags = 0; in udf_inactive()
118 if (udf_node->i_flags & (IN_CHANGE | IN_UPDATE | IN_MODIFIED)) in udf_inactive()
133 struct udf_node *udf_node = VTOI(vp); in udf_reclaim() local
138 DPRINTF(NODE, ("udf_reclaim called for node %p\n", udf_node)); in udf_reclaim()
140 if (udf_node == NULL) { in udf_reclaim()
149 if (udf_node->fe) { in udf_reclaim()
150 refcnt = udf_rw16(udf_node->fe->link_cnt); in udf_reclaim()
152 assert(udf_node->efe); in udf_reclaim()
153 refcnt = udf_rw16(udf_node->efe->link_cnt); in udf_reclaim()
159 udf_delete_node(udf_node); in udf_reclaim()
166 mutex_enter(&udf_node->node_mutex); in udf_reclaim()
167 while ((volatile int) udf_node->outstanding_nodedscr > 0) { in udf_reclaim()
169 cv_timedwait(&udf_node->node_lock, &udf_node->node_mutex, hz/8); in udf_reclaim()
171 mutex_exit(&udf_node->node_mutex); in udf_reclaim()
174 udf_dispose_node(udf_node); in udf_reclaim()
195 struct udf_node *udf_node = VTOI(vp); in udf_read() local
225 assert(udf_node); in udf_read()
226 assert(udf_node->fe || udf_node->efe); in udf_read()
229 if (udf_node->fe) { in udf_read()
230 fe = udf_node->fe; in udf_read()
233 assert(udf_node->efe); in udf_read()
234 efe = udf_node->efe; in udf_read()
260 udf_node->i_flags |= IN_ACCESS; in udf_read()
290 struct udf_node *udf_node = VTOI(vp); in udf_write() local
322 assert(udf_node); in udf_write()
323 assert(udf_node->fe || udf_node->efe); in udf_write()
326 if (udf_node->fe) { in udf_write()
327 fe = udf_node->fe; in udf_write()
330 assert(udf_node->efe); in udf_write()
331 efe = udf_node->efe; in udf_write()
344 error = udf_grow_node(udf_node, uio->uio_offset + uio->uio_resid); in udf_write()
394 udf_node->i_flags |= IN_CHANGE | IN_UPDATE; in udf_write()
396 udf_node->i_flags |= IN_ACCESS; in udf_write()
444 struct udf_node *udf_node = VTOI(vp); in udf_trivial_bmap() local
448 lb_size = udf_rw32(udf_node->ump->logical_vol->lb_size); in udf_trivial_bmap()
477 struct udf_node *udf_node = VTOI(vp); in udf_vfsstrategy() local
490 lb_size = udf_rw32(udf_node->ump->logical_vol->lb_size); in udf_vfsstrategy()
510 udf_read_filebuf(udf_node, bp); in udf_vfsstrategy()
517 udf_write_filebuf(udf_node, bp); in udf_vfsstrategy()
538 struct udf_node *udf_node = VTOI(vp); in udf_readdir() local
554 if (udf_node->fe) { in udf_readdir()
555 fe = udf_node->fe; in udf_readdir()
558 assert(udf_node->efe); in udf_readdir()
559 efe = udf_node->efe; in udf_readdir()
572 dirent->d_fileno = udf_get_node_id(&udf_node->loc); in udf_readdir()
586 lb_size = udf_rw32(udf_node->ump->logical_vol->lb_size); in udf_readdir()
662 struct udf_node *dir_node, *res_node; in udf_lookup()
869 struct udf_node *udf_node = VTOI(vp); in udf_getattr() local
870 struct udf_mount *ump = udf_node->ump; in udf_getattr()
871 struct file_entry *fe = udf_node->fe; in udf_getattr()
872 struct extfile_entry *efe = udf_node->efe; in udf_getattr()
888 udf_itimes(udf_node, NULL, NULL, NULL); in udf_getattr()
906 error = udf_extattr_search_intern(udf_node, in udf_getattr()
915 assert(udf_node->efe); in udf_getattr()
937 vap->va_mode = udf_getaccessmode(udf_node); in udf_getattr()
942 vap->va_fileid = udf_get_node_id(&udf_node->loc); /* inode hash XXX */ in udf_getattr()
944 vap->va_blocksize = udf_node->ump->discinfo.sector_size; /* wise? */ in udf_getattr()
961 error = udf_do_readlink(udf_node, filesize, targetbuf, &length); in udf_getattr()
978 vap->va_bytes = blkssize * udf_node->ump->discinfo.sector_size; in udf_getattr()
984 error = udf_extattr_search_intern(udf_node, in udf_getattr()
1010 struct udf_node *udf_node = VTOI(vp); in udf_chown() local
1018 if (udf_node->flags & (IMMUTABLE | APPEND)) in udf_chown()
1026 udf_getownership(udf_node, &uid, &gid); in udf_chown()
1047 udf_setownership(udf_node, new_uid, new_gid); in udf_chown()
1050 udf_node->i_flags |= IN_CHANGE; in udf_chown()
1059 struct udf_node *udf_node = VTOI(vp); in udf_chmod() local
1067 if (udf_node->flags & (IMMUTABLE | APPEND)) in udf_chmod()
1075 udf_getownership(udf_node, &uid, &gid); in udf_chmod()
1084 udf_setaccessmode(udf_node, mode); in udf_chmod()
1087 udf_node->i_flags |= IN_CHANGE; in udf_chmod()
1097 struct udf_node *udf_node = VTOI(vp); in udf_chsize() local
1133 error = udf_resize_node(udf_node, newsize, &extended); in udf_chsize()
1137 udf_node->i_flags |= IN_CHANGE | IN_MODIFY; in udf_chsize()
1139 udf_node->i_flags |= IN_ACCESS; in udf_chsize()
1167 struct udf_node *udf_node = VTOI(vp); in udf_chtimes() local
1175 if (udf_node->flags & (IMMUTABLE | APPEND)) in udf_chtimes()
1183 udf_getownership(udf_node, &uid, &gid); in udf_chtimes()
1194 udf_node->i_flags |= IN_ACCESS; in udf_chtimes()
1196 udf_node->i_flags |= IN_CHANGE | IN_UPDATE; in udf_chtimes()
1198 udf_node->i_flags |= IN_ACCESS; in udf_chtimes()
1320 if (udf_node) in udf_pathconf()
1370 struct udf_node *udf_node = VTOI(vp); in udf_close() local
1375 udf_node = udf_node; /* shut up gcc */ in udf_close()
1386 udf_itimes(udf_node, NULL, NULL, NULL); in udf_close()
1558 struct udf_node *udf_node, *dir_node; in udf_link() local
1569 udf_node = VTOI(vp); in udf_link()
1590 error = udf_dir_attach(dir_node->ump, dir_node, udf_node, &vap, cnp); in udf_link()
1602 udf_do_symlink(struct udf_node *udf_node, char *target) in udf_do_symlink() argument
1622 mntonname = udf_node->ump->vfs_mountp->mnt_stat.f_mntonname; in udf_do_symlink()
1676 &udf_node->ump->logical_vol->desc_charset); in udf_do_symlink()
1696 error = udf_grow_node(udf_node, pathlen); in udf_do_symlink()
1704 error = vn_rdwr(UIO_WRITE, udf_node->vnode, in udf_do_symlink()
1729 struct udf_node *dir_node; in udf_symlink()
1730 struct udf_node *udf_node; in udf_symlink() local
1739 udf_node = VTOI(*vpp); in udf_symlink()
1740 KASSERT(udf_node); in udf_symlink()
1741 error = udf_do_symlink(udf_node, ap->a_target); in udf_symlink()
1744 udf_dir_detach(udf_node->ump, dir_node, udf_node, cnp); in udf_symlink()
1755 udf_do_readlink(struct udf_node *udf_node, uint64_t filesize, in udf_do_readlink() argument
1771 error = vn_rdwr(UIO_READ, udf_node->vnode, in udf_do_readlink()
1787 mntonname = udf_node->ump->vfs_mountp->mnt_stat.f_mntonname; in udf_do_readlink()
1846 &udf_node->ump->logical_vol->desc_charset); in udf_do_readlink()
1891 struct udf_node *udf_node = VTOI(vp); in udf_readlink() local
1892 struct file_entry *fe = udf_node->fe; in udf_readlink()
1893 struct extfile_entry *efe = udf_node->efe; in udf_readlink()
1905 assert(udf_node->efe); in udf_readlink()
1912 error = udf_do_readlink(udf_node, filesize, targetbuf, &length); in udf_readlink()
1942 struct udf_node *dir_node = VTOI(dvp); in udf_remove()
1943 struct udf_node *udf_node = VTOI(vp); in udf_remove() local
1949 error = udf_dir_detach(ump, dir_node, udf_node, cnp); in udf_remove()
1952 if (udf_node->fe) { in udf_remove()
1954 udf_rw16(udf_node->fe->link_cnt); in udf_remove()
1956 KASSERT(udf_node->efe != NULL); in udf_remove()
1958 udf_rw16(udf_node->efe->link_cnt); in udf_remove()
1987 struct udf_node *dir_node = VTOI(dvp); in udf_rmdir()
1988 struct udf_node *udf_node = VTOI(vp); in udf_rmdir() local
1995 if (dir_node == udf_node) { in udf_rmdir()
2001 dirhash_get(&udf_node->dir_hash); in udf_rmdir()
2002 error = udf_dirhash_fill(udf_node); in udf_rmdir()
2004 dirhash_put(udf_node->dir_hash); in udf_rmdir()
2009 isempty = dirhash_dir_isempty(udf_node->dir_hash); in udf_rmdir()
2010 dirhash_put(udf_node->dir_hash); in udf_rmdir()
2018 error = udf_dir_detach(ump, dir_node, udf_node, cnp); in udf_rmdir()
2029 dirhash_purge(&udf_node->dir_hash); in udf_rmdir()
2030 udf_shrink_node(udf_node, 0); in udf_rmdir()
2054 struct udf_node *udf_node = VTOI(vp); in udf_fsync() local
2058 udf_node, in udf_fsync()
2068 if (udf_node == NULL) { in udf_fsync()
2078 udf_itimes(udf_node, NULL, NULL, NULL); in udf_fsync()
2089 flags = udf_node->i_flags & (IN_MODIFIED | IN_ACCESSED); in udf_fsync()
2096 DPRINTF(SYNC, ("udf_fsync %p, rejecting on v_numoutput\n", udf_node)); in udf_fsync()
2099 if (udf_node->outstanding_bufs > 0) { in udf_fsync()
2100 DPRINTF(SYNC, ("udf_fsync %p, rejecting on outstanding_bufs\n", udf_node)); in udf_fsync()
2103 if (udf_node->outstanding_nodedscr > 0) { in udf_fsync()
2104 DPRINTF(SYNC, ("udf_fsync %p, rejecting on outstanding_nodedscr\n", udf_node)); in udf_fsync()
2111 DPRINTF(SYNC, ("udf_fsync %p, waiting\n", udf_node)); in udf_fsync()
2114 DPRINTF(SYNC, ("udf_fsync %p, v_numoutput %d\n", udf_node, vp->v_numoutput)); in udf_fsync()
2118 DPRINTF(SYNC, ("udf_fsync %p, fin wait\n", udf_node)); in udf_fsync()
2122 DPRINTF(SYNC, ("udf_fsync %p, writeout node\n", udf_node)); in udf_fsync()
2123 error = udf_writeout_node(udf_node, wait); in udf_fsync()
2145 struct udf_node *udf_node = VTOI(vp); in udf_advlock() local
2153 if (udf_node->fe) { in udf_advlock()
2154 fe = udf_node->fe; in udf_advlock()
2157 assert(udf_node->efe); in udf_advlock()
2158 efe = udf_node->efe; in udf_advlock()
2162 return lf_advlock(ap, &udf_node->lockf, file_size); in udf_advlock()