]> www.infradead.org Git - users/hch/xfsprogs.git/commitdiff
fixup
authorChristoph Hellwig <hch@lst.de>
Mon, 5 Aug 2024 16:38:35 +0000 (18:38 +0200)
committerChristoph Hellwig <hch@lst.de>
Tue, 6 Aug 2024 12:53:49 +0000 (05:53 -0700)
include/xfs_mount.h
libxfs/init.c

index 287abb57a464258b53e6bb78331cdcf8e84c2295..7d2f3716b31233dfb03231902dc2914c1af92a1f 100644 (file)
@@ -62,6 +62,7 @@ typedef struct xfs_mount {
        struct xfs_inode        *m_rbmip;       /* pointer to bitmap inode */
        struct xfs_inode        *m_rsumip;      /* pointer to summary inode */
        struct xfs_inode        *m_metadirip;   /* ptr to metadata directory */
+       struct xfs_inode        *m_rtdirip;     /* ptr to realtime metadir */
        struct xfs_buftarg      *m_ddev_targp;
        struct xfs_buftarg      *m_logdev_targp;
        struct xfs_buftarg      *m_rtdev_targp;
index da3ca9abc47b1d517b824d993648a1a9f16fc35c..b9b7d45bc7c9d2bfbdb09cdadae85ba1cedb5f77 100644 (file)
@@ -852,13 +852,27 @@ out_da:
 }
 
 void
-libxfs_rtmount_destroy(xfs_mount_t *mp)
+libxfs_rtmount_destroy(
+       struct xfs_mount        *mp)
 {
+       struct xfs_rtgroup      *rtg;
+       xfs_rgnumber_t          rgno;
+       unsigned int            i;
+
+       for_each_rtgroup(mp, rgno, rtg) {
+               for (i = 0; i < XFS_RTG_MAX; i++) {
+                       if (rtg->rtg_inodes[i])
+                               libxfs_irele(rtg->rtg_inodes[i]);
+                       rtg->rtg_inodes[i] = NULL;
+               }
+       }
+       if (mp->m_rtdirip)
+               libxfs_irele(mp->m_rtdirip);
        if (mp->m_rsumip)
                libxfs_irele(mp->m_rsumip);
        if (mp->m_rbmip)
                libxfs_irele(mp->m_rbmip);
-       mp->m_rsumip = mp->m_rbmip = NULL;
+       mp->m_rsumip = mp->m_rbmip = mp->m_rtdirip = NULL;
 }
 
 /* Flush a device and report on writes that didn't make it to stable storage. */