Lines Matching refs:inode
221 struct lo_inode *inode = lo_inode(req, ino);
222 int ifd = inode->fd;
316 struct lo_inode *inode;
330 inode = lo_find(lo_data(req), &e->attr);
331 if (inode) {
338 inode = calloc(1, sizeof(struct lo_inode));
339 if (!inode)
342 inode->refcount = 1;
343 inode->fd = newfd;
344 inode->ino = e->attr.st_ino;
345 inode->dev = e->attr.st_dev;
350 next->prev = inode;
351 inode->next = next;
352 inode->prev = prev;
353 prev->next = inode;
356 e->ino = (uintptr_t) inode;
440 struct lo_inode *inode = lo_inode(req, ino);
449 sprintf(procname, "/proc/self/fd/%i", inode->fd);
455 res = fstatat(inode->fd, "", &e.attr, AT_EMPTY_PATH | AT_SYMLINK_NOFOLLOW);
460 inode->refcount++;
462 e.ino = (uintptr_t) inode;
512 static void unref_inode(struct lo_data *lo, struct lo_inode *inode, uint64_t n)
514 if (!inode)
518 assert(inode->refcount >= n);
519 inode->refcount -= n;
520 if (!inode->refcount) {
523 prev = inode->prev;
524 next = inode->next;
529 close(inode->fd);
530 free(inode);
540 struct lo_inode *inode = lo_inode(req, ino);
545 (unsigned long long) inode->refcount,
549 unref_inode(lo, inode, nlookup);
955 struct lo_inode *inode = lo_inode(req, ino);
968 sprintf(procname, "/proc/self/fd/%i", inode->fd);
1005 struct lo_inode *inode = lo_inode(req, ino);
1018 sprintf(procname, "/proc/self/fd/%i", inode->fd);
1055 struct lo_inode *inode = lo_inode(req, ino);
1068 sprintf(procname, "/proc/self/fd/%i", inode->fd);
1080 struct lo_inode *inode = lo_inode(req, ino);
1093 sprintf(procname, "/proc/self/fd/%i", inode->fd);