Lines Matching refs:ip

43 	struct xfs_inode	*ip)  in xfs_inode_item_precommit_check()  argument
45 struct xfs_mount *mp = ip->i_mount; in xfs_inode_item_precommit_check()
55 xfs_inode_to_disk(ip, dip, 0); in xfs_inode_item_precommit_check()
57 fa = xfs_dinode_verify(mp, ip->i_ino, dip); in xfs_inode_item_precommit_check()
59 xfs_inode_verifier_error(ip, -EFSCORRUPTED, __func__, dip, in xfs_inode_item_precommit_check()
67 # define xfs_inode_item_precommit_check(ip) ((void)0) argument
106 struct xfs_inode *ip = iip->ili_inode; in xfs_inode_item_precommit() local
107 struct inode *inode = VFS_I(ip); in xfs_inode_item_precommit()
127 xfs_has_bigtime(ip->i_mount) && in xfs_inode_item_precommit()
128 !xfs_inode_has_bigtime(ip)) { in xfs_inode_item_precommit()
129 ip->i_diflags2 |= XFS_DIFLAG2_BIGTIME; in xfs_inode_item_precommit()
139 if (ip->i_diflags & XFS_DIFLAG_RTINHERIT) { in xfs_inode_item_precommit()
140 if ((ip->i_diflags & XFS_DIFLAG_EXTSZINHERIT) && in xfs_inode_item_precommit()
141 xfs_extlen_to_rtxmod(ip->i_mount, ip->i_extsize) > 0) { in xfs_inode_item_precommit()
142 ip->i_diflags &= ~(XFS_DIFLAG_EXTSIZE | in xfs_inode_item_precommit()
144 ip->i_extsize = 0; in xfs_inode_item_precommit()
147 if ((ip->i_diflags2 & XFS_DIFLAG2_COWEXTSIZE) && in xfs_inode_item_precommit()
148 xfs_extlen_to_rtxmod(ip->i_mount, ip->i_cowextsize) > 0) { in xfs_inode_item_precommit()
149 ip->i_diflags2 &= ~XFS_DIFLAG2_COWEXTSIZE; in xfs_inode_item_precommit()
150 ip->i_cowextsize = 0; in xfs_inode_item_precommit()
170 error = xfs_imap_to_bp(ip->i_mount, tp, &ip->i_imap, &bp); in xfs_inode_item_precommit()
212 xfs_inode_item_precommit_check(ip); in xfs_inode_item_precommit()
236 struct xfs_inode *ip = iip->ili_inode; in xfs_inode_item_data_fork_size() local
238 switch (ip->i_df.if_format) { in xfs_inode_item_data_fork_size()
241 ip->i_df.if_nextents > 0 && in xfs_inode_item_data_fork_size()
242 ip->i_df.if_bytes > 0) { in xfs_inode_item_data_fork_size()
244 *nbytes += xfs_inode_data_fork_size(ip); in xfs_inode_item_data_fork_size()
251 ip->i_df.if_broot_bytes > 0) { in xfs_inode_item_data_fork_size()
252 *nbytes += ip->i_df.if_broot_bytes; in xfs_inode_item_data_fork_size()
258 ip->i_df.if_bytes > 0) { in xfs_inode_item_data_fork_size()
259 *nbytes += xlog_calc_iovec_len(ip->i_df.if_bytes); in xfs_inode_item_data_fork_size()
278 struct xfs_inode *ip = iip->ili_inode; in xfs_inode_item_attr_fork_size() local
280 switch (ip->i_af.if_format) { in xfs_inode_item_attr_fork_size()
283 ip->i_af.if_nextents > 0 && in xfs_inode_item_attr_fork_size()
284 ip->i_af.if_bytes > 0) { in xfs_inode_item_attr_fork_size()
286 *nbytes += xfs_inode_attr_fork_size(ip); in xfs_inode_item_attr_fork_size()
292 ip->i_af.if_broot_bytes > 0) { in xfs_inode_item_attr_fork_size()
293 *nbytes += ip->i_af.if_broot_bytes; in xfs_inode_item_attr_fork_size()
299 ip->i_af.if_bytes > 0) { in xfs_inode_item_attr_fork_size()
300 *nbytes += xlog_calc_iovec_len(ip->i_af.if_bytes); in xfs_inode_item_attr_fork_size()
324 struct xfs_inode *ip = iip->ili_inode; in xfs_inode_item_size() local
328 xfs_log_dinode_size(ip->i_mount); in xfs_inode_item_size()
331 if (xfs_inode_has_attr_fork(ip)) in xfs_inode_item_size()
342 struct xfs_inode *ip = iip->ili_inode; in xfs_inode_item_format_data_fork() local
345 switch (ip->i_df.if_format) { in xfs_inode_item_format_data_fork()
351 ip->i_df.if_nextents > 0 && in xfs_inode_item_format_data_fork()
352 ip->i_df.if_bytes > 0) { in xfs_inode_item_format_data_fork()
355 ASSERT(xfs_iext_count(&ip->i_df) > 0); in xfs_inode_item_format_data_fork()
358 data_bytes = xfs_iextents_copy(ip, p, XFS_DATA_FORK); in xfs_inode_item_format_data_fork()
361 ASSERT(data_bytes <= ip->i_df.if_bytes); in xfs_inode_item_format_data_fork()
375 ip->i_df.if_broot_bytes > 0) { in xfs_inode_item_format_data_fork()
376 ASSERT(ip->i_df.if_broot != NULL); in xfs_inode_item_format_data_fork()
378 ip->i_df.if_broot, in xfs_inode_item_format_data_fork()
379 ip->i_df.if_broot_bytes); in xfs_inode_item_format_data_fork()
380 ilf->ilf_dsize = ip->i_df.if_broot_bytes; in xfs_inode_item_format_data_fork()
392 ip->i_df.if_bytes > 0) { in xfs_inode_item_format_data_fork()
393 ASSERT(ip->i_df.if_data != NULL); in xfs_inode_item_format_data_fork()
394 ASSERT(ip->i_disk_size > 0); in xfs_inode_item_format_data_fork()
396 ip->i_df.if_data, ip->i_df.if_bytes); in xfs_inode_item_format_data_fork()
397 ilf->ilf_dsize = (unsigned)ip->i_df.if_bytes; in xfs_inode_item_format_data_fork()
407 ilf->ilf_u.ilfu_rdev = sysv_encode_dev(VFS_I(ip)->i_rdev); in xfs_inode_item_format_data_fork()
422 struct xfs_inode *ip = iip->ili_inode; in xfs_inode_item_format_attr_fork() local
425 switch (ip->i_af.if_format) { in xfs_inode_item_format_attr_fork()
431 ip->i_af.if_nextents > 0 && in xfs_inode_item_format_attr_fork()
432 ip->i_af.if_bytes > 0) { in xfs_inode_item_format_attr_fork()
435 ASSERT(xfs_iext_count(&ip->i_af) == in xfs_inode_item_format_attr_fork()
436 ip->i_af.if_nextents); in xfs_inode_item_format_attr_fork()
439 data_bytes = xfs_iextents_copy(ip, p, XFS_ATTR_FORK); in xfs_inode_item_format_attr_fork()
453 ip->i_af.if_broot_bytes > 0) { in xfs_inode_item_format_attr_fork()
454 ASSERT(ip->i_af.if_broot != NULL); in xfs_inode_item_format_attr_fork()
457 ip->i_af.if_broot, in xfs_inode_item_format_attr_fork()
458 ip->i_af.if_broot_bytes); in xfs_inode_item_format_attr_fork()
459 ilf->ilf_asize = ip->i_af.if_broot_bytes; in xfs_inode_item_format_attr_fork()
470 ip->i_af.if_bytes > 0) { in xfs_inode_item_format_attr_fork()
471 ASSERT(ip->i_af.if_data != NULL); in xfs_inode_item_format_attr_fork()
473 ip->i_af.if_data, ip->i_af.if_bytes); in xfs_inode_item_format_attr_fork()
474 ilf->ilf_asize = (unsigned)ip->i_af.if_bytes; in xfs_inode_item_format_attr_fork()
492 struct xfs_inode *ip, in xfs_inode_to_log_dinode_ts() argument
498 if (xfs_inode_has_bigtime(ip)) in xfs_inode_to_log_dinode_ts()
518 struct xfs_inode *ip, in xfs_copy_dm_fields_to_log_dinode() argument
523 dip = xfs_buf_offset(ip->i_itemp->ili_item.li_buf, in xfs_copy_dm_fields_to_log_dinode()
524 ip->i_imap.im_boffset); in xfs_copy_dm_fields_to_log_dinode()
526 if (xfs_iflags_test(ip, XFS_IPRESERVE_DM_FIELDS)) { in xfs_copy_dm_fields_to_log_dinode()
537 struct xfs_inode *ip, in xfs_inode_to_log_dinode_iext_counters() argument
540 if (xfs_inode_has_large_extent_counts(ip)) { in xfs_inode_to_log_dinode_iext_counters()
541 to->di_big_nextents = xfs_ifork_nextents(&ip->i_df); in xfs_inode_to_log_dinode_iext_counters()
542 to->di_big_anextents = xfs_ifork_nextents(&ip->i_af); in xfs_inode_to_log_dinode_iext_counters()
545 to->di_nextents = xfs_ifork_nextents(&ip->i_df); in xfs_inode_to_log_dinode_iext_counters()
546 to->di_anextents = xfs_ifork_nextents(&ip->i_af); in xfs_inode_to_log_dinode_iext_counters()
552 struct xfs_inode *ip, in xfs_inode_to_log_dinode() argument
556 struct inode *inode = VFS_I(ip); in xfs_inode_to_log_dinode()
559 to->di_format = xfs_ifork_format(&ip->i_df); in xfs_inode_to_log_dinode()
562 to->di_projid_lo = ip->i_projid & 0xffff; in xfs_inode_to_log_dinode()
563 to->di_projid_hi = ip->i_projid >> 16; in xfs_inode_to_log_dinode()
565 to->di_atime = xfs_inode_to_log_dinode_ts(ip, inode_get_atime(inode)); in xfs_inode_to_log_dinode()
566 to->di_mtime = xfs_inode_to_log_dinode_ts(ip, inode_get_mtime(inode)); in xfs_inode_to_log_dinode()
567 to->di_ctime = xfs_inode_to_log_dinode_ts(ip, inode_get_ctime(inode)); in xfs_inode_to_log_dinode()
572 to->di_size = ip->i_disk_size; in xfs_inode_to_log_dinode()
573 to->di_nblocks = ip->i_nblocks; in xfs_inode_to_log_dinode()
574 to->di_extsize = ip->i_extsize; in xfs_inode_to_log_dinode()
575 to->di_forkoff = ip->i_forkoff; in xfs_inode_to_log_dinode()
576 to->di_aformat = xfs_ifork_format(&ip->i_af); in xfs_inode_to_log_dinode()
577 to->di_flags = ip->i_diflags; in xfs_inode_to_log_dinode()
579 xfs_copy_dm_fields_to_log_dinode(ip, to); in xfs_inode_to_log_dinode()
584 if (xfs_has_v3inodes(ip->i_mount)) { in xfs_inode_to_log_dinode()
587 to->di_crtime = xfs_inode_to_log_dinode_ts(ip, ip->i_crtime); in xfs_inode_to_log_dinode()
588 to->di_flags2 = ip->i_diflags2; in xfs_inode_to_log_dinode()
590 to->di_cowextsize = ip->i_cowextsize; in xfs_inode_to_log_dinode()
591 to->di_ino = ip->i_ino; in xfs_inode_to_log_dinode()
594 uuid_copy(&to->di_uuid, &ip->i_mount->m_sb.sb_meta_uuid); in xfs_inode_to_log_dinode()
600 if (xfs_is_metadir_inode(ip)) in xfs_inode_to_log_dinode()
601 to->di_metatype = ip->i_metatype; in xfs_inode_to_log_dinode()
606 to->di_flushiter = ip->i_flushiter; in xfs_inode_to_log_dinode()
611 xfs_inode_to_log_dinode_iext_counters(ip, to); in xfs_inode_to_log_dinode()
621 struct xfs_inode *ip, in xfs_inode_item_format_core() argument
628 xfs_inode_to_log_dinode(ip, dic, ip->i_itemp->ili_item.li_lsn); in xfs_inode_item_format_core()
629 xlog_finish_iovec(lv, *vecp, xfs_log_dinode_size(ip->i_mount)); in xfs_inode_item_format_core()
650 struct xfs_inode *ip = iip->ili_inode; in xfs_inode_item_format() local
656 ilf->ilf_ino = ip->i_ino; in xfs_inode_item_format()
657 ilf->ilf_blkno = ip->i_imap.im_blkno; in xfs_inode_item_format()
658 ilf->ilf_len = ip->i_imap.im_len; in xfs_inode_item_format()
659 ilf->ilf_boffset = ip->i_imap.im_boffset; in xfs_inode_item_format()
674 xfs_inode_item_format_core(ip, lv, &vecp); in xfs_inode_item_format()
676 if (xfs_inode_has_attr_fork(ip)) { in xfs_inode_item_format()
695 struct xfs_inode *ip = INODE_ITEM(lip)->ili_inode; in xfs_inode_item_pin() local
697 xfs_assert_ilocked(ip, XFS_ILOCK_EXCL); in xfs_inode_item_pin()
700 trace_xfs_inode_pin(ip, _RET_IP_); in xfs_inode_item_pin()
701 atomic_inc(&ip->i_pincount); in xfs_inode_item_pin()
723 struct xfs_inode *ip = iip->ili_inode; in xfs_inode_item_unpin() local
725 trace_xfs_inode_unpin(ip, _RET_IP_); in xfs_inode_item_unpin()
726 ASSERT(lip->li_buf || xfs_iflags_test(ip, XFS_ISTALE)); in xfs_inode_item_unpin()
727 ASSERT(atomic_read(&ip->i_pincount) > 0); in xfs_inode_item_unpin()
734 if (atomic_dec_and_lock(&ip->i_pincount, &iip->ili_lock)) { in xfs_inode_item_unpin()
738 wake_up_bit(&ip->i_flags, __XFS_IPINNED_BIT); in xfs_inode_item_unpin()
750 struct xfs_inode *ip = iip->ili_inode; in xfs_inode_item_push() local
755 if (!bp || (ip->i_flags & XFS_ISTALE)) { in xfs_inode_item_push()
762 trace_xfs_inode_push_stale(ip, _RET_IP_); in xfs_inode_item_push()
766 if (xfs_ipincount(ip) > 0 || xfs_buf_ispinned(bp)) { in xfs_inode_item_push()
767 trace_xfs_inode_push_pinned(ip, _RET_IP_); in xfs_inode_item_push()
771 if (xfs_iflags_test(ip, XFS_IFLUSHING)) in xfs_inode_item_push()
813 struct xfs_inode *ip = iip->ili_inode; in xfs_inode_item_release() local
816 ASSERT(ip->i_itemp != NULL); in xfs_inode_item_release()
817 xfs_assert_ilocked(ip, XFS_ILOCK_EXCL); in xfs_inode_item_release()
822 xfs_iunlock(ip, lock_flags); in xfs_inode_item_release()
853 struct xfs_inode *ip = iip->ili_inode; in xfs_inode_item_committed() local
855 if (xfs_iflags_test(ip, XFS_ISTALE)) { in xfs_inode_item_committed()
923 struct xfs_inode *ip, in xfs_inode_item_init() argument
928 ASSERT(ip->i_itemp == NULL); in xfs_inode_item_init()
929 iip = ip->i_itemp = kmem_cache_zalloc(xfs_ili_cache, in xfs_inode_item_init()
932 iip->ili_inode = ip; in xfs_inode_item_init()
943 struct xfs_inode *ip) in xfs_inode_item_destroy() argument
945 struct xfs_inode_log_item *iip = ip->i_itemp; in xfs_inode_item_destroy()
949 ip->i_itemp = NULL; in xfs_inode_item_destroy()
1112 struct xfs_inode *ip) in xfs_iflush_abort() argument
1114 struct xfs_inode_log_item *iip = ip->i_itemp; in xfs_iflush_abort()
1119 xfs_iflags_clear(ip, XFS_IFLUSHING); in xfs_iflush_abort()
1140 xfs_iflags_clear(ip, XFS_IFLUSHING); in xfs_iflush_abort()
1153 struct xfs_inode *ip) in xfs_iflush_shutdown_abort() argument
1155 struct xfs_inode_log_item *iip = ip->i_itemp; in xfs_iflush_shutdown_abort()
1160 xfs_iflags_clear(ip, XFS_IFLUSHING); in xfs_iflush_shutdown_abort()
1168 xfs_iflush_abort(ip); in xfs_iflush_shutdown_abort()
1193 xfs_iflags_clear(ip, XFS_IFLUSHING); in xfs_iflush_shutdown_abort()
1207 xfs_iflush_abort(ip); in xfs_iflush_shutdown_abort()