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);
110 static struct dentry *ocfs2_lookup(struct inode *dir, struct dentry *dentry, in ocfs2_lookup()
115 struct inode *inode = NULL; in ocfs2_lookup() local
141 inode = ocfs2_iget(OCFS2_SB(dir->i_sb), blkno, 0, 0); in ocfs2_lookup()
142 if (IS_ERR(inode)) { in ocfs2_lookup()
147 oi = OCFS2_I(inode); in ocfs2_lookup()
158 ret = d_splice_alias(inode, dentry); in ocfs2_lookup()
160 if (inode) { in ocfs2_lookup()
174 status = ocfs2_dentry_attach_lock(dentry, inode, in ocfs2_lookup()
198 static struct inode *ocfs2_get_init_inode(struct inode *dir, umode_t mode) in ocfs2_get_init_inode()
200 struct inode *inode; in ocfs2_get_init_inode() local
203 inode = new_inode(dir->i_sb); in ocfs2_get_init_inode()
204 if (!inode) { in ocfs2_get_init_inode()
213 set_nlink(inode, 2); in ocfs2_get_init_inode()
214 inode_init_owner(inode, dir, mode); in ocfs2_get_init_inode()
215 status = dquot_initialize(inode); in ocfs2_get_init_inode()
219 return inode; in ocfs2_get_init_inode()
223 struct dentry *dentry, struct inode *inode) in ocfs2_cleanup_add_entry_failure() argument
234 iput(inode); in ocfs2_cleanup_add_entry_failure()
237 static int ocfs2_mknod(struct inode *dir, in ocfs2_mknod()
248 struct inode *inode = NULL; in ocfs2_mknod() local
318 inode = ocfs2_get_init_inode(dir, mode); in ocfs2_mknod()
319 if (IS_ERR(inode)) { in ocfs2_mknod()
320 status = PTR_ERR(inode); in ocfs2_mknod()
321 inode = NULL; in ocfs2_mknod()
327 status = ocfs2_init_security_get(inode, dir, &dentry->d_name, &si); in ocfs2_mknod()
383 status = dquot_alloc_inode(inode); in ocfs2_mknod()
389 status = ocfs2_mknod_locked(osb, dir, inode, dev, in ocfs2_mknod()
398 status = ocfs2_fill_new_dir(osb, handle, dir, inode, in ocfs2_mknod()
417 status = ocfs2_init_acl(handle, inode, dir, new_fe_bh, parent_fe_bh, in ocfs2_mknod()
426 status = ocfs2_init_security_set(handle, inode, new_fe_bh, &si, in ocfs2_mknod()
439 status = ocfs2_dentry_attach_lock(dentry, inode, in ocfs2_mknod()
448 status = ocfs2_add_entry(handle, dentry, inode, in ocfs2_mknod()
449 OCFS2_I(inode)->ip_blkno, parent_fe_bh, in ocfs2_mknod()
456 insert_inode_hash(inode); in ocfs2_mknod()
457 d_instantiate(dentry, inode); in ocfs2_mknod()
461 dquot_free_inode(inode); in ocfs2_mknod()
489 if ((status < 0) && inode) { in ocfs2_mknod()
491 ocfs2_cleanup_add_entry_failure(osb, dentry, inode); in ocfs2_mknod()
493 OCFS2_I(inode)->ip_flags |= OCFS2_INODE_SKIP_ORPHAN_DIR; in ocfs2_mknod()
494 clear_nlink(inode); in ocfs2_mknod()
495 iput(inode); in ocfs2_mknod()
504 static int __ocfs2_mknod_locked(struct inode *dir, in __ocfs2_mknod_locked()
505 struct inode *inode, in __ocfs2_mknod_locked() argument
518 struct ocfs2_inode_info *oi = OCFS2_I(inode); in __ocfs2_mknod_locked()
525 inode->i_ino = ino_from_blkno(osb->sb, fe_blkno); in __ocfs2_mknod_locked()
526 OCFS2_I(inode)->ip_blkno = fe_blkno; in __ocfs2_mknod_locked()
528 inode->i_generation = osb->s_next_generation++; in __ocfs2_mknod_locked()
537 ocfs2_set_new_buffer_uptodate(INODE_CACHE(inode), *new_fe_bh); in __ocfs2_mknod_locked()
539 status = ocfs2_journal_access_di(handle, INODE_CACHE(inode), in __ocfs2_mknod_locked()
550 fe->i_generation = cpu_to_le32(inode->i_generation); in __ocfs2_mknod_locked()
556 fe->i_uid = cpu_to_le32(i_uid_read(inode)); in __ocfs2_mknod_locked()
557 fe->i_gid = cpu_to_le32(i_gid_read(inode)); in __ocfs2_mknod_locked()
558 fe->i_mode = cpu_to_le16(inode->i_mode); in __ocfs2_mknod_locked()
559 if (S_ISCHR(inode->i_mode) || S_ISBLK(inode->i_mode)) in __ocfs2_mknod_locked()
562 ocfs2_set_links_count(fe, inode->i_nlink); in __ocfs2_mknod_locked()
578 if (S_ISDIR(inode->i_mode) && ocfs2_supports_inline_data(osb)) { in __ocfs2_mknod_locked()
592 ocfs2_populate_inode(inode, fe, 1); in __ocfs2_mknod_locked()
593 ocfs2_ci_set_new(osb, INODE_CACHE(inode)); in __ocfs2_mknod_locked()
595 status = ocfs2_create_new_inode_locks(inode); in __ocfs2_mknod_locked()
617 struct inode *dir, in ocfs2_mknod_locked()
618 struct inode *inode, in ocfs2_mknod_locked() argument
639 status = __ocfs2_mknod_locked(dir, inode, dev, new_fe_bh, in ocfs2_mknod_locked()
653 static int ocfs2_mkdir(struct inode *dir, in ocfs2_mkdir()
668 static int ocfs2_create(struct inode *dir, in ocfs2_create()
685 struct inode *dir, in ocfs2_link()
689 struct inode *inode = d_inode(old_dentry); in ocfs2_link() local
690 struct inode *old_dir = d_inode(old_dentry->d_parent); in ocfs2_link()
701 trace_ocfs2_link((unsigned long long)OCFS2_I(inode)->ip_blkno, in ocfs2_link()
705 if (S_ISDIR(inode->i_mode)) in ocfs2_link()
751 if (old_de_ino != OCFS2_I(inode)->ip_blkno) { in ocfs2_link()
769 err = ocfs2_inode_lock(inode, &fe_bh, 1); in ocfs2_link()
793 err = ocfs2_journal_access_di(handle, INODE_CACHE(inode), fe_bh, in ocfs2_link()
800 inc_nlink(inode); in ocfs2_link()
801 inode->i_ctime = CURRENT_TIME; in ocfs2_link()
802 ocfs2_set_links_count(fe, inode->i_nlink); in ocfs2_link()
803 fe->i_ctime = cpu_to_le64(inode->i_ctime.tv_sec); in ocfs2_link()
804 fe->i_ctime_nsec = cpu_to_le32(inode->i_ctime.tv_nsec); in ocfs2_link()
807 err = ocfs2_add_entry(handle, dentry, inode, in ocfs2_link()
808 OCFS2_I(inode)->ip_blkno, in ocfs2_link()
812 drop_nlink(inode); in ocfs2_link()
817 err = ocfs2_dentry_attach_lock(dentry, inode, OCFS2_I(dir)->ip_blkno); in ocfs2_link()
823 ihold(inode); in ocfs2_link()
824 d_instantiate(dentry, inode); in ocfs2_link()
830 ocfs2_inode_unlock(inode, 1); in ocfs2_link()
864 static inline int ocfs2_inode_is_unlinkable(struct inode *inode) in ocfs2_inode_is_unlinkable() argument
866 if (S_ISDIR(inode->i_mode)) { in ocfs2_inode_is_unlinkable()
867 if (inode->i_nlink == 2) in ocfs2_inode_is_unlinkable()
872 if (inode->i_nlink == 1) in ocfs2_inode_is_unlinkable()
877 static int ocfs2_unlink(struct inode *dir, in ocfs2_unlink()
883 struct inode *inode = d_inode(dentry); in ocfs2_unlink() local
884 struct inode *orphan_dir = NULL; in ocfs2_unlink()
898 (unsigned long long)OCFS2_I(inode)->ip_blkno); in ocfs2_unlink()
908 if (inode == osb->root_inode) in ocfs2_unlink()
928 if (OCFS2_I(inode)->ip_blkno != blkno) { in ocfs2_unlink()
932 (unsigned long long)OCFS2_I(inode)->ip_blkno, in ocfs2_unlink()
934 OCFS2_I(inode)->ip_flags); in ocfs2_unlink()
938 status = ocfs2_inode_lock(inode, &fe_bh, 1); in ocfs2_unlink()
946 if (S_ISDIR(inode->i_mode)) { in ocfs2_unlink()
947 if (inode->i_nlink != 2 || !ocfs2_empty_dir(inode)) { in ocfs2_unlink()
961 if (ocfs2_inode_is_unlinkable(inode)) { in ocfs2_unlink()
963 OCFS2_I(inode)->ip_blkno, in ocfs2_unlink()
981 status = ocfs2_journal_access_di(handle, INODE_CACHE(inode), fe_bh, in ocfs2_unlink()
997 if (S_ISDIR(inode->i_mode)) in ocfs2_unlink()
998 drop_nlink(inode); in ocfs2_unlink()
999 drop_nlink(inode); in ocfs2_unlink()
1000 ocfs2_set_links_count(fe, inode->i_nlink); in ocfs2_unlink()
1004 if (S_ISDIR(inode->i_mode)) in ocfs2_unlink()
1010 if (S_ISDIR(inode->i_mode)) in ocfs2_unlink()
1016 status = ocfs2_orphan_add(osb, handle, inode, fe_bh, in ocfs2_unlink()
1034 ocfs2_inode_unlock(inode, 1); in ocfs2_unlink()
1056 struct inode *child_inode; in ocfs2_check_if_ancestor()
1115 struct inode *inode1, in ocfs2_double_lock()
1117 struct inode *inode2, in ocfs2_double_lock()
1195 static void ocfs2_double_unlock(struct inode *inode1, struct inode *inode2) in ocfs2_double_unlock()
1203 static int ocfs2_rename(struct inode *old_dir, in ocfs2_rename()
1205 struct inode *new_dir, in ocfs2_rename()
1210 struct inode *old_inode = d_inode(old_dentry); in ocfs2_rename()
1211 struct inode *new_inode = d_inode(new_dentry); in ocfs2_rename()
1212 struct inode *orphan_dir = NULL; in ocfs2_rename()
1693 struct inode *inode, in ocfs2_create_symlink_data() argument
1702 bytes_left = i_size_read(inode) + 1; in ocfs2_create_symlink_data()
1707 trace_ocfs2_create_symlink_data((unsigned long long)inode->i_blocks, in ocfs2_create_symlink_data()
1708 i_size_read(inode), blocks); in ocfs2_create_symlink_data()
1712 ocfs2_clusters_to_bytes(sb, OCFS2_I(inode)->ip_clusters)) { in ocfs2_create_symlink_data()
1725 status = ocfs2_extent_map_get_blocks(inode, 0, &p_blkno, &p_blocks, in ocfs2_create_symlink_data()
1751 ocfs2_set_new_buffer_uptodate(INODE_CACHE(inode), in ocfs2_create_symlink_data()
1754 status = ocfs2_journal_access(handle, INODE_CACHE(inode), in ocfs2_create_symlink_data()
1789 static int ocfs2_symlink(struct inode *dir, in ocfs2_symlink()
1796 struct inode *inode = NULL; in ocfs2_symlink() local
1868 inode = ocfs2_get_init_inode(dir, S_IFLNK | S_IRWXUGO); in ocfs2_symlink()
1869 if (IS_ERR(inode)) { in ocfs2_symlink()
1870 status = PTR_ERR(inode); in ocfs2_symlink()
1871 inode = NULL; in ocfs2_symlink()
1877 status = ocfs2_init_security_get(inode, dir, &dentry->d_name, &si); in ocfs2_symlink()
1920 status = dquot_alloc_inode(inode); in ocfs2_symlink()
1928 inode->i_mode); in ocfs2_symlink()
1930 status = ocfs2_mknod_locked(osb, dir, inode, in ocfs2_symlink()
1939 inode->i_rdev = 0; in ocfs2_symlink()
1941 inode->i_op = &ocfs2_symlink_inode_operations; in ocfs2_symlink()
1945 status = dquot_alloc_space_nodirty(inode, in ocfs2_symlink()
1950 inode->i_mapping->a_ops = &ocfs2_aops; in ocfs2_symlink()
1951 status = ocfs2_add_inode_data(osb, inode, &offset, 1, 0, in ocfs2_symlink()
1965 i_size_write(inode, newsize); in ocfs2_symlink()
1966 inode->i_blocks = ocfs2_inode_sector_count(inode); in ocfs2_symlink()
1968 inode->i_mapping->a_ops = &ocfs2_fast_symlink_aops; in ocfs2_symlink()
1970 i_size_write(inode, newsize); in ocfs2_symlink()
1971 inode->i_blocks = 0; in ocfs2_symlink()
1974 status = ocfs2_mark_inode_dirty(handle, inode, new_fe_bh); in ocfs2_symlink()
1980 if (!ocfs2_inode_is_fast_symlink(inode)) { in ocfs2_symlink()
1981 status = ocfs2_create_symlink_data(osb, handle, inode, in ocfs2_symlink()
1990 status = ocfs2_init_security_set(handle, inode, new_fe_bh, &si, in ocfs2_symlink()
2003 status = ocfs2_dentry_attach_lock(dentry, inode, OCFS2_I(dir)->ip_blkno); in ocfs2_symlink()
2011 status = ocfs2_add_entry(handle, dentry, inode, in ocfs2_symlink()
2019 insert_inode_hash(inode); in ocfs2_symlink()
2020 d_instantiate(dentry, inode); in ocfs2_symlink()
2023 dquot_free_space_nodirty(inode, in ocfs2_symlink()
2026 dquot_free_inode(inode); in ocfs2_symlink()
2044 if ((status < 0) && inode) { in ocfs2_symlink()
2046 ocfs2_cleanup_add_entry_failure(osb, dentry, inode); in ocfs2_symlink()
2048 OCFS2_I(inode)->ip_flags |= OCFS2_INODE_SKIP_ORPHAN_DIR; in ocfs2_symlink()
2049 clear_nlink(inode); in ocfs2_symlink()
2050 iput(inode); in ocfs2_symlink()
2089 struct inode **ret_orphan_dir, in ocfs2_lookup_lock_orphan_dir()
2092 struct inode *orphan_dir_inode; in ocfs2_lookup_lock_orphan_dir()
2122 static int __ocfs2_prepare_orphan_dir(struct inode *orphan_dir_inode, in __ocfs2_prepare_orphan_dir()
2179 struct inode **ret_orphan_dir, in ocfs2_prepare_orphan_dir()
2185 struct inode *orphan_dir_inode = NULL; in ocfs2_prepare_orphan_dir()
2221 struct inode *inode, in ocfs2_orphan_add() argument
2225 struct inode *orphan_dir_inode, in ocfs2_orphan_add()
2237 (unsigned long long)OCFS2_I(inode)->ip_blkno); in ocfs2_orphan_add()
2261 INODE_CACHE(inode), in ocfs2_orphan_add()
2272 if (S_ISDIR(inode->i_mode)) in ocfs2_orphan_add()
2278 namelen, inode, in ocfs2_orphan_add()
2279 OCFS2_I(inode)->ip_blkno, in ocfs2_orphan_add()
2294 OCFS2_I(inode)->ip_flags &= ~OCFS2_INODE_SKIP_ORPHAN_DIR; in ocfs2_orphan_add()
2304 trace_ocfs2_orphan_add_end((unsigned long long)OCFS2_I(inode)->ip_blkno, in ocfs2_orphan_add()
2309 if (S_ISDIR(inode->i_mode)) in ocfs2_orphan_add()
2323 struct inode *orphan_dir_inode, in ocfs2_orphan_del()
2324 struct inode *inode, in ocfs2_orphan_del() argument
2343 status = ocfs2_blkno_stringify(OCFS2_I(inode)->ip_blkno, in ocfs2_orphan_del()
2346 status = ocfs2_blkno_stringify(OCFS2_I(inode)->ip_blkno, name); in ocfs2_orphan_del()
2382 if (S_ISDIR(inode->i_mode)) in ocfs2_orphan_del()
2420 static int ocfs2_prep_new_orphaned_file(struct inode *dir, in ocfs2_prep_new_orphaned_file()
2423 struct inode **ret_orphan_dir, in ocfs2_prep_new_orphaned_file()
2431 struct inode *orphan_dir = NULL; in ocfs2_prep_new_orphaned_file()
2489 int ocfs2_create_inode_in_orphan(struct inode *dir, in ocfs2_create_inode_in_orphan()
2491 struct inode **new_inode) in ocfs2_create_inode_in_orphan()
2494 struct inode *inode = NULL; in ocfs2_create_inode_in_orphan() local
2495 struct inode *orphan_dir = NULL; in ocfs2_create_inode_in_orphan()
2523 inode = ocfs2_get_init_inode(dir, mode); in ocfs2_create_inode_in_orphan()
2524 if (IS_ERR(inode)) { in ocfs2_create_inode_in_orphan()
2525 status = PTR_ERR(inode); in ocfs2_create_inode_in_orphan()
2526 inode = NULL; in ocfs2_create_inode_in_orphan()
2539 status = dquot_alloc_inode(inode); in ocfs2_create_inode_in_orphan()
2552 clear_nlink(inode); in ocfs2_create_inode_in_orphan()
2554 status = __ocfs2_mknod_locked(dir, inode, in ocfs2_create_inode_in_orphan()
2564 status = ocfs2_orphan_add(osb, handle, inode, new_di_bh, orphan_name, in ocfs2_create_inode_in_orphan()
2572 status = ocfs2_open_lock(inode); in ocfs2_create_inode_in_orphan()
2576 insert_inode_hash(inode); in ocfs2_create_inode_in_orphan()
2579 dquot_free_inode(inode); in ocfs2_create_inode_in_orphan()
2590 if ((status < 0) && inode) { in ocfs2_create_inode_in_orphan()
2591 clear_nlink(inode); in ocfs2_create_inode_in_orphan()
2592 iput(inode); in ocfs2_create_inode_in_orphan()
2601 *new_inode = inode; in ocfs2_create_inode_in_orphan()
2611 struct inode *inode) in ocfs2_add_inode_to_orphan() argument
2614 struct inode *orphan_dir_inode = NULL; in ocfs2_add_inode_to_orphan()
2621 status = ocfs2_inode_lock(inode, &di_bh, 1); in ocfs2_add_inode_to_orphan()
2633 status = ocfs2_truncate_file(inode, di_bh, i_size_read(inode)); in ocfs2_add_inode_to_orphan()
2640 status = ocfs2_del_inode_from_orphan(osb, inode, di_bh, 0, 0); in ocfs2_add_inode_to_orphan()
2648 OCFS2_I(inode)->ip_blkno, in ocfs2_add_inode_to_orphan()
2664 status = ocfs2_orphan_add(osb, handle, inode, di_bh, orphan_name, in ocfs2_add_inode_to_orphan()
2679 ocfs2_inode_unlock(inode, 1); in ocfs2_add_inode_to_orphan()
2687 struct inode *inode, struct buffer_head *di_bh, in ocfs2_del_inode_from_orphan() argument
2690 struct inode *orphan_dir_inode = NULL; in ocfs2_del_inode_from_orphan()
2724 inode, orphan_dir_bh, true); in ocfs2_del_inode_from_orphan()
2731 INODE_CACHE(inode), in ocfs2_del_inode_from_orphan()
2743 status = ocfs2_set_inode_size(handle, inode, di_bh, end); in ocfs2_del_inode_from_orphan()
2762 int ocfs2_mv_orphaned_inode_to_new(struct inode *dir, in ocfs2_mv_orphaned_inode_to_new()
2763 struct inode *inode, in ocfs2_mv_orphaned_inode_to_new() argument
2771 struct inode *orphan_dir_inode = NULL; in ocfs2_mv_orphaned_inode_to_new()
2779 (unsigned long long)OCFS2_I(inode)->ip_blkno); in ocfs2_mv_orphaned_inode_to_new()
2828 status = ocfs2_read_inode_block(inode, &di_bh); in ocfs2_mv_orphaned_inode_to_new()
2842 status = ocfs2_journal_access_di(handle, INODE_CACHE(inode), in ocfs2_mv_orphaned_inode_to_new()
2849 status = ocfs2_orphan_del(osb, handle, orphan_dir_inode, inode, in ocfs2_mv_orphaned_inode_to_new()
2859 set_nlink(inode, 1); in ocfs2_mv_orphaned_inode_to_new()
2860 ocfs2_set_links_count(di, inode->i_nlink); in ocfs2_mv_orphaned_inode_to_new()
2861 ocfs2_update_inode_fsync_trans(handle, inode, 1); in ocfs2_mv_orphaned_inode_to_new()
2864 status = ocfs2_add_entry(handle, dentry, inode, in ocfs2_mv_orphaned_inode_to_new()
2865 OCFS2_I(inode)->ip_blkno, parent_di_bh, in ocfs2_mv_orphaned_inode_to_new()
2872 status = ocfs2_dentry_attach_lock(dentry, inode, in ocfs2_mv_orphaned_inode_to_new()
2879 d_instantiate(dentry, inode); in ocfs2_mv_orphaned_inode_to_new()