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()
199 struct inode *ip = NULL; /* child directory inode */ in jfs_mkdir() local
224 ip = ialloc(dip, S_IFDIR | mode); in jfs_mkdir()
225 if (IS_ERR(ip)) { in jfs_mkdir()
226 rc = PTR_ERR(ip); in jfs_mkdir()
233 mutex_lock_nested(&JFS_IP(ip)->commit_mutex, COMMIT_MUTEX_CHILD); in jfs_mkdir()
235 rc = jfs_init_acl(tid, ip, dip); in jfs_mkdir()
239 rc = jfs_init_security(tid, ip, dip, &dentry->d_name); in jfs_mkdir()
253 tblk->ino = ip->i_ino; in jfs_mkdir()
254 tblk->u.ixpxd = JFS_IP(ip)->ixpxd; in jfs_mkdir()
257 iplist[1] = ip; in jfs_mkdir()
262 dtInitRoot(tid, ip, dip->i_ino); in jfs_mkdir()
268 ino = ip->i_ino; in jfs_mkdir()
278 set_nlink(ip, 2); /* for '.' */ in jfs_mkdir()
279 ip->i_op = &jfs_dir_inode_operations; in jfs_mkdir()
280 ip->i_fop = &jfs_dir_operations; in jfs_mkdir()
282 mark_inode_dirty(ip); in jfs_mkdir()
293 mutex_unlock(&JFS_IP(ip)->commit_mutex); in jfs_mkdir()
296 free_ea_wmap(ip); in jfs_mkdir()
297 clear_nlink(ip); in jfs_mkdir()
298 discard_new_inode(ip); in jfs_mkdir()
300 d_instantiate_new(dentry, ip); in jfs_mkdir()
336 struct inode *ip = d_inode(dentry); in jfs_rmdir() local
348 rc = dquot_initialize(ip); in jfs_rmdir()
353 if (!dtEmpty(ip)) { in jfs_rmdir()
365 mutex_lock_nested(&JFS_IP(ip)->commit_mutex, COMMIT_MUTEX_CHILD); in jfs_rmdir()
368 iplist[1] = ip; in jfs_rmdir()
372 tblk->u.ip = ip; in jfs_rmdir()
377 ino = ip->i_ino; in jfs_rmdir()
383 mutex_unlock(&JFS_IP(ip)->commit_mutex); in jfs_rmdir()
399 if (JFS_IP(ip)->ea.flag & DXD_EXTENT) { in jfs_rmdir()
401 txEA(tid, ip, &JFS_IP(ip)->ea, NULL); in jfs_rmdir()
403 JFS_IP(ip)->ea.flag = 0; in jfs_rmdir()
406 if (JFS_IP(ip)->acl.flag & DXD_EXTENT) { in jfs_rmdir()
408 txEA(tid, ip, &JFS_IP(ip)->acl, NULL); in jfs_rmdir()
410 JFS_IP(ip)->acl.flag = 0; in jfs_rmdir()
413 clear_nlink(ip); in jfs_rmdir()
414 mark_inode_dirty(ip); in jfs_rmdir()
420 mutex_unlock(&JFS_IP(ip)->commit_mutex); in jfs_rmdir()
466 struct inode *ip = d_inode(dentry); in jfs_unlink() local
480 rc = dquot_initialize(ip); in jfs_unlink()
487 IWRITE_LOCK(ip, RDWRLOCK_NORMAL); in jfs_unlink()
492 mutex_lock_nested(&JFS_IP(ip)->commit_mutex, COMMIT_MUTEX_CHILD); in jfs_unlink()
495 iplist[1] = ip; in jfs_unlink()
500 ino = ip->i_ino; in jfs_unlink()
506 mutex_unlock(&JFS_IP(ip)->commit_mutex); in jfs_unlink()
508 IWRITE_UNLOCK(ip); in jfs_unlink()
512 ASSERT(ip->i_nlink); in jfs_unlink()
514 ip->i_ctime = dip->i_ctime = dip->i_mtime = current_time(ip); in jfs_unlink()
518 inode_dec_link_count(ip); in jfs_unlink()
523 if (ip->i_nlink == 0) { in jfs_unlink()
524 assert(!test_cflag(COMMIT_Nolink, ip)); in jfs_unlink()
526 if ((new_size = commitZeroLink(tid, ip)) < 0) { in jfs_unlink()
529 mutex_unlock(&JFS_IP(ip)->commit_mutex); in jfs_unlink()
531 IWRITE_UNLOCK(ip); in jfs_unlink()
537 tblk->u.ip = ip; in jfs_unlink()
558 mutex_unlock(&JFS_IP(ip)->commit_mutex); in jfs_unlink()
563 mutex_lock(&JFS_IP(ip)->commit_mutex); in jfs_unlink()
564 new_size = xtTruncate_pmap(tid, ip, new_size); in jfs_unlink()
571 mutex_unlock(&JFS_IP(ip)->commit_mutex); in jfs_unlink()
574 if (ip->i_nlink == 0) in jfs_unlink()
575 set_cflag(COMMIT_Nolink, ip); in jfs_unlink()
577 IWRITE_UNLOCK(ip); in jfs_unlink()
621 static s64 commitZeroLink(tid_t tid, struct inode *ip) in commitZeroLink() argument
626 jfs_info("commitZeroLink: tid = %d, ip = 0x%p", tid, ip); in commitZeroLink()
628 filetype = ip->i_mode & S_IFMT; in commitZeroLink()
634 if (ip->i_size < IDATASIZE) { in commitZeroLink()
635 ip->i_size = 0; in commitZeroLink()
644 set_cflag(COMMIT_Freewmap, ip); in commitZeroLink()
653 if (JFS_IP(ip)->ea.flag & DXD_EXTENT) in commitZeroLink()
655 txEA(tid, ip, &JFS_IP(ip)->ea, NULL); in commitZeroLink()
660 if (JFS_IP(ip)->acl.flag & DXD_EXTENT) in commitZeroLink()
662 txEA(tid, ip, &JFS_IP(ip)->acl, NULL); in commitZeroLink()
670 if (ip->i_size) in commitZeroLink()
671 return xtTruncate_pmap(tid, ip, 0); in commitZeroLink()
687 void jfs_free_zero_link(struct inode *ip) in jfs_free_zero_link() argument
691 jfs_info("jfs_free_zero_link: ip = 0x%p", ip); in jfs_free_zero_link()
696 type = ip->i_mode & S_IFMT; in jfs_free_zero_link()
703 if (ip->i_size < IDATASIZE) in jfs_free_zero_link()
713 if (JFS_IP(ip)->ea.flag & DXD_EXTENT) { in jfs_free_zero_link()
714 s64 xaddr = addressDXD(&JFS_IP(ip)->ea); in jfs_free_zero_link()
715 int xlen = lengthDXD(&JFS_IP(ip)->ea); in jfs_free_zero_link()
720 invalidate_dxd_metapages(ip, JFS_IP(ip)->ea); in jfs_free_zero_link()
728 txFreeMap(ip, pxdlock, NULL, COMMIT_WMAP); in jfs_free_zero_link()
734 if (JFS_IP(ip)->acl.flag & DXD_EXTENT) { in jfs_free_zero_link()
735 s64 xaddr = addressDXD(&JFS_IP(ip)->acl); in jfs_free_zero_link()
736 int xlen = lengthDXD(&JFS_IP(ip)->acl); in jfs_free_zero_link()
740 invalidate_dxd_metapages(ip, JFS_IP(ip)->acl); in jfs_free_zero_link()
748 txFreeMap(ip, pxdlock, NULL, COMMIT_WMAP); in jfs_free_zero_link()
756 if (ip->i_size) in jfs_free_zero_link()
757 xtTruncate(0, ip, 0, COMMIT_WMAP); in jfs_free_zero_link()
789 struct inode *ip = d_inode(old_dentry); in jfs_link() local
801 tid = txBegin(ip->i_sb, 0); in jfs_link()
804 mutex_lock_nested(&JFS_IP(ip)->commit_mutex, COMMIT_MUTEX_CHILD); in jfs_link()
818 ino = ip->i_ino; in jfs_link()
823 inc_nlink(ip); /* for new link */ in jfs_link()
824 ip->i_ctime = current_time(ip); in jfs_link()
827 ihold(ip); in jfs_link()
829 iplist[0] = ip; in jfs_link()
834 drop_nlink(ip); /* never instantiated */ in jfs_link()
835 iput(ip); in jfs_link()
837 d_instantiate(dentry, ip); in jfs_link()
845 mutex_unlock(&JFS_IP(ip)->commit_mutex); in jfs_link()
880 struct inode *ip = d_inode(dentry); in jfs_symlink() local
910 ip = ialloc(dip, S_IFLNK | 0777); in jfs_symlink()
911 if (IS_ERR(ip)) { in jfs_symlink()
912 rc = PTR_ERR(ip); in jfs_symlink()
919 mutex_lock_nested(&JFS_IP(ip)->commit_mutex, COMMIT_MUTEX_CHILD); in jfs_symlink()
921 rc = jfs_init_security(tid, ip, dip, &dentry->d_name); in jfs_symlink()
927 tblk->ino = ip->i_ino; in jfs_symlink()
928 tblk->u.ixpxd = JFS_IP(ip)->ixpxd; in jfs_symlink()
934 ip->i_mode |= 0777; in jfs_symlink()
939 xtInitRoot(tid, ip); in jfs_symlink()
946 ip->i_op = &jfs_fast_symlink_inode_operations; in jfs_symlink()
948 ip->i_link = JFS_IP(ip)->i_inline; in jfs_symlink()
949 memcpy(ip->i_link, name, ssize); in jfs_symlink()
950 ip->i_size = ssize - 1; in jfs_symlink()
956 if (ssize > sizeof (JFS_IP(ip)->i_inline)) in jfs_symlink()
957 JFS_IP(ip)->mode2 &= ~INLINEEA; in jfs_symlink()
966 jfs_info("jfs_symlink: allocate extent ip:0x%p", ip); in jfs_symlink()
968 ip->i_op = &jfs_symlink_inode_operations; in jfs_symlink()
969 inode_nohighmem(ip); 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 discard_new_inode(ip); in jfs_symlink()
1044 d_instantiate_new(dentry, ip); in jfs_symlink()
1189 tblk->u.ip = new_ip; in jfs_rename()
1200 tblk->u.ip = new_ip; in jfs_rename()
1354 struct inode *ip; in jfs_mknod() local
1369 ip = ialloc(dir, mode); in jfs_mknod()
1370 if (IS_ERR(ip)) { in jfs_mknod()
1371 rc = PTR_ERR(ip); in jfs_mknod()
1374 jfs_ip = JFS_IP(ip); in jfs_mknod()
1379 mutex_lock_nested(&JFS_IP(ip)->commit_mutex, COMMIT_MUTEX_CHILD); in jfs_mknod()
1381 rc = jfs_init_acl(tid, ip, dir); in jfs_mknod()
1385 rc = jfs_init_security(tid, ip, dir, &dentry->d_name); in jfs_mknod()
1398 tblk->ino = ip->i_ino; in jfs_mknod()
1399 tblk->u.ixpxd = JFS_IP(ip)->ixpxd; in jfs_mknod()
1401 ino = ip->i_ino; in jfs_mknod()
1407 ip->i_op = &jfs_file_inode_operations; in jfs_mknod()
1409 init_special_inode(ip, ip->i_mode, rdev); in jfs_mknod()
1411 mark_inode_dirty(ip); in jfs_mknod()
1418 iplist[1] = ip; in jfs_mknod()
1423 mutex_unlock(&JFS_IP(ip)->commit_mutex); in jfs_mknod()
1426 free_ea_wmap(ip); in jfs_mknod()
1427 clear_nlink(ip); in jfs_mknod()
1428 discard_new_inode(ip); in jfs_mknod()
1430 d_instantiate_new(dentry, ip); in jfs_mknod()
1445 struct inode *ip; in jfs_lookup() local
1456 ip = NULL; in jfs_lookup()
1459 ip = ERR_PTR(rc); in jfs_lookup()
1461 ip = jfs_iget(dip->i_sb, inum); in jfs_lookup()
1462 if (IS_ERR(ip)) in jfs_lookup()
1466 return d_splice_alias(ip, dentry); in jfs_lookup()