]> git.ipfire.org Git - thirdparty/xfsprogs-dev.git/blobdiff - libxfs/rdwr.c
xfs: make inode attribute forks a permanent part of struct xfs_inode
[thirdparty/xfsprogs-dev.git] / libxfs / rdwr.c
index fe69f9b419dab520a0697e44d1cc57506d182c15..c6b4db0f7a7545775c2afe88934e9458c35f2e74 100644 (file)
@@ -1086,6 +1086,8 @@ libxfs_iget(
        VFS_I(ip)->i_count = 1;
        ip->i_ino = ino;
        ip->i_mount = mp;
+       ip->i_af.if_format = XFS_DINODE_FMT_EXTENTS;
+       ip->i_df.if_present = 1;
        spin_lock_init(&VFS_I(ip)->i_lock);
 
        error = xfs_imap(mp, tp, ip->i_ino, &ip->i_imap, 0);
@@ -1124,9 +1126,9 @@ libxfs_idestroy(xfs_inode_t *ip)
                        libxfs_idestroy_fork(&ip->i_df);
                        break;
        }
-       if (ip->i_afp) {
-               libxfs_idestroy_fork(ip->i_afp);
-               kmem_cache_free(xfs_ifork_cache, ip->i_afp);
+       if (ip->i_af.if_present) {
+               libxfs_idestroy_fork(&ip->i_af);
+               libxfs_ifork_zap_attr(ip);
        }
        if (ip->i_cowfp) {
                libxfs_idestroy_fork(ip->i_cowfp);