ip                 34 kernel/exec.c    struct inode *ip;
ip                 42 kernel/exec.c    if ((ip = namei(path)) == 0) {
ip                 46 kernel/exec.c    ilock(ip);
ip                 49 kernel/exec.c    if (readi(ip, 0, (uint64)&elf, 0, sizeof(elf)) != sizeof(elf))
ip                 61 kernel/exec.c      if (readi(ip, 0, (uint64)&ph, off, sizeof(ph)) != sizeof(ph))
ip                 76 kernel/exec.c      if (loadseg(pagetable, ph.vaddr, ip, ph.off, ph.filesz) < 0)
ip                 79 kernel/exec.c    iunlockput(ip);
ip                 81 kernel/exec.c    ip = 0;
ip                145 kernel/exec.c    if (ip) {
ip                146 kernel/exec.c      iunlockput(ip);
ip                157 kernel/exec.c  loadseg(pagetable_t pagetable, uint64 va, struct inode *ip, uint offset,
ip                171 kernel/exec.c      if (readi(ip, 0, (uint64)pa, offset + i, n) != n)
ip                 80 kernel/file.c      iput(ff.ip);
ip                 94 kernel/file.c      ilock(f->ip);
ip                 95 kernel/file.c      stati(f->ip, &st);
ip                 96 kernel/file.c      iunlock(f->ip);
ip                121 kernel/file.c      ilock(f->ip);
ip                122 kernel/file.c      if ((r = readi(f->ip, 1, addr, f->off, n)) > 0)
ip                124 kernel/file.c      iunlock(f->ip);
ip                161 kernel/file.c        ilock(f->ip);
ip                162 kernel/file.c        if ((r = writei(f->ip, 1, addr + i, f->off, n1)) > 0)
ip                164 kernel/file.c        iunlock(f->ip);
ip                  7 kernel/file.h    struct inode *ip;  // FD_INODE and FD_DEVICE
ip                228 kernel/fs.c    iupdate(struct inode *ip)
ip                233 kernel/fs.c      bp = bread(ip->dev, IBLOCK(ip->inum, sb));
ip                234 kernel/fs.c      dip = (struct dinode *)bp->data + ip->inum % IPB;
ip                235 kernel/fs.c      dip->type = ip->type;
ip                236 kernel/fs.c      dip->major = ip->major;
ip                237 kernel/fs.c      dip->minor = ip->minor;
ip                238 kernel/fs.c      dip->nlink = ip->nlink;
ip                239 kernel/fs.c      dip->size = ip->size;
ip                240 kernel/fs.c      memmove(dip->addrs, ip->addrs, sizeof(ip->addrs));
ip                251 kernel/fs.c      struct inode *ip, *empty;
ip                257 kernel/fs.c      for (ip = &itable.inode[0]; ip < &itable.inode[NINODE]; ip++) {
ip                258 kernel/fs.c        if (ip->ref > 0 && ip->dev == dev && ip->inum == inum) {
ip                259 kernel/fs.c          ip->ref++;
ip                261 kernel/fs.c          return ip;
ip                263 kernel/fs.c        if (empty == 0 && ip->ref == 0) // Remember empty slot.
ip                264 kernel/fs.c          empty = ip;
ip                271 kernel/fs.c      ip = empty;
ip                272 kernel/fs.c      ip->dev = dev;
ip                273 kernel/fs.c      ip->inum = inum;
ip                274 kernel/fs.c      ip->ref = 1;
ip                275 kernel/fs.c      ip->valid = 0;
ip                278 kernel/fs.c      return ip;
ip                284 kernel/fs.c    idup(struct inode *ip)
ip                287 kernel/fs.c      ip->ref++;
ip                289 kernel/fs.c      return ip;
ip                295 kernel/fs.c    ilock(struct inode *ip)
ip                300 kernel/fs.c      if (ip == 0 || ip->ref < 1)
ip                303 kernel/fs.c      acquiresleep(&ip->lock);
ip                305 kernel/fs.c      if (ip->valid == 0) {
ip                306 kernel/fs.c        bp = bread(ip->dev, IBLOCK(ip->inum, sb));
ip                307 kernel/fs.c        dip = (struct dinode *)bp->data + ip->inum % IPB;
ip                308 kernel/fs.c        ip->type = dip->type;
ip                309 kernel/fs.c        ip->major = dip->major;
ip                310 kernel/fs.c        ip->minor = dip->minor;
ip                311 kernel/fs.c        ip->nlink = dip->nlink;
ip                312 kernel/fs.c        ip->size = dip->size;
ip                313 kernel/fs.c        memmove(ip->addrs, dip->addrs, sizeof(ip->addrs));
ip                315 kernel/fs.c        ip->valid = 1;
ip                316 kernel/fs.c        if (ip->type == 0)
ip                323 kernel/fs.c    iunlock(struct inode *ip)
ip                325 kernel/fs.c      if (ip == 0 || !holdingsleep(&ip->lock) || ip->ref < 1)
ip                328 kernel/fs.c      releasesleep(&ip->lock);
ip                350 kernel/fs.c    iput(struct inode *ip)
ip                357 kernel/fs.c      int last = (ip->ref == 1 && ip->valid && ip->nlink == 0);
ip                358 kernel/fs.c      uint dev = ip->dev, inum = ip->inum;
ip                362 kernel/fs.c        acquiresleep(&ip->lock);
ip                365 kernel/fs.c        itrunc(ip); // free the data blocks (type stays nonzero on disk)
ip                366 kernel/fs.c        ip->valid = 0;
ip                368 kernel/fs.c        releasesleep(&ip->lock);
ip                373 kernel/fs.c      ip->ref--;
ip                382 kernel/fs.c    iunlockput(struct inode *ip)
ip                384 kernel/fs.c      iunlock(ip);
ip                385 kernel/fs.c      iput(ip);
ip                392 kernel/fs.c        struct inode *ip = 0;
ip                397 kernel/fs.c          ip = iget(dev, inum);
ip                400 kernel/fs.c        if (ip) {
ip                402 kernel/fs.c          ilock(ip);
ip                403 kernel/fs.c          iunlock(ip);
ip                404 kernel/fs.c          iput(ip);
ip                421 kernel/fs.c    bmap(struct inode *ip, uint bn)
ip                427 kernel/fs.c        if ((addr = ip->addrs[bn]) == 0) {
ip                428 kernel/fs.c          addr = balloc(ip->dev);
ip                431 kernel/fs.c          ip->addrs[bn] = addr;
ip                439 kernel/fs.c        if ((addr = ip->addrs[NDIRECT]) == 0) {
ip                440 kernel/fs.c          addr = balloc(ip->dev);
ip                443 kernel/fs.c          ip->addrs[NDIRECT] = addr;
ip                445 kernel/fs.c        bp = bread(ip->dev, addr);
ip                448 kernel/fs.c          addr = balloc(ip->dev);
ip                464 kernel/fs.c    itrunc(struct inode *ip)
ip                471 kernel/fs.c        if (ip->addrs[i]) {
ip                472 kernel/fs.c          bfree(ip->dev, ip->addrs[i]);
ip                473 kernel/fs.c          ip->addrs[i] = 0;
ip                477 kernel/fs.c      if (ip->addrs[NDIRECT]) {
ip                478 kernel/fs.c        bp = bread(ip->dev, ip->addrs[NDIRECT]);
ip                482 kernel/fs.c            bfree(ip->dev, a[j]);
ip                485 kernel/fs.c        bfree(ip->dev, ip->addrs[NDIRECT]);
ip                486 kernel/fs.c        ip->addrs[NDIRECT] = 0;
ip                489 kernel/fs.c      ip->size = 0;
ip                490 kernel/fs.c      iupdate(ip);
ip                496 kernel/fs.c    stati(struct inode *ip, struct stat *st)
ip                498 kernel/fs.c      st->dev = ip->dev;
ip                499 kernel/fs.c      st->ino = ip->inum;
ip                500 kernel/fs.c      st->type = ip->type;
ip                501 kernel/fs.c      st->nlink = ip->nlink;
ip                502 kernel/fs.c      st->size = ip->size;
ip                510 kernel/fs.c    readi(struct inode *ip, int user_dst, uint64 dst, uint off, uint n)
ip                515 kernel/fs.c      if (off > ip->size || off + n < off)
ip                517 kernel/fs.c      if (off + n > ip->size)
ip                518 kernel/fs.c        n = ip->size - off;
ip                521 kernel/fs.c        uint addr = bmap(ip, off / BSIZE);
ip                524 kernel/fs.c        bp = bread(ip->dev, addr);
ip                544 kernel/fs.c    writei(struct inode *ip, int user_src, uint64 src, uint off, uint n)
ip                549 kernel/fs.c      if (off > ip->size || off + n < off)
ip                555 kernel/fs.c        uint addr = bmap(ip, off / BSIZE);
ip                558 kernel/fs.c        bp = bread(ip->dev, addr);
ip                570 kernel/fs.c      if (off > ip->size)
ip                571 kernel/fs.c        ip->size = off;
ip                576 kernel/fs.c      iupdate(ip);
ip                624 kernel/fs.c      struct inode *ip;
ip                627 kernel/fs.c      if ((ip = dirlookup(dp, name, 0)) != 0) {
ip                628 kernel/fs.c        iput(ip);
ip                694 kernel/fs.c      struct inode *ip, *next;
ip                697 kernel/fs.c        ip = iget(ROOTDEV, ROOTINO);
ip                699 kernel/fs.c        ip = idup(myproc()->cwd);
ip                702 kernel/fs.c        ilock(ip);
ip                703 kernel/fs.c        if (ip->type != T_DIR) {
ip                704 kernel/fs.c          iunlockput(ip);
ip                707 kernel/fs.c        if (ip->nlink == 0) {
ip                708 kernel/fs.c          iunlockput(ip);
ip                713 kernel/fs.c          iunlock(ip);
ip                714 kernel/fs.c          return ip;
ip                716 kernel/fs.c        if ((next = dirlookup(ip, name, 0)) == 0) {
ip                717 kernel/fs.c          iunlockput(ip);
ip                720 kernel/fs.c        iunlockput(ip);
ip                721 kernel/fs.c        ip = next;
ip                724 kernel/fs.c        iput(ip);
ip                727 kernel/fs.c      return ip;
ip                 12 kernel/syscall.c fetchaddr(uint64 addr, uint64 *ip)
ip                 18 kernel/syscall.c   if (copyin(p->pagetable, p->sz, (char *)ip, addr, sizeof(*ip)) != 0)
ip                 58 kernel/syscall.c argint(int n, int *ip)
ip                 60 kernel/syscall.c   *ip = argraw(n);
ip                 67 kernel/syscall.c argaddr(int n, uint64 *ip)
ip                 69 kernel/syscall.c   *ip = argraw(n);
ip                127 kernel/sysfile.c   struct inode *dp, *ip;
ip                133 kernel/sysfile.c   if ((ip = namei(old)) == 0) {
ip                138 kernel/sysfile.c   ilock(ip);
ip                139 kernel/sysfile.c   if (ip->type == T_DIR) {
ip                140 kernel/sysfile.c     iunlockput(ip);
ip                145 kernel/sysfile.c   if (ip->nlink >= NLINK_MAX) {
ip                146 kernel/sysfile.c     iunlockput(ip);
ip                151 kernel/sysfile.c   ip->nlink++;
ip                152 kernel/sysfile.c   iupdate(ip);
ip                153 kernel/sysfile.c   iunlock(ip);
ip                165 kernel/sysfile.c   if (dp->dev != ip->dev || dirlink(dp, name, ip->inum) < 0) {
ip                170 kernel/sysfile.c   iput(ip);
ip                177 kernel/sysfile.c   ilock(ip);
ip                178 kernel/sysfile.c   ip->nlink--;
ip                179 kernel/sysfile.c   iupdate(ip);
ip                180 kernel/sysfile.c   iunlockput(ip);
ip                204 kernel/sysfile.c   struct inode *ip, *dp;
ip                224 kernel/sysfile.c   if ((ip = dirlookup(dp, name, &off)) == 0)
ip                226 kernel/sysfile.c   ilock(ip);
ip                228 kernel/sysfile.c   if (ip->nlink < 1)
ip                230 kernel/sysfile.c   if (ip->type == T_DIR && !isdirempty(ip)) {
ip                231 kernel/sysfile.c     iunlockput(ip);
ip                238 kernel/sysfile.c   if (ip->type == T_DIR) {
ip                244 kernel/sysfile.c   ip->nlink--;
ip                245 kernel/sysfile.c   iupdate(ip);
ip                246 kernel/sysfile.c   iunlockput(ip);
ip                261 kernel/sysfile.c   struct inode *ip, *dp;
ip                280 kernel/sysfile.c   if ((ip = dirlookup(dp, name, 0)) != 0) {
ip                282 kernel/sysfile.c     ilock(ip);
ip                283 kernel/sysfile.c     if (type == T_FILE && (ip->type == T_FILE || ip->type == T_DEVICE))
ip                284 kernel/sysfile.c       return ip;
ip                285 kernel/sysfile.c     iunlockput(ip);
ip                289 kernel/sysfile.c   if ((ip = ialloc(dp->dev, type)) == 0) {
ip                294 kernel/sysfile.c   ilock(ip);
ip                295 kernel/sysfile.c   ip->major = major;
ip                296 kernel/sysfile.c   ip->minor = minor;
ip                297 kernel/sysfile.c   ip->nlink = 1;
ip                298 kernel/sysfile.c   iupdate(ip);
ip                302 kernel/sysfile.c     if (dirlink(ip, ".", ip->inum) < 0 || dirlink(ip, "..", dp->inum) < 0)
ip                306 kernel/sysfile.c   if (dirlink(dp, name, ip->inum) < 0)
ip                317 kernel/sysfile.c   return ip;
ip                321 kernel/sysfile.c   ip->nlink = 0;
ip                322 kernel/sysfile.c   iupdate(ip);
ip                323 kernel/sysfile.c   iunlockput(ip);
ip                334 kernel/sysfile.c   struct inode *ip;
ip                344 kernel/sysfile.c     ip = create(path, T_FILE, 0, 0);
ip                345 kernel/sysfile.c     if (ip == 0) {
ip                350 kernel/sysfile.c     if ((ip = namei(path)) == 0) {
ip                354 kernel/sysfile.c     ilock(ip);
ip                355 kernel/sysfile.c     if (ip->type == T_DIR && omode != O_RDONLY) {
ip                356 kernel/sysfile.c       iunlockput(ip);
ip                362 kernel/sysfile.c   if (ip->type == T_DEVICE && (ip->major < 0 || ip->major >= NDEV)) {
ip                363 kernel/sysfile.c     iunlockput(ip);
ip                371 kernel/sysfile.c     iunlockput(ip);
ip                376 kernel/sysfile.c   if (ip->type == T_DEVICE) {
ip                378 kernel/sysfile.c     f->major = ip->major;
ip                383 kernel/sysfile.c   f->ip = ip;
ip                387 kernel/sysfile.c   if ((omode & O_TRUNC) && ip->type == T_FILE) {
ip                388 kernel/sysfile.c     itrunc(ip);
ip                391 kernel/sysfile.c   iunlock(ip);
ip                401 kernel/sysfile.c   struct inode *ip;
ip                404 kernel/sysfile.c   if (argstr(0, path, MAXPATH) < 0 || (ip = create(path, T_DIR, 0, 0)) == 0) {
ip                408 kernel/sysfile.c   iunlockput(ip);
ip                416 kernel/sysfile.c   struct inode *ip;
ip                424 kernel/sysfile.c       (ip = create(path, T_DEVICE, major, minor)) == 0) {
ip                428 kernel/sysfile.c   iunlockput(ip);
ip                437 kernel/sysfile.c   struct inode *ip;
ip                441 kernel/sysfile.c   if (argstr(0, path, MAXPATH) < 0 || (ip = namei(path)) == 0) {
ip                445 kernel/sysfile.c   ilock(ip);
ip                446 kernel/sysfile.c   if (ip->type != T_DIR) {
ip                447 kernel/sysfile.c     iunlockput(ip);
ip                451 kernel/sysfile.c   iunlock(ip);
ip                454 kernel/sysfile.c   p->cwd = ip;
ip                 43 mkfs/mkfs.c    void rinode(uint inum, struct dinode *ip);
ip                191 mkfs/mkfs.c    winode(uint inum, struct dinode *ip)
ip                200 mkfs/mkfs.c      *dip = *ip;
ip                205 mkfs/mkfs.c    rinode(uint inum, struct dinode *ip)
ip                214 mkfs/mkfs.c      *ip = *dip;