Lines Matching defs:inode

36 #include "inode.h"
299 static inline struct inode *ocfs2_lock_res_inode(struct ocfs2_lock_res *lockres)
303 return (struct inode *) lockres->l_priv;
370 static int ocfs2_inode_lock_update(struct inode *inode,
555 struct inode *inode)
575 ocfs2_build_lock_name(type, OCFS2_I(inode)->ip_blkno,
577 ocfs2_lock_res_init_common(OCFS2_SB(inode->i_sb), res, type, ops, inode);
582 struct inode *inode = ocfs2_lock_res_inode(lockres);
584 return OCFS2_SB(inode->i_sb);
619 u64 parent, struct inode *inode)
622 u64 inode_blkno = OCFS2_I(inode)->ip_blkno;
631 * we'll stuff the inode number as a binary value. We still
633 * display, so drop a null byte in there before the inode
653 ocfs2_lock_res_init_common(OCFS2_SB(inode->i_sb), lockres,
733 struct inode *inode = fp->fp_file->f_mapping->host;
734 struct ocfs2_inode_info *oi = OCFS2_I(inode);
738 inode->i_generation, lockres->l_name);
739 ocfs2_lock_res_init_common(OCFS2_SB(inode->i_sb), lockres,
1720 * hashed in the inode hash yet. This can give us a good performance
1723 int ocfs2_create_new_inode_locks(struct inode *inode)
1726 struct ocfs2_super *osb = OCFS2_SB(inode->i_sb);
1728 BUG_ON(!ocfs2_inode_is_new(inode));
1730 mlog(0, "Inode %llu\n", (unsigned long long)OCFS2_I(inode)->ip_blkno);
1734 * supposed to be a new inode which the cluster doesn't know
1740 ret = ocfs2_create_new_lock(osb, &OCFS2_I(inode)->ip_rw_lockres, 1, 1);
1750 ret = ocfs2_create_new_lock(osb, &OCFS2_I(inode)->ip_inode_lockres, 1, 0);
1756 ret = ocfs2_create_new_lock(osb, &OCFS2_I(inode)->ip_open_lockres, 0, 0);
1764 int ocfs2_rw_lock(struct inode *inode, int write)
1768 struct ocfs2_super *osb = OCFS2_SB(inode->i_sb);
1770 mlog(0, "inode %llu take %s RW lock\n",
1771 (unsigned long long)OCFS2_I(inode)->ip_blkno,
1777 lockres = &OCFS2_I(inode)->ip_rw_lockres;
1788 int ocfs2_try_rw_lock(struct inode *inode, int write)
1792 struct ocfs2_super *osb = OCFS2_SB(inode->i_sb);
1794 mlog(0, "inode %llu try to take %s RW lock\n",
1795 (unsigned long long)OCFS2_I(inode)->ip_blkno,
1801 lockres = &OCFS2_I(inode)->ip_rw_lockres;
1809 void ocfs2_rw_unlock(struct inode *inode, int write)
1812 struct ocfs2_lock_res *lockres = &OCFS2_I(inode)->ip_rw_lockres;
1813 struct ocfs2_super *osb = OCFS2_SB(inode->i_sb);
1815 mlog(0, "inode %llu drop %s RW lock\n",
1816 (unsigned long long)OCFS2_I(inode)->ip_blkno,
1826 int ocfs2_open_lock(struct inode *inode)
1830 struct ocfs2_super *osb = OCFS2_SB(inode->i_sb);
1832 mlog(0, "inode %llu take PRMODE open lock\n",
1833 (unsigned long long)OCFS2_I(inode)->ip_blkno);
1838 lockres = &OCFS2_I(inode)->ip_open_lockres;
1848 int ocfs2_try_open_lock(struct inode *inode, int write)
1852 struct ocfs2_super *osb = OCFS2_SB(inode->i_sb);
1854 mlog(0, "inode %llu try to take %s open lock\n",
1855 (unsigned long long)OCFS2_I(inode)->ip_blkno,
1867 lockres = &OCFS2_I(inode)->ip_open_lockres;
1875 * this inode is still in use.
1886 void ocfs2_open_unlock(struct inode *inode)
1888 struct ocfs2_lock_res *lockres = &OCFS2_I(inode)->ip_open_lockres;
1889 struct ocfs2_super *osb = OCFS2_SB(inode->i_sb);
1891 mlog(0, "inode %llu drop open lock\n",
1892 (unsigned long long)OCFS2_I(inode)->ip_blkno);
2161 static void __ocfs2_stuff_meta_lvb(struct inode *inode)
2163 struct ocfs2_inode_info *oi = OCFS2_I(inode);
2170 * Invalidate the LVB of a deleted inode - this way other
2171 * nodes are forced to go to disk and discover the new inode
2180 lvb->lvb_isize = cpu_to_be64(i_size_read(inode));
2182 lvb->lvb_iuid = cpu_to_be32(i_uid_read(inode));
2183 lvb->lvb_igid = cpu_to_be32(i_gid_read(inode));
2184 lvb->lvb_imode = cpu_to_be16(inode->i_mode);
2185 lvb->lvb_inlink = cpu_to_be16(inode->i_nlink);
2187 cpu_to_be64(ocfs2_pack_timespec(&inode->i_atime));
2189 cpu_to_be64(ocfs2_pack_timespec(&inode->i_ctime));
2191 cpu_to_be64(ocfs2_pack_timespec(&inode->i_mtime));
2194 lvb->lvb_igeneration = cpu_to_be32(inode->i_generation);
2207 static void ocfs2_refresh_inode_from_lvb(struct inode *inode)
2209 struct ocfs2_inode_info *oi = OCFS2_I(inode);
2220 i_size_write(inode, be64_to_cpu(lvb->lvb_isize));
2224 ocfs2_set_inode_flags(inode);
2227 if (S_ISLNK(inode->i_mode) && !oi->ip_clusters)
2228 inode->i_blocks = 0;
2230 inode->i_blocks = ocfs2_inode_sector_count(inode);
2232 i_uid_write(inode, be32_to_cpu(lvb->lvb_iuid));
2233 i_gid_write(inode, be32_to_cpu(lvb->lvb_igid));
2234 inode->i_mode = be16_to_cpu(lvb->lvb_imode);
2235 set_nlink(inode, be16_to_cpu(lvb->lvb_inlink));
2236 ocfs2_unpack_timespec(&inode->i_atime,
2238 ocfs2_unpack_timespec(&inode->i_mtime,
2240 ocfs2_unpack_timespec(&inode->i_ctime,
2245 static inline int ocfs2_meta_lvb_is_trustable(struct inode *inode,
2252 && be32_to_cpu(lvb->lvb_igeneration) == inode->i_generation)
2310 static int ocfs2_inode_lock_update(struct inode *inode,
2314 struct ocfs2_inode_info *oi = OCFS2_I(inode);
2317 struct ocfs2_super *osb = OCFS2_SB(inode->i_sb);
2324 mlog(0, "Orphaned inode %llu was deleted while we "
2337 * for the inode metadata. */
2338 ocfs2_metadata_cache_purge(INODE_CACHE(inode));
2340 ocfs2_extent_map_trunc(inode, 0);
2342 if (ocfs2_meta_lvb_is_trustable(inode, lockres)) {
2343 mlog(0, "Trusting LVB on inode %llu\n",
2345 ocfs2_refresh_inode_from_lvb(inode);
2349 status = ocfs2_read_inode_block(inode, bh);
2358 * already checked that the inode block is sane.
2360 * We bug on a stale inode here because we checked
2363 * message and can mark the inode before dropping any
2365 mlog_bug_on_msg(inode->i_generation !=
2368 "inode->i_generation: %u\n",
2371 inode->i_generation);
2379 ocfs2_refresh_inode(inode, fe);
2390 static int ocfs2_assign_bh(struct inode *inode,
2405 status = ocfs2_read_inode_block(inode, ret_bh);
2416 int ocfs2_inode_lock_full_nested(struct inode *inode,
2425 struct ocfs2_super *osb = OCFS2_SB(inode->i_sb);
2428 mlog(0, "inode %llu, take %s META lock\n",
2429 (unsigned long long)OCFS2_I(inode)->ip_blkno,
2449 lockres = &OCFS2_I(inode)->ip_inode_lockres;
2476 * ocfs2_read_locked_inode(). It means we're locking an inode
2480 if (inode->i_state & I_NEW) {
2492 status = ocfs2_inode_lock_update(inode, &local_bh);
2500 status = ocfs2_assign_bh(inode, ret_bh, local_bh);
2514 ocfs2_inode_unlock(inode, ex);
2537 int ocfs2_inode_lock_with_page(struct inode *inode,
2544 ret = ocfs2_inode_lock_full(inode, ret_bh, ex, OCFS2_LOCK_NONBLOCK);
2548 * If we can't get inode lock immediately, we should not return
2554 if (ocfs2_inode_lock(inode, ret_bh, ex) == 0)
2555 ocfs2_inode_unlock(inode, ex);
2562 int ocfs2_inode_lock_atime(struct inode *inode,
2569 ret = ocfs2_inode_lock(inode, NULL, 0);
2571 ret = ocfs2_try_inode_lock(inode, NULL, 0);
2583 if (ocfs2_should_update_atime(inode, vfsmnt)) {
2586 ocfs2_inode_unlock(inode, 0);
2588 ret = ocfs2_inode_lock(inode, &bh, 1);
2590 ret = ocfs2_try_inode_lock(inode, &bh, 1);
2598 if (ocfs2_should_update_atime(inode, vfsmnt))
2599 ocfs2_update_inode_atime(inode, bh);
2607 void ocfs2_inode_unlock(struct inode *inode,
2611 struct ocfs2_lock_res *lockres = &OCFS2_I(inode)->ip_inode_lockres;
2612 struct ocfs2_super *osb = OCFS2_SB(inode->i_sb);
2614 mlog(0, "inode %llu drop %s META lock\n",
2615 (unsigned long long)OCFS2_I(inode)->ip_blkno,
2637 * In this case, just lock the inode as requested and return 0
2664 int ocfs2_inode_lock_tracker(struct inode *inode,
2675 lockres = &OCFS2_I(inode)->ip_inode_lockres;
2683 status = ocfs2_inode_lock_full(inode, ret_bh, ex, 0);
2710 status = ocfs2_inode_lock_full(inode, ret_bh, ex,
2721 void ocfs2_inode_unlock_tracker(struct inode *inode,
2728 lockres = &OCFS2_I(inode)->ip_inode_lockres;
2735 ocfs2_inode_unlock(inode, oh->oh_ex);
3257 static int ocfs2_dlm_debug_release(struct inode *inode, struct file *file)
3265 return seq_release_private(inode, file);
3268 static int ocfs2_dlm_debug_open(struct inode *inode, struct file *file)
3279 osb = inode->i_private;
3577 int ocfs2_drop_inode_locks(struct inode *inode)
3584 err = ocfs2_drop_lock(OCFS2_SB(inode->i_sb),
3585 &OCFS2_I(inode)->ip_open_lockres);
3591 err = ocfs2_drop_lock(OCFS2_SB(inode->i_sb),
3592 &OCFS2_I(inode)->ip_inode_lockres);
3598 err = ocfs2_drop_lock(OCFS2_SB(inode->i_sb),
3599 &OCFS2_I(inode)->ip_rw_lockres);
3927 struct inode *inode;
3931 inode = ocfs2_lock_res_inode(lockres);
3932 mapping = inode->i_mapping;
3934 if (S_ISDIR(inode->i_mode)) {
3935 oi = OCFS2_I(inode);
3941 if (!S_ISREG(inode->i_mode))
3954 mlog(ML_ERROR, "Could not sync inode %llu for downconvert!",
3955 (unsigned long long)OCFS2_I(inode)->ip_blkno);
3970 forget_all_cached_acls(inode);
3995 struct inode *inode = ocfs2_lock_res_inode(lockres);
3997 return ocfs2_ci_checkpointed(INODE_CACHE(inode), lockres, new_level);
4002 struct inode *inode = ocfs2_lock_res_inode(lockres);
4004 __ocfs2_stuff_meta_lvb(inode);
4059 * Mark this inode as potentially orphaned. The code in
4111 * exclusive lock on the inode, so it can't be queued