Lines Matching refs:ip

80 	struct inode *ip = NULL;	/* child directory inode */  in jfs_create()  local
105 ip = ialloc(dip, mode); in jfs_create()
106 if (IS_ERR(ip)) { in jfs_create()
107 rc = PTR_ERR(ip); in jfs_create()
114 mutex_lock_nested(&JFS_IP(ip)->commit_mutex, COMMIT_MUTEX_CHILD); in jfs_create()
116 rc = jfs_init_acl(tid, ip, dip); in jfs_create()
120 rc = jfs_init_security(tid, ip, dip, &dentry->d_name); in jfs_create()
134 tblk->ino = ip->i_ino; in jfs_create()
135 tblk->u.ixpxd = JFS_IP(ip)->ixpxd; in jfs_create()
138 iplist[1] = ip; in jfs_create()
143 xtInitRoot(tid, ip); in jfs_create()
149 ino = ip->i_ino; in jfs_create()
159 ip->i_op = &jfs_file_inode_operations; in jfs_create()
160 ip->i_fop = &jfs_file_operations; in jfs_create()
161 ip->i_mapping->a_ops = &jfs_aops; in jfs_create()
163 mark_inode_dirty(ip); in jfs_create()
173 mutex_unlock(&JFS_IP(ip)->commit_mutex); in jfs_create()
176 free_ea_wmap(ip); in jfs_create()
177 clear_nlink(ip); in jfs_create()
178 unlock_new_inode(ip); in jfs_create()
179 iput(ip); in jfs_create()
181 unlock_new_inode(ip); in jfs_create()
182 d_instantiate(dentry, ip); in jfs_create()
214 struct inode *ip = NULL; /* child directory inode */ in jfs_mkdir() local
239 ip = ialloc(dip, S_IFDIR | mode); in jfs_mkdir()
240 if (IS_ERR(ip)) { in jfs_mkdir()
241 rc = PTR_ERR(ip); in jfs_mkdir()
248 mutex_lock_nested(&JFS_IP(ip)->commit_mutex, COMMIT_MUTEX_CHILD); in jfs_mkdir()
250 rc = jfs_init_acl(tid, ip, dip); in jfs_mkdir()
254 rc = jfs_init_security(tid, ip, dip, &dentry->d_name); in jfs_mkdir()
268 tblk->ino = ip->i_ino; in jfs_mkdir()
269 tblk->u.ixpxd = JFS_IP(ip)->ixpxd; in jfs_mkdir()
272 iplist[1] = ip; in jfs_mkdir()
277 dtInitRoot(tid, ip, dip->i_ino); in jfs_mkdir()
283 ino = ip->i_ino; in jfs_mkdir()
293 set_nlink(ip, 2); /* for '.' */ in jfs_mkdir()
294 ip->i_op = &jfs_dir_inode_operations; in jfs_mkdir()
295 ip->i_fop = &jfs_dir_operations; in jfs_mkdir()
297 mark_inode_dirty(ip); in jfs_mkdir()
308 mutex_unlock(&JFS_IP(ip)->commit_mutex); in jfs_mkdir()
311 free_ea_wmap(ip); in jfs_mkdir()
312 clear_nlink(ip); in jfs_mkdir()
313 unlock_new_inode(ip); in jfs_mkdir()
314 iput(ip); in jfs_mkdir()
316 unlock_new_inode(ip); in jfs_mkdir()
317 d_instantiate(dentry, ip); in jfs_mkdir()
353 struct inode *ip = d_inode(dentry); in jfs_rmdir() local
365 rc = dquot_initialize(ip); in jfs_rmdir()
370 if (!dtEmpty(ip)) { in jfs_rmdir()
382 mutex_lock_nested(&JFS_IP(ip)->commit_mutex, COMMIT_MUTEX_CHILD); in jfs_rmdir()
385 iplist[1] = ip; in jfs_rmdir()
389 tblk->u.ip = ip; in jfs_rmdir()
394 ino = ip->i_ino; in jfs_rmdir()
400 mutex_unlock(&JFS_IP(ip)->commit_mutex); in jfs_rmdir()
416 if (JFS_IP(ip)->ea.flag & DXD_EXTENT) { in jfs_rmdir()
418 txEA(tid, ip, &JFS_IP(ip)->ea, NULL); in jfs_rmdir()
420 JFS_IP(ip)->ea.flag = 0; in jfs_rmdir()
423 if (JFS_IP(ip)->acl.flag & DXD_EXTENT) { in jfs_rmdir()
425 txEA(tid, ip, &JFS_IP(ip)->acl, NULL); in jfs_rmdir()
427 JFS_IP(ip)->acl.flag = 0; in jfs_rmdir()
430 clear_nlink(ip); in jfs_rmdir()
431 mark_inode_dirty(ip); in jfs_rmdir()
437 mutex_unlock(&JFS_IP(ip)->commit_mutex); in jfs_rmdir()
483 struct inode *ip = d_inode(dentry); in jfs_unlink() local
497 rc = dquot_initialize(ip); in jfs_unlink()
504 IWRITE_LOCK(ip, RDWRLOCK_NORMAL); in jfs_unlink()
509 mutex_lock_nested(&JFS_IP(ip)->commit_mutex, COMMIT_MUTEX_CHILD); in jfs_unlink()
512 iplist[1] = ip; in jfs_unlink()
517 ino = ip->i_ino; in jfs_unlink()
523 mutex_unlock(&JFS_IP(ip)->commit_mutex); in jfs_unlink()
525 IWRITE_UNLOCK(ip); in jfs_unlink()
529 ASSERT(ip->i_nlink); in jfs_unlink()
531 ip->i_ctime = dip->i_ctime = dip->i_mtime = CURRENT_TIME; in jfs_unlink()
535 inode_dec_link_count(ip); in jfs_unlink()
540 if (ip->i_nlink == 0) { in jfs_unlink()
541 assert(!test_cflag(COMMIT_Nolink, ip)); in jfs_unlink()
543 if ((new_size = commitZeroLink(tid, ip)) < 0) { in jfs_unlink()
546 mutex_unlock(&JFS_IP(ip)->commit_mutex); in jfs_unlink()
548 IWRITE_UNLOCK(ip); in jfs_unlink()
554 tblk->u.ip = ip; in jfs_unlink()
575 mutex_unlock(&JFS_IP(ip)->commit_mutex); in jfs_unlink()
580 mutex_lock(&JFS_IP(ip)->commit_mutex); in jfs_unlink()
581 new_size = xtTruncate_pmap(tid, ip, new_size); in jfs_unlink()
588 mutex_unlock(&JFS_IP(ip)->commit_mutex); in jfs_unlink()
591 if (ip->i_nlink == 0) in jfs_unlink()
592 set_cflag(COMMIT_Nolink, ip); in jfs_unlink()
594 IWRITE_UNLOCK(ip); in jfs_unlink()
638 static s64 commitZeroLink(tid_t tid, struct inode *ip) in commitZeroLink() argument
643 jfs_info("commitZeroLink: tid = %d, ip = 0x%p", tid, ip); in commitZeroLink()
645 filetype = ip->i_mode & S_IFMT; in commitZeroLink()
651 if (ip->i_size < IDATASIZE) { in commitZeroLink()
652 ip->i_size = 0; in commitZeroLink()
661 set_cflag(COMMIT_Freewmap, ip); in commitZeroLink()
670 if (JFS_IP(ip)->ea.flag & DXD_EXTENT) in commitZeroLink()
672 txEA(tid, ip, &JFS_IP(ip)->ea, NULL); in commitZeroLink()
677 if (JFS_IP(ip)->acl.flag & DXD_EXTENT) in commitZeroLink()
679 txEA(tid, ip, &JFS_IP(ip)->acl, NULL); in commitZeroLink()
687 if (ip->i_size) in commitZeroLink()
688 return xtTruncate_pmap(tid, ip, 0); in commitZeroLink()
704 void jfs_free_zero_link(struct inode *ip) in jfs_free_zero_link() argument
708 jfs_info("jfs_free_zero_link: ip = 0x%p", ip); in jfs_free_zero_link()
713 type = ip->i_mode & S_IFMT; in jfs_free_zero_link()
720 if (ip->i_size < IDATASIZE) in jfs_free_zero_link()
730 if (JFS_IP(ip)->ea.flag & DXD_EXTENT) { in jfs_free_zero_link()
731 s64 xaddr = addressDXD(&JFS_IP(ip)->ea); in jfs_free_zero_link()
732 int xlen = lengthDXD(&JFS_IP(ip)->ea); in jfs_free_zero_link()
737 invalidate_dxd_metapages(ip, JFS_IP(ip)->ea); in jfs_free_zero_link()
745 txFreeMap(ip, pxdlock, NULL, COMMIT_WMAP); in jfs_free_zero_link()
751 if (JFS_IP(ip)->acl.flag & DXD_EXTENT) { in jfs_free_zero_link()
752 s64 xaddr = addressDXD(&JFS_IP(ip)->acl); in jfs_free_zero_link()
753 int xlen = lengthDXD(&JFS_IP(ip)->acl); in jfs_free_zero_link()
757 invalidate_dxd_metapages(ip, JFS_IP(ip)->acl); in jfs_free_zero_link()
765 txFreeMap(ip, pxdlock, NULL, COMMIT_WMAP); in jfs_free_zero_link()
773 if (ip->i_size) in jfs_free_zero_link()
774 xtTruncate(0, ip, 0, COMMIT_WMAP); in jfs_free_zero_link()
806 struct inode *ip = d_inode(old_dentry); in jfs_link() local
818 tid = txBegin(ip->i_sb, 0); in jfs_link()
821 mutex_lock_nested(&JFS_IP(ip)->commit_mutex, COMMIT_MUTEX_CHILD); in jfs_link()
835 ino = ip->i_ino; in jfs_link()
840 inc_nlink(ip); /* for new link */ in jfs_link()
841 ip->i_ctime = CURRENT_TIME; in jfs_link()
844 ihold(ip); in jfs_link()
846 iplist[0] = ip; in jfs_link()
851 drop_nlink(ip); /* never instantiated */ in jfs_link()
852 iput(ip); in jfs_link()
854 d_instantiate(dentry, ip); in jfs_link()
862 mutex_unlock(&JFS_IP(ip)->commit_mutex); in jfs_link()
897 struct inode *ip = d_inode(dentry); in jfs_symlink() local
927 ip = ialloc(dip, S_IFLNK | 0777); in jfs_symlink()
928 if (IS_ERR(ip)) { in jfs_symlink()
929 rc = PTR_ERR(ip); in jfs_symlink()
936 mutex_lock_nested(&JFS_IP(ip)->commit_mutex, COMMIT_MUTEX_CHILD); in jfs_symlink()
938 rc = jfs_init_security(tid, ip, dip, &dentry->d_name); in jfs_symlink()
944 tblk->ino = ip->i_ino; in jfs_symlink()
945 tblk->u.ixpxd = JFS_IP(ip)->ixpxd; in jfs_symlink()
951 ip->i_mode |= 0777; in jfs_symlink()
956 xtInitRoot(tid, ip); in jfs_symlink()
963 ip->i_op = &jfs_fast_symlink_inode_operations; in jfs_symlink()
965 ip->i_link = JFS_IP(ip)->i_inline; in jfs_symlink()
966 memcpy(ip->i_link, name, ssize); in jfs_symlink()
967 ip->i_size = ssize - 1; in jfs_symlink()
973 if (ssize > sizeof (JFS_IP(ip)->i_inline)) in jfs_symlink()
974 JFS_IP(ip)->mode2 &= ~INLINEEA; in jfs_symlink()
983 jfs_info("jfs_symlink: allocate extent ip:0x%p", ip); in jfs_symlink()
985 ip->i_op = &jfs_symlink_inode_operations; in jfs_symlink()
986 ip->i_mapping->a_ops = &jfs_aops; in jfs_symlink()
993 sb = ip->i_sb; in jfs_symlink()
998 if ((rc = xtInsert(tid, ip, 0, 0, xlen, &xaddr, 0))) { in jfs_symlink()
1002 ip->i_size = ssize - 1; in jfs_symlink()
1007 mp = get_metapage(ip, xaddr, PSIZE, 1); in jfs_symlink()
1010 xtTruncate(tid, ip, 0, COMMIT_PWMAP); in jfs_symlink()
1028 ino = ip->i_ino; in jfs_symlink()
1033 xtTruncate(tid, ip, 0, COMMIT_PWMAP); in jfs_symlink()
1039 mark_inode_dirty(ip); in jfs_symlink()
1048 iplist[1] = ip; in jfs_symlink()
1053 mutex_unlock(&JFS_IP(ip)->commit_mutex); in jfs_symlink()
1056 free_ea_wmap(ip); in jfs_symlink()
1057 clear_nlink(ip); in jfs_symlink()
1058 unlock_new_inode(ip); in jfs_symlink()
1059 iput(ip); in jfs_symlink()
1061 unlock_new_inode(ip); in jfs_symlink()
1062 d_instantiate(dentry, ip); in jfs_symlink()
1204 tblk->u.ip = new_ip; in jfs_rename()
1215 tblk->u.ip = new_ip; in jfs_rename()
1369 struct inode *ip; in jfs_mknod() local
1384 ip = ialloc(dir, mode); in jfs_mknod()
1385 if (IS_ERR(ip)) { in jfs_mknod()
1386 rc = PTR_ERR(ip); in jfs_mknod()
1389 jfs_ip = JFS_IP(ip); in jfs_mknod()
1394 mutex_lock_nested(&JFS_IP(ip)->commit_mutex, COMMIT_MUTEX_CHILD); in jfs_mknod()
1396 rc = jfs_init_acl(tid, ip, dir); in jfs_mknod()
1400 rc = jfs_init_security(tid, ip, dir, &dentry->d_name); in jfs_mknod()
1413 tblk->ino = ip->i_ino; in jfs_mknod()
1414 tblk->u.ixpxd = JFS_IP(ip)->ixpxd; in jfs_mknod()
1416 ino = ip->i_ino; in jfs_mknod()
1422 ip->i_op = &jfs_file_inode_operations; in jfs_mknod()
1424 init_special_inode(ip, ip->i_mode, rdev); in jfs_mknod()
1426 mark_inode_dirty(ip); in jfs_mknod()
1433 iplist[1] = ip; in jfs_mknod()
1438 mutex_unlock(&JFS_IP(ip)->commit_mutex); in jfs_mknod()
1441 free_ea_wmap(ip); in jfs_mknod()
1442 clear_nlink(ip); in jfs_mknod()
1443 unlock_new_inode(ip); in jfs_mknod()
1444 iput(ip); in jfs_mknod()
1446 unlock_new_inode(ip); in jfs_mknod()
1447 d_instantiate(dentry, ip); in jfs_mknod()
1462 struct inode *ip; in jfs_lookup() local
1473 ip = NULL; in jfs_lookup()
1476 ip = ERR_PTR(rc); in jfs_lookup()
1478 ip = jfs_iget(dip->i_sb, inum); in jfs_lookup()
1479 if (IS_ERR(ip)) in jfs_lookup()
1483 return d_splice_alias(ip, dentry); in jfs_lookup()