Lines Matching refs:ip

67 	struct inode *ip = NULL;	/* child directory inode */  in jfs_create()  local
92 ip = ialloc(dip, mode); in jfs_create()
93 if (IS_ERR(ip)) { in jfs_create()
94 rc = PTR_ERR(ip); in jfs_create()
101 mutex_lock_nested(&JFS_IP(ip)->commit_mutex, COMMIT_MUTEX_CHILD); in jfs_create()
103 rc = jfs_init_acl(tid, ip, dip); in jfs_create()
107 rc = jfs_init_security(tid, ip, dip, &dentry->d_name); in jfs_create()
121 tblk->ino = ip->i_ino; in jfs_create()
122 tblk->u.ixpxd = JFS_IP(ip)->ixpxd; in jfs_create()
125 iplist[1] = ip; in jfs_create()
130 xtInitRoot(tid, ip); in jfs_create()
136 ino = ip->i_ino; in jfs_create()
146 ip->i_op = &jfs_file_inode_operations; in jfs_create()
147 ip->i_fop = &jfs_file_operations; in jfs_create()
148 ip->i_mapping->a_ops = &jfs_aops; in jfs_create()
150 mark_inode_dirty(ip); in jfs_create()
160 mutex_unlock(&JFS_IP(ip)->commit_mutex); in jfs_create()
163 free_ea_wmap(ip); in jfs_create()
164 clear_nlink(ip); in jfs_create()
165 discard_new_inode(ip); in jfs_create()
167 d_instantiate_new(dentry, ip); in jfs_create()
200 struct inode *ip = NULL; /* child directory inode */ in jfs_mkdir() local
225 ip = ialloc(dip, S_IFDIR | mode); in jfs_mkdir()
226 if (IS_ERR(ip)) { in jfs_mkdir()
227 rc = PTR_ERR(ip); in jfs_mkdir()
234 mutex_lock_nested(&JFS_IP(ip)->commit_mutex, COMMIT_MUTEX_CHILD); in jfs_mkdir()
236 rc = jfs_init_acl(tid, ip, dip); in jfs_mkdir()
240 rc = jfs_init_security(tid, ip, dip, &dentry->d_name); in jfs_mkdir()
254 tblk->ino = ip->i_ino; in jfs_mkdir()
255 tblk->u.ixpxd = JFS_IP(ip)->ixpxd; in jfs_mkdir()
258 iplist[1] = ip; in jfs_mkdir()
263 dtInitRoot(tid, ip, dip->i_ino); in jfs_mkdir()
269 ino = ip->i_ino; in jfs_mkdir()
279 set_nlink(ip, 2); /* for '.' */ in jfs_mkdir()
280 ip->i_op = &jfs_dir_inode_operations; in jfs_mkdir()
281 ip->i_fop = &jfs_dir_operations; in jfs_mkdir()
283 mark_inode_dirty(ip); in jfs_mkdir()
294 mutex_unlock(&JFS_IP(ip)->commit_mutex); in jfs_mkdir()
297 free_ea_wmap(ip); in jfs_mkdir()
298 clear_nlink(ip); in jfs_mkdir()
299 discard_new_inode(ip); in jfs_mkdir()
301 d_instantiate_new(dentry, ip); in jfs_mkdir()
337 struct inode *ip = d_inode(dentry); in jfs_rmdir() local
349 rc = dquot_initialize(ip); in jfs_rmdir()
354 if (!dtEmpty(ip)) { in jfs_rmdir()
366 mutex_lock_nested(&JFS_IP(ip)->commit_mutex, COMMIT_MUTEX_CHILD); in jfs_rmdir()
369 iplist[1] = ip; in jfs_rmdir()
373 tblk->u.ip = ip; in jfs_rmdir()
378 ino = ip->i_ino; in jfs_rmdir()
384 mutex_unlock(&JFS_IP(ip)->commit_mutex); in jfs_rmdir()
400 if (JFS_IP(ip)->ea.flag & DXD_EXTENT) { in jfs_rmdir()
402 txEA(tid, ip, &JFS_IP(ip)->ea, NULL); in jfs_rmdir()
404 JFS_IP(ip)->ea.flag = 0; in jfs_rmdir()
407 if (JFS_IP(ip)->acl.flag & DXD_EXTENT) { in jfs_rmdir()
409 txEA(tid, ip, &JFS_IP(ip)->acl, NULL); in jfs_rmdir()
411 JFS_IP(ip)->acl.flag = 0; in jfs_rmdir()
414 clear_nlink(ip); in jfs_rmdir()
415 mark_inode_dirty(ip); in jfs_rmdir()
421 mutex_unlock(&JFS_IP(ip)->commit_mutex); in jfs_rmdir()
467 struct inode *ip = d_inode(dentry); in jfs_unlink() local
481 rc = dquot_initialize(ip); in jfs_unlink()
488 IWRITE_LOCK(ip, RDWRLOCK_NORMAL); in jfs_unlink()
493 mutex_lock_nested(&JFS_IP(ip)->commit_mutex, COMMIT_MUTEX_CHILD); in jfs_unlink()
496 iplist[1] = ip; in jfs_unlink()
501 ino = ip->i_ino; in jfs_unlink()
507 mutex_unlock(&JFS_IP(ip)->commit_mutex); in jfs_unlink()
509 IWRITE_UNLOCK(ip); in jfs_unlink()
513 ASSERT(ip->i_nlink); in jfs_unlink()
515 ip->i_ctime = dip->i_ctime = dip->i_mtime = current_time(ip); in jfs_unlink()
519 inode_dec_link_count(ip); in jfs_unlink()
524 if (ip->i_nlink == 0) { in jfs_unlink()
525 assert(!test_cflag(COMMIT_Nolink, ip)); in jfs_unlink()
527 if ((new_size = commitZeroLink(tid, ip)) < 0) { in jfs_unlink()
530 mutex_unlock(&JFS_IP(ip)->commit_mutex); in jfs_unlink()
532 IWRITE_UNLOCK(ip); in jfs_unlink()
538 tblk->u.ip = ip; in jfs_unlink()
559 mutex_unlock(&JFS_IP(ip)->commit_mutex); in jfs_unlink()
564 mutex_lock(&JFS_IP(ip)->commit_mutex); in jfs_unlink()
565 new_size = xtTruncate_pmap(tid, ip, new_size); in jfs_unlink()
572 mutex_unlock(&JFS_IP(ip)->commit_mutex); in jfs_unlink()
575 if (ip->i_nlink == 0) in jfs_unlink()
576 set_cflag(COMMIT_Nolink, ip); in jfs_unlink()
578 IWRITE_UNLOCK(ip); in jfs_unlink()
622 static s64 commitZeroLink(tid_t tid, struct inode *ip) in commitZeroLink() argument
627 jfs_info("commitZeroLink: tid = %d, ip = 0x%p", tid, ip); in commitZeroLink()
629 filetype = ip->i_mode & S_IFMT; in commitZeroLink()
635 if (ip->i_size < IDATASIZE) { in commitZeroLink()
636 ip->i_size = 0; in commitZeroLink()
645 set_cflag(COMMIT_Freewmap, ip); in commitZeroLink()
654 if (JFS_IP(ip)->ea.flag & DXD_EXTENT) in commitZeroLink()
656 txEA(tid, ip, &JFS_IP(ip)->ea, NULL); in commitZeroLink()
661 if (JFS_IP(ip)->acl.flag & DXD_EXTENT) in commitZeroLink()
663 txEA(tid, ip, &JFS_IP(ip)->acl, NULL); in commitZeroLink()
671 if (ip->i_size) in commitZeroLink()
672 return xtTruncate_pmap(tid, ip, 0); in commitZeroLink()
688 void jfs_free_zero_link(struct inode *ip) in jfs_free_zero_link() argument
692 jfs_info("jfs_free_zero_link: ip = 0x%p", ip); in jfs_free_zero_link()
697 type = ip->i_mode & S_IFMT; in jfs_free_zero_link()
704 if (ip->i_size < IDATASIZE) in jfs_free_zero_link()
714 if (JFS_IP(ip)->ea.flag & DXD_EXTENT) { in jfs_free_zero_link()
715 s64 xaddr = addressDXD(&JFS_IP(ip)->ea); in jfs_free_zero_link()
716 int xlen = lengthDXD(&JFS_IP(ip)->ea); in jfs_free_zero_link()
721 invalidate_dxd_metapages(ip, JFS_IP(ip)->ea); in jfs_free_zero_link()
729 txFreeMap(ip, pxdlock, NULL, COMMIT_WMAP); in jfs_free_zero_link()
735 if (JFS_IP(ip)->acl.flag & DXD_EXTENT) { in jfs_free_zero_link()
736 s64 xaddr = addressDXD(&JFS_IP(ip)->acl); in jfs_free_zero_link()
737 int xlen = lengthDXD(&JFS_IP(ip)->acl); in jfs_free_zero_link()
741 invalidate_dxd_metapages(ip, JFS_IP(ip)->acl); in jfs_free_zero_link()
749 txFreeMap(ip, pxdlock, NULL, COMMIT_WMAP); in jfs_free_zero_link()
757 if (ip->i_size) in jfs_free_zero_link()
758 xtTruncate(0, ip, 0, COMMIT_WMAP); in jfs_free_zero_link()
790 struct inode *ip = d_inode(old_dentry); in jfs_link() local
802 tid = txBegin(ip->i_sb, 0); in jfs_link()
805 mutex_lock_nested(&JFS_IP(ip)->commit_mutex, COMMIT_MUTEX_CHILD); in jfs_link()
819 ino = ip->i_ino; in jfs_link()
824 inc_nlink(ip); /* for new link */ in jfs_link()
825 ip->i_ctime = current_time(ip); in jfs_link()
828 ihold(ip); in jfs_link()
830 iplist[0] = ip; in jfs_link()
835 drop_nlink(ip); /* never instantiated */ in jfs_link()
836 iput(ip); in jfs_link()
838 d_instantiate(dentry, ip); in jfs_link()
846 mutex_unlock(&JFS_IP(ip)->commit_mutex); in jfs_link()
881 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 ip->i_link = JFS_IP(ip)->i_inline; in jfs_symlink()
950 memcpy(ip->i_link, name, ssize); 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 inode_nohighmem(ip); in jfs_symlink()
971 ip->i_mapping->a_ops = &jfs_aops; in jfs_symlink()
978 sb = ip->i_sb; in jfs_symlink()
983 if ((rc = xtInsert(tid, ip, 0, 0, xlen, &xaddr, 0))) { in jfs_symlink()
987 ip->i_size = ssize - 1; in jfs_symlink()
992 mp = get_metapage(ip, xaddr, PSIZE, 1); in jfs_symlink()
995 xtTruncate(tid, ip, 0, COMMIT_PWMAP); in jfs_symlink()
1013 ino = ip->i_ino; in jfs_symlink()
1018 xtTruncate(tid, ip, 0, COMMIT_PWMAP); in jfs_symlink()
1024 mark_inode_dirty(ip); in jfs_symlink()
1033 iplist[1] = ip; in jfs_symlink()
1038 mutex_unlock(&JFS_IP(ip)->commit_mutex); in jfs_symlink()
1041 free_ea_wmap(ip); in jfs_symlink()
1042 clear_nlink(ip); in jfs_symlink()
1043 discard_new_inode(ip); in jfs_symlink()
1045 d_instantiate_new(dentry, ip); in jfs_symlink()
1190 tblk->u.ip = new_ip; in jfs_rename()
1201 tblk->u.ip = new_ip; in jfs_rename()
1355 struct inode *ip; in jfs_mknod() local
1370 ip = ialloc(dir, mode); in jfs_mknod()
1371 if (IS_ERR(ip)) { in jfs_mknod()
1372 rc = PTR_ERR(ip); in jfs_mknod()
1375 jfs_ip = JFS_IP(ip); in jfs_mknod()
1380 mutex_lock_nested(&JFS_IP(ip)->commit_mutex, COMMIT_MUTEX_CHILD); in jfs_mknod()
1382 rc = jfs_init_acl(tid, ip, dir); in jfs_mknod()
1386 rc = jfs_init_security(tid, ip, dir, &dentry->d_name); in jfs_mknod()
1399 tblk->ino = ip->i_ino; in jfs_mknod()
1400 tblk->u.ixpxd = JFS_IP(ip)->ixpxd; in jfs_mknod()
1402 ino = ip->i_ino; in jfs_mknod()
1408 ip->i_op = &jfs_file_inode_operations; in jfs_mknod()
1410 init_special_inode(ip, ip->i_mode, rdev); in jfs_mknod()
1412 mark_inode_dirty(ip); in jfs_mknod()
1419 iplist[1] = ip; in jfs_mknod()
1424 mutex_unlock(&JFS_IP(ip)->commit_mutex); in jfs_mknod()
1427 free_ea_wmap(ip); in jfs_mknod()
1428 clear_nlink(ip); in jfs_mknod()
1429 discard_new_inode(ip); in jfs_mknod()
1431 d_instantiate_new(dentry, ip); in jfs_mknod()
1446 struct inode *ip; in jfs_lookup() local
1457 ip = NULL; in jfs_lookup()
1460 ip = ERR_PTR(rc); in jfs_lookup()
1462 ip = jfs_iget(dip->i_sb, inum); in jfs_lookup()
1463 if (IS_ERR(ip)) in jfs_lookup()
1467 return d_splice_alias(ip, dentry); in jfs_lookup()