Merge tag 'vfio-v6.0-rc1pt2' of https://github.com/awilliam/linux-vfio
[linux-2.6-microblaze.git] / fs / xfs / xfs_icache.c
index 2609825..2bbe791 100644 (file)
@@ -98,8 +98,9 @@ xfs_inode_alloc(
        ip->i_ino = ino;
        ip->i_mount = mp;
        memset(&ip->i_imap, 0, sizeof(struct xfs_imap));
-       ip->i_afp = NULL;
        ip->i_cowfp = NULL;
+       memset(&ip->i_af, 0, sizeof(ip->i_af));
+       ip->i_af.if_format = XFS_DINODE_FMT_EXTENTS;
        memset(&ip->i_df, 0, sizeof(ip->i_df));
        ip->i_flags = 0;
        ip->i_delayed_blks = 0;
@@ -111,6 +112,8 @@ xfs_inode_alloc(
        INIT_WORK(&ip->i_ioend_work, xfs_end_io);
        INIT_LIST_HEAD(&ip->i_ioend_list);
        spin_lock_init(&ip->i_ioend_lock);
+       ip->i_next_unlinked = NULLAGINO;
+       ip->i_prev_unlinked = NULLAGINO;
 
        return ip;
 }
@@ -130,10 +133,8 @@ xfs_inode_free_callback(
                break;
        }
 
-       if (ip->i_afp) {
-               xfs_idestroy_fork(ip->i_afp);
-               kmem_cache_free(xfs_ifork_cache, ip->i_afp);
-       }
+       xfs_ifork_zap_attr(ip);
+
        if (ip->i_cowfp) {
                xfs_idestroy_fork(ip->i_cowfp);
                kmem_cache_free(xfs_ifork_cache, ip->i_cowfp);
@@ -912,6 +913,7 @@ reclaim:
        ip->i_checked = 0;
        spin_unlock(&ip->i_flags_lock);
 
+       ASSERT(!ip->i_itemp || ip->i_itemp->ili_item.li_buf == NULL);
        xfs_iunlock(ip, XFS_ILOCK_EXCL);
 
        XFS_STATS_INC(ip->i_mount, xs_ig_reclaims);
@@ -1774,7 +1776,7 @@ xfs_check_delalloc(
        struct xfs_inode        *ip,
        int                     whichfork)
 {
-       struct xfs_ifork        *ifp = XFS_IFORK_PTR(ip, whichfork);
+       struct xfs_ifork        *ifp = xfs_ifork_ptr(ip, whichfork);
        struct xfs_bmbt_irec    got;
        struct xfs_iext_cursor  icur;
 
@@ -2219,5 +2221,5 @@ xfs_inodegc_register_shrinker(
        shrink->flags = SHRINKER_NONSLAB;
        shrink->batch = XFS_INODEGC_SHRINKER_BATCH;
 
-       return register_shrinker(shrink);
+       return register_shrinker(shrink, "xfs-inodegc:%s", mp->m_super->s_id);
 }