Lines Matching refs:inode
70 struct inode *dir,
71 struct inode *inode,
79 struct inode **ret_orphan_dir,
87 struct inode *inode,
91 struct inode *orphan_dir_inode,
96 struct inode *inode,
101 struct inode *inode1,
103 struct inode *inode2,
106 static void ocfs2_double_unlock(struct inode *inode1, struct inode *inode2);
112 static struct dentry *ocfs2_lookup(struct inode *dir, struct dentry *dentry, in ocfs2_lookup()
117 struct inode *inode = NULL; in ocfs2_lookup() local
143 inode = ocfs2_iget(OCFS2_SB(dir->i_sb), blkno, 0, 0); in ocfs2_lookup()
144 if (IS_ERR(inode)) { in ocfs2_lookup()
149 oi = OCFS2_I(inode); in ocfs2_lookup()
160 ret = d_splice_alias(inode, dentry); in ocfs2_lookup()
162 if (inode) { in ocfs2_lookup()
176 status = ocfs2_dentry_attach_lock(dentry, inode, in ocfs2_lookup()
200 static struct inode *ocfs2_get_init_inode(struct inode *dir, umode_t mode) in ocfs2_get_init_inode()
202 struct inode *inode; in ocfs2_get_init_inode() local
204 inode = new_inode(dir->i_sb); in ocfs2_get_init_inode()
205 if (!inode) { in ocfs2_get_init_inode()
214 set_nlink(inode, 2); in ocfs2_get_init_inode()
215 inode_init_owner(inode, dir, mode); in ocfs2_get_init_inode()
216 dquot_initialize(inode); in ocfs2_get_init_inode()
217 return inode; in ocfs2_get_init_inode()
221 struct dentry *dentry, struct inode *inode) in ocfs2_cleanup_add_entry_failure() argument
232 iput(inode); in ocfs2_cleanup_add_entry_failure()
235 static int ocfs2_mknod(struct inode *dir, in ocfs2_mknod()
246 struct inode *inode = NULL; in ocfs2_mknod() local
312 inode = ocfs2_get_init_inode(dir, mode); in ocfs2_mknod()
313 if (!inode) { in ocfs2_mknod()
320 status = ocfs2_init_security_get(inode, dir, &dentry->d_name, &si); in ocfs2_mknod()
376 status = dquot_alloc_inode(inode); in ocfs2_mknod()
382 status = ocfs2_mknod_locked(osb, dir, inode, dev, in ocfs2_mknod()
391 status = ocfs2_fill_new_dir(osb, handle, dir, inode, in ocfs2_mknod()
410 status = ocfs2_init_acl(handle, inode, dir, new_fe_bh, parent_fe_bh, in ocfs2_mknod()
419 status = ocfs2_init_security_set(handle, inode, new_fe_bh, &si, in ocfs2_mknod()
432 status = ocfs2_dentry_attach_lock(dentry, inode, in ocfs2_mknod()
441 status = ocfs2_add_entry(handle, dentry, inode, in ocfs2_mknod()
442 OCFS2_I(inode)->ip_blkno, parent_fe_bh, in ocfs2_mknod()
449 insert_inode_hash(inode); in ocfs2_mknod()
450 d_instantiate(dentry, inode); in ocfs2_mknod()
454 dquot_free_inode(inode); in ocfs2_mknod()
482 if ((status < 0) && inode) { in ocfs2_mknod()
484 ocfs2_cleanup_add_entry_failure(osb, dentry, inode); in ocfs2_mknod()
486 OCFS2_I(inode)->ip_flags |= OCFS2_INODE_SKIP_ORPHAN_DIR; in ocfs2_mknod()
487 clear_nlink(inode); in ocfs2_mknod()
488 iput(inode); in ocfs2_mknod()
497 static int __ocfs2_mknod_locked(struct inode *dir, in __ocfs2_mknod_locked()
498 struct inode *inode, in __ocfs2_mknod_locked() argument
511 struct ocfs2_inode_info *oi = OCFS2_I(inode); in __ocfs2_mknod_locked()
518 inode->i_ino = ino_from_blkno(osb->sb, fe_blkno); in __ocfs2_mknod_locked()
519 OCFS2_I(inode)->ip_blkno = fe_blkno; in __ocfs2_mknod_locked()
521 inode->i_generation = osb->s_next_generation++; in __ocfs2_mknod_locked()
530 ocfs2_set_new_buffer_uptodate(INODE_CACHE(inode), *new_fe_bh); in __ocfs2_mknod_locked()
532 status = ocfs2_journal_access_di(handle, INODE_CACHE(inode), in __ocfs2_mknod_locked()
543 fe->i_generation = cpu_to_le32(inode->i_generation); in __ocfs2_mknod_locked()
549 fe->i_uid = cpu_to_le32(i_uid_read(inode)); in __ocfs2_mknod_locked()
550 fe->i_gid = cpu_to_le32(i_gid_read(inode)); in __ocfs2_mknod_locked()
551 fe->i_mode = cpu_to_le16(inode->i_mode); in __ocfs2_mknod_locked()
552 if (S_ISCHR(inode->i_mode) || S_ISBLK(inode->i_mode)) in __ocfs2_mknod_locked()
555 ocfs2_set_links_count(fe, inode->i_nlink); in __ocfs2_mknod_locked()
571 if (S_ISDIR(inode->i_mode) && ocfs2_supports_inline_data(osb)) { in __ocfs2_mknod_locked()
585 ocfs2_populate_inode(inode, fe, 1); in __ocfs2_mknod_locked()
586 ocfs2_ci_set_new(osb, INODE_CACHE(inode)); in __ocfs2_mknod_locked()
588 status = ocfs2_create_new_inode_locks(inode); in __ocfs2_mknod_locked()
610 struct inode *dir, in ocfs2_mknod_locked()
611 struct inode *inode, in ocfs2_mknod_locked() argument
632 return __ocfs2_mknod_locked(dir, inode, dev, new_fe_bh, in ocfs2_mknod_locked()
637 static int ocfs2_mkdir(struct inode *dir, in ocfs2_mkdir()
652 static int ocfs2_create(struct inode *dir, in ocfs2_create()
669 struct inode *dir, in ocfs2_link()
673 struct inode *inode = d_inode(old_dentry); in ocfs2_link() local
674 struct inode *old_dir = d_inode(old_dentry->d_parent); in ocfs2_link()
685 trace_ocfs2_link((unsigned long long)OCFS2_I(inode)->ip_blkno, in ocfs2_link()
689 if (S_ISDIR(inode->i_mode)) in ocfs2_link()
731 if (old_de_ino != OCFS2_I(inode)->ip_blkno) { in ocfs2_link()
749 err = ocfs2_inode_lock(inode, &fe_bh, 1); in ocfs2_link()
773 err = ocfs2_journal_access_di(handle, INODE_CACHE(inode), fe_bh, in ocfs2_link()
780 inc_nlink(inode); in ocfs2_link()
781 inode->i_ctime = CURRENT_TIME; in ocfs2_link()
782 ocfs2_set_links_count(fe, inode->i_nlink); in ocfs2_link()
783 fe->i_ctime = cpu_to_le64(inode->i_ctime.tv_sec); in ocfs2_link()
784 fe->i_ctime_nsec = cpu_to_le32(inode->i_ctime.tv_nsec); in ocfs2_link()
787 err = ocfs2_add_entry(handle, dentry, inode, in ocfs2_link()
788 OCFS2_I(inode)->ip_blkno, in ocfs2_link()
792 drop_nlink(inode); in ocfs2_link()
797 err = ocfs2_dentry_attach_lock(dentry, inode, OCFS2_I(dir)->ip_blkno); in ocfs2_link()
803 ihold(inode); in ocfs2_link()
804 d_instantiate(dentry, inode); in ocfs2_link()
810 ocfs2_inode_unlock(inode, 1); in ocfs2_link()
844 static inline int ocfs2_inode_is_unlinkable(struct inode *inode) in ocfs2_inode_is_unlinkable() argument
846 if (S_ISDIR(inode->i_mode)) { in ocfs2_inode_is_unlinkable()
847 if (inode->i_nlink == 2) in ocfs2_inode_is_unlinkable()
852 if (inode->i_nlink == 1) in ocfs2_inode_is_unlinkable()
857 static int ocfs2_unlink(struct inode *dir, in ocfs2_unlink()
863 struct inode *inode = d_inode(dentry); in ocfs2_unlink() local
864 struct inode *orphan_dir = NULL; in ocfs2_unlink()
878 (unsigned long long)OCFS2_I(inode)->ip_blkno); in ocfs2_unlink()
884 if (inode == osb->root_inode) in ocfs2_unlink()
904 if (OCFS2_I(inode)->ip_blkno != blkno) { in ocfs2_unlink()
908 (unsigned long long)OCFS2_I(inode)->ip_blkno, in ocfs2_unlink()
910 OCFS2_I(inode)->ip_flags); in ocfs2_unlink()
914 status = ocfs2_inode_lock(inode, &fe_bh, 1); in ocfs2_unlink()
922 if (S_ISDIR(inode->i_mode)) { in ocfs2_unlink()
923 if (inode->i_nlink != 2 || !ocfs2_empty_dir(inode)) { in ocfs2_unlink()
937 if (ocfs2_inode_is_unlinkable(inode)) { in ocfs2_unlink()
939 OCFS2_I(inode)->ip_blkno, in ocfs2_unlink()
957 status = ocfs2_journal_access_di(handle, INODE_CACHE(inode), fe_bh, in ocfs2_unlink()
973 if (S_ISDIR(inode->i_mode)) in ocfs2_unlink()
974 drop_nlink(inode); in ocfs2_unlink()
975 drop_nlink(inode); in ocfs2_unlink()
976 ocfs2_set_links_count(fe, inode->i_nlink); in ocfs2_unlink()
980 if (S_ISDIR(inode->i_mode)) in ocfs2_unlink()
986 if (S_ISDIR(inode->i_mode)) in ocfs2_unlink()
992 status = ocfs2_orphan_add(osb, handle, inode, fe_bh, in ocfs2_unlink()
1003 ocfs2_inode_unlock(inode, 1); in ocfs2_unlink()
1032 struct inode *child_inode; in ocfs2_check_if_ancestor()
1091 struct inode *inode1, in ocfs2_double_lock()
1093 struct inode *inode2, in ocfs2_double_lock()
1101 struct inode *tmpinode; in ocfs2_double_lock()
1178 static void ocfs2_double_unlock(struct inode *inode1, struct inode *inode2) in ocfs2_double_unlock()
1186 static int ocfs2_rename(struct inode *old_dir, in ocfs2_rename()
1188 struct inode *new_dir, in ocfs2_rename()
1193 struct inode *old_inode = d_inode(old_dentry); in ocfs2_rename()
1194 struct inode *new_inode = d_inode(new_dentry); in ocfs2_rename()
1195 struct inode *orphan_dir = NULL; in ocfs2_rename()
1650 struct inode *inode, in ocfs2_create_symlink_data() argument
1659 bytes_left = i_size_read(inode) + 1; in ocfs2_create_symlink_data()
1664 trace_ocfs2_create_symlink_data((unsigned long long)inode->i_blocks, in ocfs2_create_symlink_data()
1665 i_size_read(inode), blocks); in ocfs2_create_symlink_data()
1669 ocfs2_clusters_to_bytes(sb, OCFS2_I(inode)->ip_clusters)) { in ocfs2_create_symlink_data()
1682 status = ocfs2_extent_map_get_blocks(inode, 0, &p_blkno, &p_blocks, in ocfs2_create_symlink_data()
1708 ocfs2_set_new_buffer_uptodate(INODE_CACHE(inode), in ocfs2_create_symlink_data()
1711 status = ocfs2_journal_access(handle, INODE_CACHE(inode), in ocfs2_create_symlink_data()
1746 static int ocfs2_symlink(struct inode *dir, in ocfs2_symlink()
1753 struct inode *inode = NULL; in ocfs2_symlink() local
1821 inode = ocfs2_get_init_inode(dir, S_IFLNK | S_IRWXUGO); in ocfs2_symlink()
1822 if (!inode) { in ocfs2_symlink()
1829 status = ocfs2_init_security_get(inode, dir, &dentry->d_name, &si); in ocfs2_symlink()
1872 status = dquot_alloc_inode(inode); in ocfs2_symlink()
1880 inode->i_mode); in ocfs2_symlink()
1882 status = ocfs2_mknod_locked(osb, dir, inode, in ocfs2_symlink()
1891 inode->i_rdev = 0; in ocfs2_symlink()
1893 inode->i_op = &ocfs2_symlink_inode_operations; in ocfs2_symlink()
1897 status = dquot_alloc_space_nodirty(inode, in ocfs2_symlink()
1902 inode->i_mapping->a_ops = &ocfs2_aops; in ocfs2_symlink()
1903 status = ocfs2_add_inode_data(osb, inode, &offset, 1, 0, in ocfs2_symlink()
1917 i_size_write(inode, newsize); in ocfs2_symlink()
1918 inode->i_blocks = ocfs2_inode_sector_count(inode); in ocfs2_symlink()
1920 inode->i_mapping->a_ops = &ocfs2_fast_symlink_aops; in ocfs2_symlink()
1922 i_size_write(inode, newsize); in ocfs2_symlink()
1923 inode->i_blocks = 0; in ocfs2_symlink()
1926 status = ocfs2_mark_inode_dirty(handle, inode, new_fe_bh); in ocfs2_symlink()
1932 if (!ocfs2_inode_is_fast_symlink(inode)) { in ocfs2_symlink()
1933 status = ocfs2_create_symlink_data(osb, handle, inode, in ocfs2_symlink()
1942 status = ocfs2_init_security_set(handle, inode, new_fe_bh, &si, in ocfs2_symlink()
1955 status = ocfs2_dentry_attach_lock(dentry, inode, OCFS2_I(dir)->ip_blkno); in ocfs2_symlink()
1963 status = ocfs2_add_entry(handle, dentry, inode, in ocfs2_symlink()
1971 insert_inode_hash(inode); in ocfs2_symlink()
1972 d_instantiate(dentry, inode); in ocfs2_symlink()
1975 dquot_free_space_nodirty(inode, in ocfs2_symlink()
1978 dquot_free_inode(inode); in ocfs2_symlink()
1996 if ((status < 0) && inode) { in ocfs2_symlink()
1998 ocfs2_cleanup_add_entry_failure(osb, dentry, inode); in ocfs2_symlink()
2000 OCFS2_I(inode)->ip_flags |= OCFS2_INODE_SKIP_ORPHAN_DIR; in ocfs2_symlink()
2001 clear_nlink(inode); in ocfs2_symlink()
2002 iput(inode); in ocfs2_symlink()
2041 struct inode **ret_orphan_dir, in ocfs2_lookup_lock_orphan_dir()
2044 struct inode *orphan_dir_inode; in ocfs2_lookup_lock_orphan_dir()
2074 static int __ocfs2_prepare_orphan_dir(struct inode *orphan_dir_inode, in __ocfs2_prepare_orphan_dir()
2131 struct inode **ret_orphan_dir, in ocfs2_prepare_orphan_dir()
2137 struct inode *orphan_dir_inode = NULL; in ocfs2_prepare_orphan_dir()
2173 struct inode *inode, in ocfs2_orphan_add() argument
2177 struct inode *orphan_dir_inode, in ocfs2_orphan_add()
2189 (unsigned long long)OCFS2_I(inode)->ip_blkno); in ocfs2_orphan_add()
2213 INODE_CACHE(inode), in ocfs2_orphan_add()
2224 if (S_ISDIR(inode->i_mode)) in ocfs2_orphan_add()
2230 namelen, inode, in ocfs2_orphan_add()
2231 OCFS2_I(inode)->ip_blkno, in ocfs2_orphan_add()
2246 OCFS2_I(inode)->ip_flags &= ~OCFS2_INODE_SKIP_ORPHAN_DIR; in ocfs2_orphan_add()
2256 trace_ocfs2_orphan_add_end((unsigned long long)OCFS2_I(inode)->ip_blkno, in ocfs2_orphan_add()
2261 if (S_ISDIR(inode->i_mode)) in ocfs2_orphan_add()
2275 struct inode *orphan_dir_inode, in ocfs2_orphan_del()
2276 struct inode *inode, in ocfs2_orphan_del() argument
2295 status = ocfs2_blkno_stringify(OCFS2_I(inode)->ip_blkno, in ocfs2_orphan_del()
2298 status = ocfs2_blkno_stringify(OCFS2_I(inode)->ip_blkno, name); in ocfs2_orphan_del()
2334 if (S_ISDIR(inode->i_mode)) in ocfs2_orphan_del()
2372 static int ocfs2_prep_new_orphaned_file(struct inode *dir, in ocfs2_prep_new_orphaned_file()
2375 struct inode **ret_orphan_dir, in ocfs2_prep_new_orphaned_file()
2383 struct inode *orphan_dir = NULL; in ocfs2_prep_new_orphaned_file()
2441 int ocfs2_create_inode_in_orphan(struct inode *dir, in ocfs2_create_inode_in_orphan()
2443 struct inode **new_inode) in ocfs2_create_inode_in_orphan()
2446 struct inode *inode = NULL; in ocfs2_create_inode_in_orphan() local
2447 struct inode *orphan_dir = NULL; in ocfs2_create_inode_in_orphan()
2475 inode = ocfs2_get_init_inode(dir, mode); in ocfs2_create_inode_in_orphan()
2476 if (!inode) { in ocfs2_create_inode_in_orphan()
2490 status = dquot_alloc_inode(inode); in ocfs2_create_inode_in_orphan()
2503 clear_nlink(inode); in ocfs2_create_inode_in_orphan()
2505 status = __ocfs2_mknod_locked(dir, inode, in ocfs2_create_inode_in_orphan()
2515 status = ocfs2_orphan_add(osb, handle, inode, new_di_bh, orphan_name, in ocfs2_create_inode_in_orphan()
2523 status = ocfs2_open_lock(inode); in ocfs2_create_inode_in_orphan()
2527 insert_inode_hash(inode); in ocfs2_create_inode_in_orphan()
2530 dquot_free_inode(inode); in ocfs2_create_inode_in_orphan()
2541 if ((status < 0) && inode) { in ocfs2_create_inode_in_orphan()
2542 clear_nlink(inode); in ocfs2_create_inode_in_orphan()
2543 iput(inode); in ocfs2_create_inode_in_orphan()
2552 *new_inode = inode; in ocfs2_create_inode_in_orphan()
2561 static int ocfs2_dio_orphan_recovered(struct inode *inode) in ocfs2_dio_orphan_recovered() argument
2567 ret = ocfs2_inode_lock(inode, &di_bh, 1); in ocfs2_dio_orphan_recovered()
2575 ocfs2_inode_unlock(inode, 1); in ocfs2_dio_orphan_recovered()
2583 struct inode *inode) in ocfs2_add_inode_to_orphan() argument
2586 struct inode *orphan_dir_inode = NULL; in ocfs2_add_inode_to_orphan()
2594 status = ocfs2_inode_lock(inode, &di_bh, 1); in ocfs2_add_inode_to_orphan()
2606 ocfs2_inode_unlock(inode, 1); in ocfs2_add_inode_to_orphan()
2608 wait_event_interruptible_timeout(OCFS2_I(inode)->append_dio_wq, in ocfs2_add_inode_to_orphan()
2609 ocfs2_dio_orphan_recovered(inode), in ocfs2_add_inode_to_orphan()
2615 OCFS2_I(inode)->ip_blkno, in ocfs2_add_inode_to_orphan()
2631 status = ocfs2_orphan_add(osb, handle, inode, di_bh, orphan_name, in ocfs2_add_inode_to_orphan()
2646 ocfs2_inode_unlock(inode, 1); in ocfs2_add_inode_to_orphan()
2654 struct inode *inode, int update_isize, in ocfs2_del_inode_from_orphan() argument
2657 struct inode *orphan_dir_inode = NULL; in ocfs2_del_inode_from_orphan()
2664 status = ocfs2_inode_lock(inode, &di_bh, 1); in ocfs2_del_inode_from_orphan()
2699 inode, orphan_dir_bh, true); in ocfs2_del_inode_from_orphan()
2706 INODE_CACHE(inode), in ocfs2_del_inode_from_orphan()
2718 status = ocfs2_set_inode_size(handle, inode, di_bh, end); in ocfs2_del_inode_from_orphan()
2734 ocfs2_inode_unlock(inode, 1); in ocfs2_del_inode_from_orphan()
2741 int ocfs2_mv_orphaned_inode_to_new(struct inode *dir, in ocfs2_mv_orphaned_inode_to_new()
2742 struct inode *inode, in ocfs2_mv_orphaned_inode_to_new() argument
2750 struct inode *orphan_dir_inode = NULL; in ocfs2_mv_orphaned_inode_to_new()
2758 (unsigned long long)OCFS2_I(inode)->ip_blkno); in ocfs2_mv_orphaned_inode_to_new()
2807 status = ocfs2_read_inode_block(inode, &di_bh); in ocfs2_mv_orphaned_inode_to_new()
2821 status = ocfs2_journal_access_di(handle, INODE_CACHE(inode), in ocfs2_mv_orphaned_inode_to_new()
2828 status = ocfs2_orphan_del(osb, handle, orphan_dir_inode, inode, in ocfs2_mv_orphaned_inode_to_new()
2838 set_nlink(inode, 1); in ocfs2_mv_orphaned_inode_to_new()
2839 ocfs2_set_links_count(di, inode->i_nlink); in ocfs2_mv_orphaned_inode_to_new()
2840 ocfs2_update_inode_fsync_trans(handle, inode, 1); in ocfs2_mv_orphaned_inode_to_new()
2843 status = ocfs2_add_entry(handle, dentry, inode, in ocfs2_mv_orphaned_inode_to_new()
2844 OCFS2_I(inode)->ip_blkno, parent_di_bh, in ocfs2_mv_orphaned_inode_to_new()
2851 status = ocfs2_dentry_attach_lock(dentry, inode, in ocfs2_mv_orphaned_inode_to_new()
2858 d_instantiate(dentry, inode); in ocfs2_mv_orphaned_inode_to_new()