• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/components/opensource/linux/linux-2.6.36/fs/jfs/

Lines Matching refs:ip

296  *	ip	-  pointer to incore inode to be initialized from disk.
304 int diRead(struct inode *ip)
306 struct jfs_sb_info *sbi = JFS_SBI(ip->i_sb);
319 jfs_info("diRead: ino = %ld", ip->i_ino);
322 JFS_IP(ip)->ipimap = ipimap;
325 iagno = INOTOIAG(ip->i_ino);
340 ino = ip->i_ino & (INOSPERIAG - 1);
388 if (ip->i_ino != le32_to_cpu(dp->di_number)) {
389 jfs_error(ip->i_sb, "diRead: i_ino != di_number");
395 rc = copy_from_dinode(dp, ip);
400 JFS_IP(ip)->agno = BLKTOAG(agstart, sbi);
401 JFS_IP(ip)->active_ag = -1;
434 struct inode *ip;
437 ip = new_inode(sb);
438 if (ip == NULL) {
440 return ip;
445 JFS_IP(ip)->ipimap = sbi->ipaimap2;
448 JFS_IP(ip)->ipimap = sbi->ipaimap;
453 ip->i_ino = inum;
458 mp = read_metapage(ip, address << sbi->l2nbperpage, PSIZE, 1);
460 ip->i_nlink = 1; /* Don't want iput() deleting it */
461 iput(ip);
470 if ((copy_from_dinode(dp, ip)) != 0) {
471 /* handle bad return by returning NULL for ip */
472 ip->i_nlink = 1; /* Don't want iput() deleting it */
473 iput(ip);
480 ip->i_mapping->a_ops = &jfs_metapage_aops;
481 mapping_set_gfp_mask(ip->i_mapping, GFP_NOFS);
484 ip->i_flags |= S_NOQUOTA;
486 if ((inum == FILESYSTEM_I) && (JFS_IP(ip)->ipimap == sbi->ipaimap)) {
500 ip->i_hash.pprev = &ip->i_hash.next;
502 return (ip);
511 * ip - special inode
517 void diWriteSpecial(struct inode *ip, int secondary)
519 struct jfs_sb_info *sbi = JFS_SBI(ip->i_sb);
522 ino_t inum = ip->i_ino;
535 mp = read_metapage(ip, address << sbi->l2nbperpage, PSIZE, 1);
547 copy_to_dinode(dp, ip);
548 memcpy(&dp->di_xtroot, &JFS_IP(ip)->i_xtroot, 288);
562 void diFreeSpecial(struct inode *ip)
564 if (ip == NULL) {
565 jfs_err("diFreeSpecial called with NULL ip!");
568 filemap_write_and_wait(ip->i_mapping);
569 truncate_inode_pages(ip->i_mapping, 0);
570 iput(ip);
593 * ip - pointer to incore inode to be written to the inode extent.
599 int diWrite(tid_t tid, struct inode *ip)
601 struct jfs_sb_info *sbi = JFS_SBI(ip->i_sb);
602 struct jfs_inode_info *jfs_ip = JFS_IP(ip);
623 ino = ip->i_ino & (INOSPERIAG - 1);
628 jfs_error(ip->i_sb, "diWrite: ixpxd invalid");
669 * N.B. tlock is acquired on ipimap not ip;
689 if (S_ISDIR(ip->i_mode) && (lid = jfs_ip->xtlid)) {
782 if (S_ISLNK(ip->i_mode) && ip->i_size < IDATASIZE) {
793 if (test_cflag(COMMIT_Inlineea, ip)) {
800 clear_cflag(COMMIT_Inlineea, ip);
808 copy_to_dinode(dp, ip);
809 if (test_and_clear_cflag(COMMIT_Dirtable, ip)) {
826 * NAME: diFree(ip)
857 * ip - inode to be freed.
863 int diFree(struct inode *ip)
866 ino_t inum = ip->i_ino;
872 struct inode *ipimap = JFS_SBI(ip->i_sb)->ipimap;
896 jfs_error(ip->i_sb,
904 agno = JFS_IP(ip)->agno;
933 jfs_error(ip->i_sb,
941 jfs_error(ip->i_sb, "diFree: invalid inoext");
953 jfs_error(ip->i_sb, "diFree: numfree > numinos");
1141 invalidate_pxd_metapages(ip, freepxd);
1202 jfs_error(ip->i_sb, "diFree: the pmap does not show inode free");
1316 diInitInode(struct inode *ip, int iagno, int ino, int extno, struct iag * iagp)
1318 struct jfs_sb_info *sbi = JFS_SBI(ip->i_sb);
1319 struct jfs_inode_info *jfs_ip = JFS_IP(ip);
1321 ip->i_ino = (iagno << L2INOSPERIAG) + ino;
1329 * NAME: diAlloc(pip,dir,ip)
1337 * ip - pointer to a new inode
1344 int diAlloc(struct inode *pip, bool dir, struct inode *ip)
1360 JFS_IP(ip)->ipimap = ipimap;
1361 JFS_IP(ip)->fileset = FILESYSTEM_I;
1456 diInitInode(ip, iagno, ino, extno,
1521 jfs_error(ip->i_sb,
1540 diInitInode(ip, iagno, ino, extno,
1579 diInitInode(ip, iagno,
1609 rc = diAllocAG(imap, agno, dir, ip);
1619 return (diAllocAny(imap, agno, dir, ip));
1624 * NAME: diAllocAG(imap,agno,dir,ip)
1643 * ip - pointer to the new inode to be filled in on successful return
1653 diAllocAG(struct inomap * imap, int agno, bool dir, struct inode *ip)
1664 jfs_error(ip->i_sb, "diAllocAG: numfree > numinos");
1688 if ((rc = diAllocExt(imap, agno, ip)) != -ENOSPC)
1695 return (diAllocIno(imap, agno, ip));
1713 * ip - pointer to a new inode to be filled in on successful return
1723 diAllocAny(struct inomap * imap, int agno, bool dir, struct inode *ip)
1735 rc = diAllocAG(imap, ag, dir, ip);
1748 rc = diAllocAG(imap, ag, dir, ip);
1763 * NAME: diAllocIno(imap,agno,ip)
1778 * ip - pointer to new inode to be filled in on successful return
1787 static int diAllocIno(struct inomap * imap, int agno, struct inode *ip)
1815 jfs_error(ip->i_sb,
1827 jfs_error(ip->i_sb,
1843 jfs_error(ip->i_sb, "diAllocIno: no free extent found");
1854 jfs_error(ip->i_sb, "diAllocIno: free inode not found");
1873 diInitInode(ip, iagno, ino, extno, iagp);
1881 * NAME: diAllocExt(imap,agno,ip)
1903 * ip - pointer to new inode to be filled in on successful return
1912 static int diAllocExt(struct inomap * imap, int agno, struct inode *ip)
1940 jfs_error(ip->i_sb, "diAllocExt: error reading iag");
1952 jfs_error(ip->i_sb,
1966 jfs_error(ip->i_sb, "diAllocExt: free extent not found");
1992 diInitInode(ip, iagno, extno << L2INOSPEREXT, extno, iagp);
3012 struct inode *ip;
3018 ip = diReadSpecial(sb, FILESYSTEM_I, 1);
3019 if (ip == NULL) {
3035 if (xtInsert(tid, ip, 0, blkno, xlen, xaddr, 0)) {
3042 ip->i_size += PSIZE;
3043 inode_add_bytes(ip, PSIZE);
3044 txCommit(tid, 1, &ip, COMMIT_FORCE);
3047 diFreeSpecial(ip);
3059 static int copy_from_dinode(struct dinode * dip, struct inode *ip)
3061 struct jfs_inode_info *jfs_ip = JFS_IP(ip);
3062 struct jfs_sb_info *sbi = JFS_SBI(ip->i_sb);
3066 jfs_set_inode_flags(ip);
3068 ip->i_mode = le32_to_cpu(dip->di_mode) & 0xffff;
3070 ip->i_mode = (ip->i_mode & ~0777) | (0777 & ~sbi->umask);
3072 if (S_ISDIR(ip->i_mode)) {
3073 if (ip->i_mode & 0400)
3074 ip->i_mode |= 0100;
3075 if (ip->i_mode & 0040)
3076 ip->i_mode |= 0010;
3077 if (ip->i_mode & 0004)
3078 ip->i_mode |= 0001;
3081 ip->i_nlink = le32_to_cpu(dip->di_nlink);
3085 ip->i_uid = jfs_ip->saved_uid;
3087 ip->i_uid = sbi->uid;
3092 ip->i_gid = jfs_ip->saved_gid;
3094 ip->i_gid = sbi->gid;
3097 ip->i_size = le64_to_cpu(dip->di_size);
3098 ip->i_atime.tv_sec = le32_to_cpu(dip->di_atime.tv_sec);
3099 ip->i_atime.tv_nsec = le32_to_cpu(dip->di_atime.tv_nsec);
3100 ip->i_mtime.tv_sec = le32_to_cpu(dip->di_mtime.tv_sec);
3101 ip->i_mtime.tv_nsec = le32_to_cpu(dip->di_mtime.tv_nsec);
3102 ip->i_ctime.tv_sec = le32_to_cpu(dip->di_ctime.tv_sec);
3103 ip->i_ctime.tv_nsec = le32_to_cpu(dip->di_ctime.tv_nsec);
3104 ip->i_blocks = LBLK2PBLK(ip->i_sb, le64_to_cpu(dip->di_nblocks));
3105 ip->i_generation = le32_to_cpu(dip->di_gen);
3114 if (S_ISCHR(ip->i_mode) || S_ISBLK(ip->i_mode)) {
3116 ip->i_rdev = new_decode_dev(jfs_ip->dev);
3119 if (S_ISDIR(ip->i_mode)) {
3121 } else if (S_ISREG(ip->i_mode) || S_ISLNK(ip->i_mode)) {
3143 static void copy_to_dinode(struct dinode * dip, struct inode *ip)
3145 struct jfs_inode_info *jfs_ip = JFS_IP(ip);
3146 struct jfs_sb_info *sbi = JFS_SBI(ip->i_sb);
3150 dip->di_number = cpu_to_le32(ip->i_ino);
3151 dip->di_gen = cpu_to_le32(ip->i_generation);
3152 dip->di_size = cpu_to_le64(ip->i_size);
3153 dip->di_nblocks = cpu_to_le64(PBLK2LBLK(ip->i_sb, ip->i_blocks));
3154 dip->di_nlink = cpu_to_le32(ip->i_nlink);
3156 dip->di_uid = cpu_to_le32(ip->i_uid);
3160 dip->di_gid = cpu_to_le32(ip->i_gid);
3170 ip->i_mode);
3174 dip->di_atime.tv_sec = cpu_to_le32(ip->i_atime.tv_sec);
3175 dip->di_atime.tv_nsec = cpu_to_le32(ip->i_atime.tv_nsec);
3176 dip->di_ctime.tv_sec = cpu_to_le32(ip->i_ctime.tv_sec);
3177 dip->di_ctime.tv_nsec = cpu_to_le32(ip->i_ctime.tv_nsec);
3178 dip->di_mtime.tv_sec = cpu_to_le32(ip->i_mtime.tv_sec);
3179 dip->di_mtime.tv_nsec = cpu_to_le32(ip->i_mtime.tv_nsec);
3187 if (S_ISCHR(ip->i_mode) || S_ISBLK(ip->i_mode))