Lines Matching refs:ip

33 	struct xfs_inode	*ip,  in xfs_init_local_fork()  argument
38 struct xfs_ifork *ifp = xfs_ifork_ptr(ip, whichfork); in xfs_init_local_fork()
48 zero_terminate = S_ISLNK(VFS_I(ip)->i_mode); in xfs_init_local_fork()
69 struct xfs_inode *ip, in xfs_iformat_local() argument
79 if (unlikely(size > XFS_DFORK_SIZE(dip, ip->i_mount, whichfork))) { in xfs_iformat_local()
80 xfs_warn(ip->i_mount, in xfs_iformat_local()
82 (unsigned long long) ip->i_ino, size, in xfs_iformat_local()
83 XFS_DFORK_SIZE(dip, ip->i_mount, whichfork)); in xfs_iformat_local()
84 xfs_inode_verifier_error(ip, -EFSCORRUPTED, in xfs_iformat_local()
90 xfs_init_local_fork(ip, whichfork, XFS_DFORK_PTR(dip, whichfork), size); in xfs_iformat_local()
100 struct xfs_inode *ip, in xfs_iformat_extents() argument
104 struct xfs_mount *mp = ip->i_mount; in xfs_iformat_extents()
105 struct xfs_ifork *ifp = xfs_ifork_ptr(ip, whichfork); in xfs_iformat_extents()
119 xfs_warn(ip->i_mount, "corrupt inode %llu ((a)extents = %llu).", in xfs_iformat_extents()
120 ip->i_ino, nex); in xfs_iformat_extents()
121 xfs_inode_verifier_error(ip, -EFSCORRUPTED, in xfs_iformat_extents()
138 fa = xfs_bmap_validate_extent(ip, whichfork, &new); in xfs_iformat_extents()
140 xfs_inode_verifier_error(ip, -EFSCORRUPTED, in xfs_iformat_extents()
143 return xfs_bmap_complain_bad_rec(ip, whichfork, in xfs_iformat_extents()
147 xfs_iext_insert(ip, &icur, &new, state); in xfs_iformat_extents()
148 trace_xfs_read_extent(ip, &icur, state, _THIS_IP_); in xfs_iformat_extents()
165 struct xfs_inode *ip, in xfs_iformat_btree() argument
169 struct xfs_mount *mp = ip->i_mount; in xfs_iformat_btree()
177 ifp = xfs_ifork_ptr(ip, whichfork); in xfs_iformat_btree()
190 if (unlikely(ifp->if_nextents <= XFS_IFORK_MAXEXT(ip, whichfork) || in xfs_iformat_btree()
194 ifp->if_nextents > ip->i_nblocks) || in xfs_iformat_btree()
197 (unsigned long long) ip->i_ino); in xfs_iformat_btree()
198 xfs_inode_verifier_error(ip, -EFSCORRUPTED, in xfs_iformat_btree()
211 xfs_bmdr_to_bmbt(ip, dfp, XFS_DFORK_SIZE(dip, ip->i_mount, whichfork), in xfs_iformat_btree()
222 struct xfs_inode *ip, in xfs_iformat_data_fork() argument
225 struct inode *inode = VFS_I(ip); in xfs_iformat_data_fork()
235 ip->i_df.if_format = dip->di_format; in xfs_iformat_data_fork()
236 ip->i_df.if_nextents = xfs_dfork_data_extents(dip); in xfs_iformat_data_fork()
237 smp_store_release(&ip->i_df.if_needextents, in xfs_iformat_data_fork()
238 ip->i_df.if_format == XFS_DINODE_FMT_BTREE ? 1 : 0); in xfs_iformat_data_fork()
245 ip->i_disk_size = 0; in xfs_iformat_data_fork()
251 switch (ip->i_df.if_format) { in xfs_iformat_data_fork()
253 error = xfs_iformat_local(ip, dip, XFS_DATA_FORK, in xfs_iformat_data_fork()
256 error = xfs_ifork_verify_local_data(ip); in xfs_iformat_data_fork()
259 return xfs_iformat_extents(ip, dip, XFS_DATA_FORK); in xfs_iformat_data_fork()
261 return xfs_iformat_btree(ip, dip, XFS_DATA_FORK); in xfs_iformat_data_fork()
263 xfs_inode_verifier_error(ip, -EFSCORRUPTED, __func__, in xfs_iformat_data_fork()
269 xfs_inode_verifier_error(ip, -EFSCORRUPTED, __func__, dip, in xfs_iformat_data_fork()
287 struct xfs_inode *ip, in xfs_ifork_init_attr() argument
298 ip->i_af.if_format = format; in xfs_ifork_init_attr()
299 ip->i_af.if_nextents = nextents; in xfs_ifork_init_attr()
300 smp_store_release(&ip->i_af.if_needextents, in xfs_ifork_init_attr()
301 ip->i_af.if_format == XFS_DINODE_FMT_BTREE ? 1 : 0); in xfs_ifork_init_attr()
306 struct xfs_inode *ip) in xfs_ifork_zap_attr() argument
308 xfs_idestroy_fork(&ip->i_af); in xfs_ifork_zap_attr()
309 memset(&ip->i_af, 0, sizeof(struct xfs_ifork)); in xfs_ifork_zap_attr()
310 ip->i_af.if_format = XFS_DINODE_FMT_EXTENTS; in xfs_ifork_zap_attr()
315 struct xfs_inode *ip, in xfs_iformat_attr_fork() argument
325 xfs_ifork_init_attr(ip, dip->di_aformat, naextents); in xfs_iformat_attr_fork()
327 switch (ip->i_af.if_format) { in xfs_iformat_attr_fork()
329 error = xfs_iformat_local(ip, dip, XFS_ATTR_FORK, in xfs_iformat_attr_fork()
332 error = xfs_ifork_verify_local_attr(ip); in xfs_iformat_attr_fork()
335 error = xfs_iformat_extents(ip, dip, XFS_ATTR_FORK); in xfs_iformat_attr_fork()
338 error = xfs_iformat_btree(ip, dip, XFS_ATTR_FORK); in xfs_iformat_attr_fork()
341 xfs_inode_verifier_error(ip, error, __func__, dip, in xfs_iformat_attr_fork()
348 xfs_ifork_zap_attr(ip); in xfs_iformat_attr_fork()
372 xfs_inode_t *ip, in xfs_iroot_realloc() argument
376 struct xfs_mount *mp = ip->i_mount; in xfs_iroot_realloc()
392 ifp = xfs_ifork_ptr(ip, whichfork); in xfs_iroot_realloc()
422 xfs_inode_fork_size(ip, whichfork)); in xfs_iroot_realloc()
446 XFS_BMBT_BLOCK_LEN(ip->i_mount)); in xfs_iroot_realloc()
476 xfs_inode_fork_size(ip, whichfork)); in xfs_iroot_realloc()
498 struct xfs_inode *ip, in xfs_idata_realloc() argument
502 struct xfs_ifork *ifp = xfs_ifork_ptr(ip, whichfork); in xfs_idata_realloc()
506 ASSERT(new_size <= xfs_inode_fork_size(ip, whichfork)); in xfs_idata_realloc()
556 struct xfs_inode *ip, in xfs_iextents_copy() argument
561 struct xfs_ifork *ifp = xfs_ifork_ptr(ip, whichfork); in xfs_iextents_copy()
566 ASSERT(xfs_isilocked(ip, XFS_ILOCK_EXCL | XFS_ILOCK_SHARED)); in xfs_iextents_copy()
572 ASSERT(xfs_bmap_validate_extent(ip, whichfork, &rec) == NULL); in xfs_iextents_copy()
574 trace_xfs_write_extent(ip, &icur, state, _RET_IP_); in xfs_iextents_copy()
596 struct xfs_inode *ip, in xfs_iflush_fork() argument
613 ifp = xfs_ifork_ptr(ip, whichfork); in xfs_iflush_fork()
623 mp = ip->i_mount; in xfs_iflush_fork()
629 ASSERT(ifp->if_bytes <= xfs_inode_fork_size(ip, whichfork)); in xfs_iflush_fork()
638 (void)xfs_iextents_copy(ip, (xfs_bmbt_rec_t *)cp, in xfs_iflush_fork()
648 xfs_inode_fork_size(ip, whichfork)); in xfs_iflush_fork()
659 linux_to_xfs_dev_t(VFS_I(ip)->i_rdev)); in xfs_iflush_fork()
672 struct xfs_inode *ip, in xfs_iext_state_to_fork() argument
676 return ip->i_cowfp; in xfs_iext_state_to_fork()
678 return &ip->i_af; in xfs_iext_state_to_fork()
679 return &ip->i_df; in xfs_iext_state_to_fork()
687 struct xfs_inode *ip) in xfs_ifork_init_cow() argument
689 if (ip->i_cowfp) in xfs_ifork_init_cow()
692 ip->i_cowfp = kmem_cache_zalloc(xfs_ifork_cache, in xfs_ifork_init_cow()
694 ip->i_cowfp->if_format = XFS_DINODE_FMT_EXTENTS; in xfs_ifork_init_cow()
700 struct xfs_inode *ip) in xfs_ifork_verify_local_data() argument
704 switch (VFS_I(ip)->i_mode & S_IFMT) { in xfs_ifork_verify_local_data()
706 fa = xfs_dir2_sf_verify(ip); in xfs_ifork_verify_local_data()
709 fa = xfs_symlink_shortform_verify(ip); in xfs_ifork_verify_local_data()
716 xfs_inode_verifier_error(ip, -EFSCORRUPTED, "data fork", in xfs_ifork_verify_local_data()
717 ip->i_df.if_u1.if_data, ip->i_df.if_bytes, fa); in xfs_ifork_verify_local_data()
727 struct xfs_inode *ip) in xfs_ifork_verify_local_attr() argument
729 struct xfs_ifork *ifp = &ip->i_af; in xfs_ifork_verify_local_attr()
732 if (!xfs_inode_has_attr_fork(ip)) in xfs_ifork_verify_local_attr()
735 fa = xfs_attr_shortform_verify(ip); in xfs_ifork_verify_local_attr()
738 xfs_inode_verifier_error(ip, -EFSCORRUPTED, "attr fork", in xfs_ifork_verify_local_attr()
748 struct xfs_inode *ip, in xfs_iext_count_may_overflow() argument
752 struct xfs_ifork *ifp = xfs_ifork_ptr(ip, whichfork); in xfs_iext_count_may_overflow()
759 max_exts = xfs_iext_max_nextents(xfs_inode_has_large_extent_counts(ip), in xfs_iext_count_may_overflow()
762 if (XFS_TEST_ERROR(false, ip->i_mount, XFS_ERRTAG_REDUCE_MAX_IEXTENTS)) in xfs_iext_count_may_overflow()
780 struct xfs_inode *ip, in xfs_iext_count_upgrade() argument
785 if (!xfs_has_large_extent_counts(ip->i_mount) || in xfs_iext_count_upgrade()
786 xfs_inode_has_large_extent_counts(ip) || in xfs_iext_count_upgrade()
787 XFS_TEST_ERROR(false, ip->i_mount, XFS_ERRTAG_REDUCE_MAX_IEXTENTS)) in xfs_iext_count_upgrade()
790 ip->i_diflags2 |= XFS_DIFLAG2_NREXT64; in xfs_iext_count_upgrade()
791 xfs_trans_log_inode(tp, ip, XFS_ILOG_CORE); in xfs_iext_count_upgrade()