struct xfs_ifork *i_afp; /* attribute fork pointer */
struct xfs_ifork *i_cowfp; /* copy on write extents */
struct xfs_ifork i_df; /* data fork */
- struct xfs_trans *i_transp; /* ptr to owning transaction */
struct xfs_inode_log_item *i_itemp; /* logging information */
unsigned int i_delayed_blks; /* count of delay alloc blks */
struct xfs_icdinode i_d; /* most of ondisk inode */
{
xfs_inode_log_item_t *iip;
- ASSERT(ip->i_transp == NULL);
if (ip->i_itemp == NULL)
xfs_inode_item_init(ip, ip->i_mount);
iip = ip->i_itemp;
xfs_trans_add_item(tp, (xfs_log_item_t *)(iip));
- ip->i_transp = tp;
#ifdef XACT_DEBUG
fprintf(stderr, "ijoin'd inode %llu, transaction %p\n", ip->i_ino, tp);
#endif
xfs_inode_t *ip,
int lock_flags)
{
- ASSERT(ip->i_transp == tp);
ASSERT(ip->i_itemp != NULL);
xfs_trans_ijoin(tp, ip, lock_flags);
xfs_inode_t *ip,
uint flags)
{
- ASSERT(ip->i_transp == tp);
ASSERT(ip->i_itemp != NULL);
#ifdef XACT_DEBUG
fprintf(stderr, "dirtied inode %llu, transaction %p\n", ip->i_ino, tp);
ASSERT(ip != NULL);
if (!(iip->ili_fields & XFS_ILOG_ALL)) {
- ip->i_transp = NULL; /* disassociate from transaction */
iip->ili_flags = 0; /* reset all flags */
goto free;
}
* we still release the buffer reference we currently hold.
*/
error = libxfs_iflush_int(ip, bp);
- ip->i_transp = NULL; /* disassociate from transaction */
bp->b_transp = NULL; /* remove xact ptr */
if (error) {
inode_item_unlock(
xfs_inode_log_item_t *iip)
{
- xfs_inode_t *ip = iip->ili_inode;
-
- /* Clear the transaction pointer in the inode. */
- ip->i_transp = NULL;
-
iip->ili_flags = 0;
xfs_inode_item_put(iip);
}