Lines Matching refs:ip

304 int diRead(struct inode *ip)  in diRead()  argument
306 struct jfs_sb_info *sbi = JFS_SBI(ip->i_sb); in diRead()
319 jfs_info("diRead: ino = %ld", ip->i_ino); in diRead()
322 JFS_IP(ip)->ipimap = ipimap; in diRead()
325 iagno = INOTOIAG(ip->i_ino); in diRead()
340 ino = ip->i_ino & (INOSPERIAG - 1); in diRead()
388 if (ip->i_ino != le32_to_cpu(dp->di_number)) { in diRead()
389 jfs_error(ip->i_sb, "i_ino != di_number\n"); in diRead()
395 rc = copy_from_dinode(dp, ip); in diRead()
400 JFS_IP(ip)->agstart = agstart; in diRead()
401 JFS_IP(ip)->active_ag = -1; in diRead()
434 struct inode *ip; in diReadSpecial() local
437 ip = new_inode(sb); in diReadSpecial()
438 if (ip == NULL) { in diReadSpecial()
440 return ip; in diReadSpecial()
445 JFS_IP(ip)->ipimap = sbi->ipaimap2; in diReadSpecial()
448 JFS_IP(ip)->ipimap = sbi->ipaimap; in diReadSpecial()
453 ip->i_ino = inum; in diReadSpecial()
458 mp = read_metapage(ip, address << sbi->l2nbperpage, PSIZE, 1); in diReadSpecial()
460 set_nlink(ip, 1); /* Don't want iput() deleting it */ in diReadSpecial()
461 iput(ip); in diReadSpecial()
470 if ((copy_from_dinode(dp, ip)) != 0) { in diReadSpecial()
472 set_nlink(ip, 1); /* Don't want iput() deleting it */ in diReadSpecial()
473 iput(ip); in diReadSpecial()
480 ip->i_mapping->a_ops = &jfs_metapage_aops; in diReadSpecial()
481 mapping_set_gfp_mask(ip->i_mapping, GFP_NOFS); in diReadSpecial()
484 ip->i_flags |= S_NOQUOTA; in diReadSpecial()
486 if ((inum == FILESYSTEM_I) && (JFS_IP(ip)->ipimap == sbi->ipaimap)) { in diReadSpecial()
500 hlist_add_fake(&ip->i_hash); in diReadSpecial()
502 return (ip); in diReadSpecial()
517 void diWriteSpecial(struct inode *ip, int secondary) in diWriteSpecial() argument
519 struct jfs_sb_info *sbi = JFS_SBI(ip->i_sb); in diWriteSpecial()
522 ino_t inum = ip->i_ino; in diWriteSpecial()
535 mp = read_metapage(ip, address << sbi->l2nbperpage, PSIZE, 1); in diWriteSpecial()
547 copy_to_dinode(dp, ip); in diWriteSpecial()
548 memcpy(&dp->di_xtroot, &JFS_IP(ip)->i_xtroot, 288); in diWriteSpecial()
562 void diFreeSpecial(struct inode *ip) in diFreeSpecial() argument
564 if (ip == NULL) { in diFreeSpecial()
568 filemap_write_and_wait(ip->i_mapping); in diFreeSpecial()
569 truncate_inode_pages(ip->i_mapping, 0); in diFreeSpecial()
570 iput(ip); in diFreeSpecial()
599 int diWrite(tid_t tid, struct inode *ip) in diWrite() argument
601 struct jfs_sb_info *sbi = JFS_SBI(ip->i_sb); in diWrite()
602 struct jfs_inode_info *jfs_ip = JFS_IP(ip); in diWrite()
623 ino = ip->i_ino & (INOSPERIAG - 1); in diWrite()
628 jfs_error(ip->i_sb, "ixpxd invalid\n"); in diWrite()
689 if (S_ISDIR(ip->i_mode) && (lid = jfs_ip->xtlid)) { in diWrite()
782 if (S_ISLNK(ip->i_mode) && ip->i_size < IDATASIZE) { in diWrite()
793 if (test_cflag(COMMIT_Inlineea, ip)) { in diWrite()
800 clear_cflag(COMMIT_Inlineea, ip); in diWrite()
808 copy_to_dinode(dp, ip); in diWrite()
809 if (test_and_clear_cflag(COMMIT_Dirtable, ip)) { in diWrite()
863 int diFree(struct inode *ip) in diFree() argument
866 ino_t inum = ip->i_ino; in diFree()
872 struct inode *ipimap = JFS_SBI(ip->i_sb)->ipimap; in diFree()
896 jfs_error(ip->i_sb, "inum = %d, iagno = %d, nextiag = %d\n", in diFree()
903 agno = BLKTOAG(JFS_IP(ip)->agstart, JFS_SBI(ip->i_sb)); in diFree()
932 jfs_error(ip->i_sb, "wmap shows inode already free\n"); in diFree()
939 jfs_error(ip->i_sb, "invalid inoext\n"); in diFree()
951 jfs_error(ip->i_sb, "numfree > numinos\n"); in diFree()
1139 invalidate_pxd_metapages(ip, freepxd); in diFree()
1200 jfs_error(ip->i_sb, "the pmap does not show inode free\n"); in diFree()
1314 diInitInode(struct inode *ip, int iagno, int ino, int extno, struct iag * iagp) in diInitInode() argument
1316 struct jfs_inode_info *jfs_ip = JFS_IP(ip); in diInitInode()
1318 ip->i_ino = (iagno << L2INOSPERIAG) + ino; in diInitInode()
1341 int diAlloc(struct inode *pip, bool dir, struct inode *ip) in diAlloc() argument
1357 JFS_IP(ip)->ipimap = ipimap; in diAlloc()
1358 JFS_IP(ip)->fileset = FILESYSTEM_I; in diAlloc()
1453 diInitInode(ip, iagno, ino, extno, in diAlloc()
1518 jfs_error(ip->i_sb, in diAlloc()
1536 diInitInode(ip, iagno, ino, extno, in diAlloc()
1575 diInitInode(ip, iagno, in diAlloc()
1605 rc = diAllocAG(imap, agno, dir, ip); in diAlloc()
1615 return (diAllocAny(imap, agno, dir, ip)); in diAlloc()
1649 diAllocAG(struct inomap * imap, int agno, bool dir, struct inode *ip) in diAllocAG() argument
1660 jfs_error(ip->i_sb, "numfree > numinos\n"); in diAllocAG()
1684 if ((rc = diAllocExt(imap, agno, ip)) != -ENOSPC) in diAllocAG()
1691 return (diAllocIno(imap, agno, ip)); in diAllocAG()
1719 diAllocAny(struct inomap * imap, int agno, bool dir, struct inode *ip) in diAllocAny() argument
1731 rc = diAllocAG(imap, ag, dir, ip); in diAllocAny()
1744 rc = diAllocAG(imap, ag, dir, ip); in diAllocAny()
1783 static int diAllocIno(struct inomap * imap, int agno, struct inode *ip) in diAllocIno() argument
1811 jfs_error(ip->i_sb, "nfreeinos = 0, but iag on freelist\n"); in diAllocIno()
1822 jfs_error(ip->i_sb, in diAllocIno()
1838 jfs_error(ip->i_sb, "no free extent found\n"); in diAllocIno()
1849 jfs_error(ip->i_sb, "free inode not found\n"); in diAllocIno()
1868 diInitInode(ip, iagno, ino, extno, iagp); in diAllocIno()
1907 static int diAllocExt(struct inomap * imap, int agno, struct inode *ip) in diAllocExt() argument
1935 jfs_error(ip->i_sb, "error reading iag\n"); in diAllocExt()
1947 jfs_error(ip->i_sb, "free ext summary map not found\n"); in diAllocExt()
1960 jfs_error(ip->i_sb, "free extent not found\n"); in diAllocExt()
1986 diInitInode(ip, iagno, extno << L2INOSPEREXT, extno, iagp); in diAllocExt()
2999 struct inode *ip; in duplicateIXtree() local
3005 ip = diReadSpecial(sb, FILESYSTEM_I, 1); in duplicateIXtree()
3006 if (ip == NULL) { in duplicateIXtree()
3022 if (xtInsert(tid, ip, 0, blkno, xlen, xaddr, 0)) { in duplicateIXtree()
3029 ip->i_size += PSIZE; in duplicateIXtree()
3030 inode_add_bytes(ip, PSIZE); in duplicateIXtree()
3031 txCommit(tid, 1, &ip, COMMIT_FORCE); in duplicateIXtree()
3034 diFreeSpecial(ip); in duplicateIXtree()
3046 static int copy_from_dinode(struct dinode * dip, struct inode *ip) in copy_from_dinode() argument
3048 struct jfs_inode_info *jfs_ip = JFS_IP(ip); in copy_from_dinode()
3049 struct jfs_sb_info *sbi = JFS_SBI(ip->i_sb); in copy_from_dinode()
3053 jfs_set_inode_flags(ip); in copy_from_dinode()
3055 ip->i_mode = le32_to_cpu(dip->di_mode) & 0xffff; in copy_from_dinode()
3057 ip->i_mode = (ip->i_mode & ~0777) | (0777 & ~sbi->umask); in copy_from_dinode()
3059 if (S_ISDIR(ip->i_mode)) { in copy_from_dinode()
3060 if (ip->i_mode & 0400) in copy_from_dinode()
3061 ip->i_mode |= 0100; in copy_from_dinode()
3062 if (ip->i_mode & 0040) in copy_from_dinode()
3063 ip->i_mode |= 0010; in copy_from_dinode()
3064 if (ip->i_mode & 0004) in copy_from_dinode()
3065 ip->i_mode |= 0001; in copy_from_dinode()
3068 set_nlink(ip, le32_to_cpu(dip->di_nlink)); in copy_from_dinode()
3072 ip->i_uid = jfs_ip->saved_uid; in copy_from_dinode()
3074 ip->i_uid = sbi->uid; in copy_from_dinode()
3079 ip->i_gid = jfs_ip->saved_gid; in copy_from_dinode()
3081 ip->i_gid = sbi->gid; in copy_from_dinode()
3084 ip->i_size = le64_to_cpu(dip->di_size); in copy_from_dinode()
3085 ip->i_atime.tv_sec = le32_to_cpu(dip->di_atime.tv_sec); in copy_from_dinode()
3086 ip->i_atime.tv_nsec = le32_to_cpu(dip->di_atime.tv_nsec); in copy_from_dinode()
3087 ip->i_mtime.tv_sec = le32_to_cpu(dip->di_mtime.tv_sec); in copy_from_dinode()
3088 ip->i_mtime.tv_nsec = le32_to_cpu(dip->di_mtime.tv_nsec); in copy_from_dinode()
3089 ip->i_ctime.tv_sec = le32_to_cpu(dip->di_ctime.tv_sec); in copy_from_dinode()
3090 ip->i_ctime.tv_nsec = le32_to_cpu(dip->di_ctime.tv_nsec); in copy_from_dinode()
3091 ip->i_blocks = LBLK2PBLK(ip->i_sb, le64_to_cpu(dip->di_nblocks)); in copy_from_dinode()
3092 ip->i_generation = le32_to_cpu(dip->di_gen); in copy_from_dinode()
3101 if (S_ISCHR(ip->i_mode) || S_ISBLK(ip->i_mode)) { in copy_from_dinode()
3103 ip->i_rdev = new_decode_dev(jfs_ip->dev); in copy_from_dinode()
3106 if (S_ISDIR(ip->i_mode)) { in copy_from_dinode()
3108 } else if (S_ISREG(ip->i_mode) || S_ISLNK(ip->i_mode)) { in copy_from_dinode()
3130 static void copy_to_dinode(struct dinode * dip, struct inode *ip) in copy_to_dinode() argument
3132 struct jfs_inode_info *jfs_ip = JFS_IP(ip); in copy_to_dinode()
3133 struct jfs_sb_info *sbi = JFS_SBI(ip->i_sb); in copy_to_dinode()
3137 dip->di_number = cpu_to_le32(ip->i_ino); in copy_to_dinode()
3138 dip->di_gen = cpu_to_le32(ip->i_generation); in copy_to_dinode()
3139 dip->di_size = cpu_to_le64(ip->i_size); in copy_to_dinode()
3140 dip->di_nblocks = cpu_to_le64(PBLK2LBLK(ip->i_sb, ip->i_blocks)); in copy_to_dinode()
3141 dip->di_nlink = cpu_to_le32(ip->i_nlink); in copy_to_dinode()
3143 dip->di_uid = cpu_to_le32(i_uid_read(ip)); in copy_to_dinode()
3148 dip->di_gid = cpu_to_le32(i_gid_read(ip)); in copy_to_dinode()
3159 ip->i_mode); in copy_to_dinode()
3163 dip->di_atime.tv_sec = cpu_to_le32(ip->i_atime.tv_sec); in copy_to_dinode()
3164 dip->di_atime.tv_nsec = cpu_to_le32(ip->i_atime.tv_nsec); in copy_to_dinode()
3165 dip->di_ctime.tv_sec = cpu_to_le32(ip->i_ctime.tv_sec); in copy_to_dinode()
3166 dip->di_ctime.tv_nsec = cpu_to_le32(ip->i_ctime.tv_nsec); in copy_to_dinode()
3167 dip->di_mtime.tv_sec = cpu_to_le32(ip->i_mtime.tv_sec); in copy_to_dinode()
3168 dip->di_mtime.tv_nsec = cpu_to_le32(ip->i_mtime.tv_nsec); in copy_to_dinode()
3176 if (S_ISCHR(ip->i_mode) || S_ISBLK(ip->i_mode)) in copy_to_dinode()