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 (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()
174 error = xfs_imap_to_bp(ip->i_mount, tp, &ip->i_imap, &bp); in xfs_inode_item_precommit()
202 xfs_inode_item_precommit_check(ip); in xfs_inode_item_precommit()
232 struct xfs_inode *ip = iip->ili_inode; in xfs_inode_item_data_fork_size() local
234 switch (ip->i_df.if_format) { in xfs_inode_item_data_fork_size()
237 ip->i_df.if_nextents > 0 && in xfs_inode_item_data_fork_size()
238 ip->i_df.if_bytes > 0) { in xfs_inode_item_data_fork_size()
240 *nbytes += xfs_inode_data_fork_size(ip); in xfs_inode_item_data_fork_size()
246 ip->i_df.if_broot_bytes > 0) { in xfs_inode_item_data_fork_size()
247 *nbytes += ip->i_df.if_broot_bytes; in xfs_inode_item_data_fork_size()
253 ip->i_df.if_bytes > 0) { in xfs_inode_item_data_fork_size()
254 *nbytes += xlog_calc_iovec_len(ip->i_df.if_bytes); in xfs_inode_item_data_fork_size()
273 struct xfs_inode *ip = iip->ili_inode; in xfs_inode_item_attr_fork_size() local
275 switch (ip->i_af.if_format) { in xfs_inode_item_attr_fork_size()
278 ip->i_af.if_nextents > 0 && in xfs_inode_item_attr_fork_size()
279 ip->i_af.if_bytes > 0) { in xfs_inode_item_attr_fork_size()
281 *nbytes += xfs_inode_attr_fork_size(ip); in xfs_inode_item_attr_fork_size()
287 ip->i_af.if_broot_bytes > 0) { in xfs_inode_item_attr_fork_size()
288 *nbytes += ip->i_af.if_broot_bytes; in xfs_inode_item_attr_fork_size()
294 ip->i_af.if_bytes > 0) { in xfs_inode_item_attr_fork_size()
295 *nbytes += xlog_calc_iovec_len(ip->i_af.if_bytes); in xfs_inode_item_attr_fork_size()
319 struct xfs_inode *ip = iip->ili_inode; in xfs_inode_item_size() local
323 xfs_log_dinode_size(ip->i_mount); in xfs_inode_item_size()
326 if (xfs_inode_has_attr_fork(ip)) in xfs_inode_item_size()
337 struct xfs_inode *ip = iip->ili_inode; in xfs_inode_item_format_data_fork() local
340 switch (ip->i_df.if_format) { in xfs_inode_item_format_data_fork()
346 ip->i_df.if_nextents > 0 && in xfs_inode_item_format_data_fork()
347 ip->i_df.if_bytes > 0) { in xfs_inode_item_format_data_fork()
350 ASSERT(xfs_iext_count(&ip->i_df) > 0); in xfs_inode_item_format_data_fork()
353 data_bytes = xfs_iextents_copy(ip, p, XFS_DATA_FORK); in xfs_inode_item_format_data_fork()
356 ASSERT(data_bytes <= ip->i_df.if_bytes); in xfs_inode_item_format_data_fork()
369 ip->i_df.if_broot_bytes > 0) { in xfs_inode_item_format_data_fork()
370 ASSERT(ip->i_df.if_broot != NULL); in xfs_inode_item_format_data_fork()
372 ip->i_df.if_broot, in xfs_inode_item_format_data_fork()
373 ip->i_df.if_broot_bytes); in xfs_inode_item_format_data_fork()
374 ilf->ilf_dsize = ip->i_df.if_broot_bytes; in xfs_inode_item_format_data_fork()
386 ip->i_df.if_bytes > 0) { in xfs_inode_item_format_data_fork()
387 ASSERT(ip->i_df.if_data != NULL); in xfs_inode_item_format_data_fork()
388 ASSERT(ip->i_disk_size > 0); in xfs_inode_item_format_data_fork()
390 ip->i_df.if_data, ip->i_df.if_bytes); in xfs_inode_item_format_data_fork()
391 ilf->ilf_dsize = (unsigned)ip->i_df.if_bytes; in xfs_inode_item_format_data_fork()
401 ilf->ilf_u.ilfu_rdev = sysv_encode_dev(VFS_I(ip)->i_rdev); in xfs_inode_item_format_data_fork()
416 struct xfs_inode *ip = iip->ili_inode; in xfs_inode_item_format_attr_fork() local
419 switch (ip->i_af.if_format) { in xfs_inode_item_format_attr_fork()
425 ip->i_af.if_nextents > 0 && in xfs_inode_item_format_attr_fork()
426 ip->i_af.if_bytes > 0) { in xfs_inode_item_format_attr_fork()
429 ASSERT(xfs_iext_count(&ip->i_af) == in xfs_inode_item_format_attr_fork()
430 ip->i_af.if_nextents); in xfs_inode_item_format_attr_fork()
433 data_bytes = xfs_iextents_copy(ip, p, XFS_ATTR_FORK); in xfs_inode_item_format_attr_fork()
447 ip->i_af.if_broot_bytes > 0) { in xfs_inode_item_format_attr_fork()
448 ASSERT(ip->i_af.if_broot != NULL); in xfs_inode_item_format_attr_fork()
451 ip->i_af.if_broot, in xfs_inode_item_format_attr_fork()
452 ip->i_af.if_broot_bytes); in xfs_inode_item_format_attr_fork()
453 ilf->ilf_asize = ip->i_af.if_broot_bytes; in xfs_inode_item_format_attr_fork()
464 ip->i_af.if_bytes > 0) { in xfs_inode_item_format_attr_fork()
465 ASSERT(ip->i_af.if_data != NULL); in xfs_inode_item_format_attr_fork()
467 ip->i_af.if_data, ip->i_af.if_bytes); in xfs_inode_item_format_attr_fork()
468 ilf->ilf_asize = (unsigned)ip->i_af.if_bytes; in xfs_inode_item_format_attr_fork()
486 struct xfs_inode *ip, in xfs_inode_to_log_dinode_ts() argument
492 if (xfs_inode_has_bigtime(ip)) in xfs_inode_to_log_dinode_ts()
512 struct xfs_inode *ip, in xfs_copy_dm_fields_to_log_dinode() argument
517 dip = xfs_buf_offset(ip->i_itemp->ili_item.li_buf, in xfs_copy_dm_fields_to_log_dinode()
518 ip->i_imap.im_boffset); in xfs_copy_dm_fields_to_log_dinode()
520 if (xfs_iflags_test(ip, XFS_IPRESERVE_DM_FIELDS)) { in xfs_copy_dm_fields_to_log_dinode()
531 struct xfs_inode *ip, in xfs_inode_to_log_dinode_iext_counters() argument
534 if (xfs_inode_has_large_extent_counts(ip)) { in xfs_inode_to_log_dinode_iext_counters()
535 to->di_big_nextents = xfs_ifork_nextents(&ip->i_df); in xfs_inode_to_log_dinode_iext_counters()
536 to->di_big_anextents = xfs_ifork_nextents(&ip->i_af); in xfs_inode_to_log_dinode_iext_counters()
539 to->di_nextents = xfs_ifork_nextents(&ip->i_df); in xfs_inode_to_log_dinode_iext_counters()
540 to->di_anextents = xfs_ifork_nextents(&ip->i_af); in xfs_inode_to_log_dinode_iext_counters()
546 struct xfs_inode *ip, in xfs_inode_to_log_dinode() argument
550 struct inode *inode = VFS_I(ip); in xfs_inode_to_log_dinode()
553 to->di_format = xfs_ifork_format(&ip->i_df); in xfs_inode_to_log_dinode()
556 to->di_projid_lo = ip->i_projid & 0xffff; in xfs_inode_to_log_dinode()
557 to->di_projid_hi = ip->i_projid >> 16; in xfs_inode_to_log_dinode()
560 to->di_atime = xfs_inode_to_log_dinode_ts(ip, inode_get_atime(inode)); in xfs_inode_to_log_dinode()
561 to->di_mtime = xfs_inode_to_log_dinode_ts(ip, inode_get_mtime(inode)); in xfs_inode_to_log_dinode()
562 to->di_ctime = xfs_inode_to_log_dinode_ts(ip, inode_get_ctime(inode)); in xfs_inode_to_log_dinode()
567 to->di_size = ip->i_disk_size; in xfs_inode_to_log_dinode()
568 to->di_nblocks = ip->i_nblocks; in xfs_inode_to_log_dinode()
569 to->di_extsize = ip->i_extsize; in xfs_inode_to_log_dinode()
570 to->di_forkoff = ip->i_forkoff; in xfs_inode_to_log_dinode()
571 to->di_aformat = xfs_ifork_format(&ip->i_af); in xfs_inode_to_log_dinode()
572 to->di_flags = ip->i_diflags; in xfs_inode_to_log_dinode()
574 xfs_copy_dm_fields_to_log_dinode(ip, to); in xfs_inode_to_log_dinode()
579 if (xfs_has_v3inodes(ip->i_mount)) { in xfs_inode_to_log_dinode()
582 to->di_crtime = xfs_inode_to_log_dinode_ts(ip, ip->i_crtime); in xfs_inode_to_log_dinode()
583 to->di_flags2 = ip->i_diflags2; in xfs_inode_to_log_dinode()
584 to->di_cowextsize = ip->i_cowextsize; in xfs_inode_to_log_dinode()
585 to->di_ino = ip->i_ino; in xfs_inode_to_log_dinode()
588 uuid_copy(&to->di_uuid, &ip->i_mount->m_sb.sb_meta_uuid); in xfs_inode_to_log_dinode()
595 to->di_flushiter = ip->i_flushiter; in xfs_inode_to_log_dinode()
599 xfs_inode_to_log_dinode_iext_counters(ip, to); in xfs_inode_to_log_dinode()
609 struct xfs_inode *ip, in xfs_inode_item_format_core() argument
616 xfs_inode_to_log_dinode(ip, dic, ip->i_itemp->ili_item.li_lsn); in xfs_inode_item_format_core()
617 xlog_finish_iovec(lv, *vecp, xfs_log_dinode_size(ip->i_mount)); in xfs_inode_item_format_core()
638 struct xfs_inode *ip = iip->ili_inode; in xfs_inode_item_format() local
644 ilf->ilf_ino = ip->i_ino; in xfs_inode_item_format()
645 ilf->ilf_blkno = ip->i_imap.im_blkno; in xfs_inode_item_format()
646 ilf->ilf_len = ip->i_imap.im_len; in xfs_inode_item_format()
647 ilf->ilf_boffset = ip->i_imap.im_boffset; in xfs_inode_item_format()
662 xfs_inode_item_format_core(ip, lv, &vecp); in xfs_inode_item_format()
664 if (xfs_inode_has_attr_fork(ip)) { in xfs_inode_item_format()
683 struct xfs_inode *ip = INODE_ITEM(lip)->ili_inode; in xfs_inode_item_pin() local
685 xfs_assert_ilocked(ip, XFS_ILOCK_EXCL); in xfs_inode_item_pin()
688 trace_xfs_inode_pin(ip, _RET_IP_); in xfs_inode_item_pin()
689 atomic_inc(&ip->i_pincount); in xfs_inode_item_pin()
710 struct xfs_inode *ip = INODE_ITEM(lip)->ili_inode; in xfs_inode_item_unpin() local
712 trace_xfs_inode_unpin(ip, _RET_IP_); in xfs_inode_item_unpin()
713 ASSERT(lip->li_buf || xfs_iflags_test(ip, XFS_ISTALE)); in xfs_inode_item_unpin()
714 ASSERT(atomic_read(&ip->i_pincount) > 0); in xfs_inode_item_unpin()
715 if (atomic_dec_and_test(&ip->i_pincount)) in xfs_inode_item_unpin()
716 wake_up_bit(&ip->i_flags, __XFS_IPINNED_BIT); in xfs_inode_item_unpin()
727 struct xfs_inode *ip = iip->ili_inode; in xfs_inode_item_push() local
732 if (!bp || (ip->i_flags & XFS_ISTALE)) { in xfs_inode_item_push()
742 if (xfs_ipincount(ip) > 0 || xfs_buf_ispinned(bp)) in xfs_inode_item_push()
745 if (xfs_iflags_test(ip, XFS_IFLUSHING)) in xfs_inode_item_push()
787 struct xfs_inode *ip = iip->ili_inode; in xfs_inode_item_release() local
790 ASSERT(ip->i_itemp != NULL); in xfs_inode_item_release()
791 xfs_assert_ilocked(ip, XFS_ILOCK_EXCL); in xfs_inode_item_release()
796 xfs_iunlock(ip, lock_flags); in xfs_inode_item_release()
827 struct xfs_inode *ip = iip->ili_inode; in xfs_inode_item_committed() local
829 if (xfs_iflags_test(ip, XFS_ISTALE)) { in xfs_inode_item_committed()
864 struct xfs_inode *ip, in xfs_inode_item_init() argument
869 ASSERT(ip->i_itemp == NULL); in xfs_inode_item_init()
870 iip = ip->i_itemp = kmem_cache_zalloc(xfs_ili_cache, in xfs_inode_item_init()
873 iip->ili_inode = ip; in xfs_inode_item_init()
884 struct xfs_inode *ip) in xfs_inode_item_destroy() argument
886 struct xfs_inode_log_item *iip = ip->i_itemp; in xfs_inode_item_destroy()
890 ip->i_itemp = NULL; in xfs_inode_item_destroy()
1066 struct xfs_inode *ip) in xfs_iflush_abort() argument
1068 struct xfs_inode_log_item *iip = ip->i_itemp; in xfs_iflush_abort()
1073 xfs_iflags_clear(ip, XFS_IFLUSHING); in xfs_iflush_abort()
1100 xfs_iflags_clear(ip, XFS_IFLUSHING); in xfs_iflush_abort()
1113 struct xfs_inode *ip) in xfs_iflush_shutdown_abort() argument
1115 struct xfs_inode_log_item *iip = ip->i_itemp; in xfs_iflush_shutdown_abort()
1120 xfs_iflags_clear(ip, XFS_IFLUSHING); in xfs_iflush_shutdown_abort()
1128 xfs_iflush_abort(ip); in xfs_iflush_shutdown_abort()
1153 xfs_iflags_clear(ip, XFS_IFLUSHING); in xfs_iflush_shutdown_abort()
1167 xfs_iflush_abort(ip); in xfs_iflush_shutdown_abort()