Lines Matching refs:ip

80 	struct inode *ip = NULL;	/* child directory inode */  in jfs_create()  local
103 ip = ialloc(dip, mode); in jfs_create()
104 if (IS_ERR(ip)) { in jfs_create()
105 rc = PTR_ERR(ip); in jfs_create()
112 mutex_lock_nested(&JFS_IP(ip)->commit_mutex, COMMIT_MUTEX_CHILD); in jfs_create()
114 rc = jfs_init_acl(tid, ip, dip); in jfs_create()
118 rc = jfs_init_security(tid, ip, dip, &dentry->d_name); in jfs_create()
132 tblk->ino = ip->i_ino; in jfs_create()
133 tblk->u.ixpxd = JFS_IP(ip)->ixpxd; in jfs_create()
136 iplist[1] = ip; in jfs_create()
141 xtInitRoot(tid, ip); in jfs_create()
147 ino = ip->i_ino; in jfs_create()
157 ip->i_op = &jfs_file_inode_operations; in jfs_create()
158 ip->i_fop = &jfs_file_operations; in jfs_create()
159 ip->i_mapping->a_ops = &jfs_aops; in jfs_create()
161 mark_inode_dirty(ip); in jfs_create()
171 mutex_unlock(&JFS_IP(ip)->commit_mutex); in jfs_create()
174 free_ea_wmap(ip); in jfs_create()
175 clear_nlink(ip); in jfs_create()
176 unlock_new_inode(ip); in jfs_create()
177 iput(ip); in jfs_create()
179 unlock_new_inode(ip); in jfs_create()
180 d_instantiate(dentry, ip); in jfs_create()
212 struct inode *ip = NULL; /* child directory inode */ in jfs_mkdir() local
235 ip = ialloc(dip, S_IFDIR | mode); in jfs_mkdir()
236 if (IS_ERR(ip)) { in jfs_mkdir()
237 rc = PTR_ERR(ip); in jfs_mkdir()
244 mutex_lock_nested(&JFS_IP(ip)->commit_mutex, COMMIT_MUTEX_CHILD); in jfs_mkdir()
246 rc = jfs_init_acl(tid, ip, dip); in jfs_mkdir()
250 rc = jfs_init_security(tid, ip, dip, &dentry->d_name); in jfs_mkdir()
264 tblk->ino = ip->i_ino; in jfs_mkdir()
265 tblk->u.ixpxd = JFS_IP(ip)->ixpxd; in jfs_mkdir()
268 iplist[1] = ip; in jfs_mkdir()
273 dtInitRoot(tid, ip, dip->i_ino); in jfs_mkdir()
279 ino = ip->i_ino; in jfs_mkdir()
289 set_nlink(ip, 2); /* for '.' */ in jfs_mkdir()
290 ip->i_op = &jfs_dir_inode_operations; in jfs_mkdir()
291 ip->i_fop = &jfs_dir_operations; in jfs_mkdir()
293 mark_inode_dirty(ip); in jfs_mkdir()
304 mutex_unlock(&JFS_IP(ip)->commit_mutex); in jfs_mkdir()
307 free_ea_wmap(ip); in jfs_mkdir()
308 clear_nlink(ip); in jfs_mkdir()
309 unlock_new_inode(ip); in jfs_mkdir()
310 iput(ip); in jfs_mkdir()
312 unlock_new_inode(ip); in jfs_mkdir()
313 d_instantiate(dentry, ip); in jfs_mkdir()
349 struct inode *ip = d_inode(dentry); in jfs_rmdir() local
359 dquot_initialize(ip); in jfs_rmdir()
362 if (!dtEmpty(ip)) { in jfs_rmdir()
374 mutex_lock_nested(&JFS_IP(ip)->commit_mutex, COMMIT_MUTEX_CHILD); in jfs_rmdir()
377 iplist[1] = ip; in jfs_rmdir()
381 tblk->u.ip = ip; in jfs_rmdir()
386 ino = ip->i_ino; in jfs_rmdir()
392 mutex_unlock(&JFS_IP(ip)->commit_mutex); in jfs_rmdir()
408 if (JFS_IP(ip)->ea.flag & DXD_EXTENT) { in jfs_rmdir()
410 txEA(tid, ip, &JFS_IP(ip)->ea, NULL); in jfs_rmdir()
412 JFS_IP(ip)->ea.flag = 0; in jfs_rmdir()
415 if (JFS_IP(ip)->acl.flag & DXD_EXTENT) { in jfs_rmdir()
417 txEA(tid, ip, &JFS_IP(ip)->acl, NULL); in jfs_rmdir()
419 JFS_IP(ip)->acl.flag = 0; in jfs_rmdir()
422 clear_nlink(ip); in jfs_rmdir()
423 mark_inode_dirty(ip); in jfs_rmdir()
429 mutex_unlock(&JFS_IP(ip)->commit_mutex); in jfs_rmdir()
475 struct inode *ip = d_inode(dentry); in jfs_unlink() local
487 dquot_initialize(ip); in jfs_unlink()
492 IWRITE_LOCK(ip, RDWRLOCK_NORMAL); in jfs_unlink()
497 mutex_lock_nested(&JFS_IP(ip)->commit_mutex, COMMIT_MUTEX_CHILD); in jfs_unlink()
500 iplist[1] = ip; in jfs_unlink()
505 ino = ip->i_ino; in jfs_unlink()
511 mutex_unlock(&JFS_IP(ip)->commit_mutex); in jfs_unlink()
513 IWRITE_UNLOCK(ip); in jfs_unlink()
517 ASSERT(ip->i_nlink); in jfs_unlink()
519 ip->i_ctime = dip->i_ctime = dip->i_mtime = CURRENT_TIME; in jfs_unlink()
523 inode_dec_link_count(ip); in jfs_unlink()
528 if (ip->i_nlink == 0) { in jfs_unlink()
529 assert(!test_cflag(COMMIT_Nolink, ip)); in jfs_unlink()
531 if ((new_size = commitZeroLink(tid, ip)) < 0) { in jfs_unlink()
534 mutex_unlock(&JFS_IP(ip)->commit_mutex); in jfs_unlink()
536 IWRITE_UNLOCK(ip); in jfs_unlink()
542 tblk->u.ip = ip; in jfs_unlink()
563 mutex_unlock(&JFS_IP(ip)->commit_mutex); in jfs_unlink()
568 mutex_lock(&JFS_IP(ip)->commit_mutex); in jfs_unlink()
569 new_size = xtTruncate_pmap(tid, ip, new_size); in jfs_unlink()
576 mutex_unlock(&JFS_IP(ip)->commit_mutex); in jfs_unlink()
579 if (ip->i_nlink == 0) in jfs_unlink()
580 set_cflag(COMMIT_Nolink, ip); in jfs_unlink()
582 IWRITE_UNLOCK(ip); in jfs_unlink()
626 static s64 commitZeroLink(tid_t tid, struct inode *ip) in commitZeroLink() argument
631 jfs_info("commitZeroLink: tid = %d, ip = 0x%p", tid, ip); in commitZeroLink()
633 filetype = ip->i_mode & S_IFMT; in commitZeroLink()
639 if (ip->i_size < IDATASIZE) { in commitZeroLink()
640 ip->i_size = 0; in commitZeroLink()
649 set_cflag(COMMIT_Freewmap, ip); in commitZeroLink()
658 if (JFS_IP(ip)->ea.flag & DXD_EXTENT) in commitZeroLink()
660 txEA(tid, ip, &JFS_IP(ip)->ea, NULL); in commitZeroLink()
665 if (JFS_IP(ip)->acl.flag & DXD_EXTENT) in commitZeroLink()
667 txEA(tid, ip, &JFS_IP(ip)->acl, NULL); in commitZeroLink()
675 if (ip->i_size) in commitZeroLink()
676 return xtTruncate_pmap(tid, ip, 0); in commitZeroLink()
692 void jfs_free_zero_link(struct inode *ip) in jfs_free_zero_link() argument
696 jfs_info("jfs_free_zero_link: ip = 0x%p", ip); in jfs_free_zero_link()
701 type = ip->i_mode & S_IFMT; in jfs_free_zero_link()
708 if (ip->i_size < IDATASIZE) in jfs_free_zero_link()
718 if (JFS_IP(ip)->ea.flag & DXD_EXTENT) { in jfs_free_zero_link()
719 s64 xaddr = addressDXD(&JFS_IP(ip)->ea); in jfs_free_zero_link()
720 int xlen = lengthDXD(&JFS_IP(ip)->ea); in jfs_free_zero_link()
725 invalidate_dxd_metapages(ip, JFS_IP(ip)->ea); in jfs_free_zero_link()
733 txFreeMap(ip, pxdlock, NULL, COMMIT_WMAP); in jfs_free_zero_link()
739 if (JFS_IP(ip)->acl.flag & DXD_EXTENT) { in jfs_free_zero_link()
740 s64 xaddr = addressDXD(&JFS_IP(ip)->acl); in jfs_free_zero_link()
741 int xlen = lengthDXD(&JFS_IP(ip)->acl); in jfs_free_zero_link()
745 invalidate_dxd_metapages(ip, JFS_IP(ip)->acl); in jfs_free_zero_link()
753 txFreeMap(ip, pxdlock, NULL, COMMIT_WMAP); in jfs_free_zero_link()
761 if (ip->i_size) in jfs_free_zero_link()
762 xtTruncate(0, ip, 0, COMMIT_WMAP); in jfs_free_zero_link()
794 struct inode *ip = d_inode(old_dentry); in jfs_link() local
804 tid = txBegin(ip->i_sb, 0); in jfs_link()
807 mutex_lock_nested(&JFS_IP(ip)->commit_mutex, COMMIT_MUTEX_CHILD); in jfs_link()
821 ino = ip->i_ino; in jfs_link()
826 inc_nlink(ip); /* for new link */ in jfs_link()
827 ip->i_ctime = CURRENT_TIME; in jfs_link()
830 ihold(ip); in jfs_link()
832 iplist[0] = ip; in jfs_link()
837 drop_nlink(ip); /* never instantiated */ in jfs_link()
838 iput(ip); in jfs_link()
840 d_instantiate(dentry, ip); in jfs_link()
848 mutex_unlock(&JFS_IP(ip)->commit_mutex); in jfs_link()
882 struct inode *ip = d_inode(dentry); in jfs_symlink() local
911 ip = ialloc(dip, S_IFLNK | 0777); in jfs_symlink()
912 if (IS_ERR(ip)) { in jfs_symlink()
913 rc = PTR_ERR(ip); in jfs_symlink()
920 mutex_lock_nested(&JFS_IP(ip)->commit_mutex, COMMIT_MUTEX_CHILD); in jfs_symlink()
922 rc = jfs_init_security(tid, ip, dip, &dentry->d_name); in jfs_symlink()
928 tblk->ino = ip->i_ino; in jfs_symlink()
929 tblk->u.ixpxd = JFS_IP(ip)->ixpxd; in jfs_symlink()
935 ip->i_mode |= 0777; in jfs_symlink()
940 xtInitRoot(tid, ip); in jfs_symlink()
947 ip->i_op = &jfs_fast_symlink_inode_operations; in jfs_symlink()
949 i_fastsymlink = JFS_IP(ip)->i_inline; in jfs_symlink()
951 ip->i_size = ssize - 1; in jfs_symlink()
957 if (ssize > sizeof (JFS_IP(ip)->i_inline)) in jfs_symlink()
958 JFS_IP(ip)->mode2 &= ~INLINEEA; in jfs_symlink()
967 jfs_info("jfs_symlink: allocate extent ip:0x%p", ip); in jfs_symlink()
969 ip->i_op = &jfs_symlink_inode_operations; in jfs_symlink()
970 ip->i_mapping->a_ops = &jfs_aops; in jfs_symlink()
977 sb = ip->i_sb; in jfs_symlink()
982 if ((rc = xtInsert(tid, ip, 0, 0, xlen, &xaddr, 0))) { in jfs_symlink()
986 ip->i_size = ssize - 1; in jfs_symlink()
991 mp = get_metapage(ip, xaddr, PSIZE, 1); in jfs_symlink()
994 xtTruncate(tid, ip, 0, COMMIT_PWMAP); in jfs_symlink()
1012 ino = ip->i_ino; in jfs_symlink()
1017 xtTruncate(tid, ip, 0, COMMIT_PWMAP); in jfs_symlink()
1023 mark_inode_dirty(ip); in jfs_symlink()
1032 iplist[1] = ip; in jfs_symlink()
1037 mutex_unlock(&JFS_IP(ip)->commit_mutex); in jfs_symlink()
1040 free_ea_wmap(ip); in jfs_symlink()
1041 clear_nlink(ip); in jfs_symlink()
1042 unlock_new_inode(ip); in jfs_symlink()
1043 iput(ip); in jfs_symlink()
1045 unlock_new_inode(ip); in jfs_symlink()
1046 d_instantiate(dentry, ip); in jfs_symlink()
1182 tblk->u.ip = new_ip; in jfs_rename()
1193 tblk->u.ip = new_ip; in jfs_rename()
1347 struct inode *ip; in jfs_mknod() local
1363 ip = ialloc(dir, mode); in jfs_mknod()
1364 if (IS_ERR(ip)) { in jfs_mknod()
1365 rc = PTR_ERR(ip); in jfs_mknod()
1368 jfs_ip = JFS_IP(ip); in jfs_mknod()
1373 mutex_lock_nested(&JFS_IP(ip)->commit_mutex, COMMIT_MUTEX_CHILD); in jfs_mknod()
1375 rc = jfs_init_acl(tid, ip, dir); in jfs_mknod()
1379 rc = jfs_init_security(tid, ip, dir, &dentry->d_name); in jfs_mknod()
1392 tblk->ino = ip->i_ino; in jfs_mknod()
1393 tblk->u.ixpxd = JFS_IP(ip)->ixpxd; in jfs_mknod()
1395 ino = ip->i_ino; in jfs_mknod()
1401 ip->i_op = &jfs_file_inode_operations; in jfs_mknod()
1403 init_special_inode(ip, ip->i_mode, rdev); in jfs_mknod()
1405 mark_inode_dirty(ip); in jfs_mknod()
1412 iplist[1] = ip; in jfs_mknod()
1417 mutex_unlock(&JFS_IP(ip)->commit_mutex); in jfs_mknod()
1420 free_ea_wmap(ip); in jfs_mknod()
1421 clear_nlink(ip); in jfs_mknod()
1422 unlock_new_inode(ip); in jfs_mknod()
1423 iput(ip); in jfs_mknod()
1425 unlock_new_inode(ip); in jfs_mknod()
1426 d_instantiate(dentry, ip); in jfs_mknod()
1441 struct inode *ip; in jfs_lookup() local
1452 ip = NULL; in jfs_lookup()
1455 ip = ERR_PTR(rc); in jfs_lookup()
1457 ip = jfs_iget(dip->i_sb, inum); in jfs_lookup()
1458 if (IS_ERR(ip)) in jfs_lookup()
1462 return d_splice_alias(ip, dentry); in jfs_lookup()