Home | History | Annotate | Download | only in udf

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