]> www.infradead.org Git - users/hch/xfsprogs.git/commitdiff
use xfs_rtginode helpers
authorChristoph Hellwig <hch@lst.de>
Wed, 17 Jul 2024 07:38:08 +0000 (09:38 +0200)
committerChristoph Hellwig <hch@lst.de>
Wed, 17 Jul 2024 12:31:20 +0000 (14:31 +0200)
Use the rtginode helpers in a few more places.

Signed-off-by: Christoph Hellwig <hch@lst.de>
db/fsmap.c
db/inode.c
repair/rmap.c

index b637a769b97b8754ef57a8db689515f8c8696409..404d6503394861bb22f7944d7702f3a2eb5fccff 100644 (file)
@@ -130,43 +130,33 @@ fsmap_rtgroup(
 {
        struct xfs_mount        *mp = rtg->rtg_mount;
        struct xfs_trans        *tp;
-       struct xfs_inode        *dp, *ip;
-       const char              *path;
        struct xfs_btree_cur    *bt_cur;
        int                     error;
 
-       path = xfs_rtginode_path(rtg->rtg_rgno, XFS_RTG_RMAP);
-       if (!path) {
-               dbprintf(
- _("Cannot create path to rtgroup %u rmap inode\n"),
-                               rtg->rtg_rgno);
-               return ENOMEM;
-       }
-
        error = -libxfs_trans_alloc_empty(mp, &tp);
        if (error) {
                dbprintf(
  _("Cannot alloc transaction to look up rtgroup %u rmap inode\n"),
                                rtg->rtg_rgno);
-               goto out_path;
+               return error;
        }
 
-       error = -libxfs_imeta_load(tp, mp->m_metadirip, "realtime", S_IFDIR,
-                       &dp);
+       error = -xfs_rtginode_load_rtdir(tp);
        if (error) {
                dbprintf(_("Cannot load realtime inode, error %d\n"),
                        error);
                goto out_trans;
        }
 
-       error = -libxfs_imeta_load(tp, dp, path, S_IFREG, &ip);
+       error = -xfs_rtginode_load(rtg, XFS_RTG_RMAP, tp);
        if (error) {
                dbprintf(_("Cannot load rtgroup %u rmap inode, error %d\n"),
                        rtg->rtg_rgno, error);
                goto out_rele_dp;
        }
 
-       bt_cur = libxfs_rtrmapbt_init_cursor(mp, tp, rtg, ip);
+       bt_cur = libxfs_rtrmapbt_init_cursor(mp, tp, rtg,
+                       rtg->rtg_inodes[XFS_RTG_RMAP]);
        if (!bt_cur) {
                dbprintf(_("Not enough memory.\n"));
                goto out_rele_ip;
@@ -183,13 +173,13 @@ fsmap_rtgroup(
 out_cur:
        libxfs_btree_del_cursor(bt_cur, error);
 out_rele_ip:
-       libxfs_irele(ip);
+       libxfs_irele(rtg->rtg_inodes[XFS_RTG_RMAP]);
+       rtg->rtg_inodes[XFS_RTG_RMAP] = NULL;
 out_rele_dp:
-       libxfs_irele(dp);
+       libxfs_irele(mp->m_rtdirip);
+       mp->m_rtdirip = NULL;
 out_trans:
        libxfs_trans_cancel(tp);
-out_path:
-       kfree(path);
        return error;
 }
 
index 451cb64c9c19145ddd018d72f4b2b70409952397..3e72764cf2501f2caccfb5309df79fe18d8c93f3 100644 (file)
@@ -691,8 +691,7 @@ init_rtmeta_inode_bitmaps(
        if (error)
                return error;
 
-       error = -libxfs_imeta_load(tp, mp->m_metadirip, "realtime", S_IFDIR,
-                       &mp->m_rtdirip);
+       error = -xfs_rtginode_load_rtdir(tp);
        if (error)
                goto out_cancel;
 
index f9bdc2d955f0886484133b6dda69ac761c04ca7f..ec292dbc45b9a674661ba8efa8dfa6f49b7a31b0 100644 (file)
@@ -240,8 +240,7 @@ discover_rtgroup_inodes(
        error = -libxfs_trans_alloc_empty(mp, &tp);
        if (error)
                goto out;
-       error = -libxfs_imeta_load(tp, mp->m_metadirip, "realtime", S_IFDIR,
-                       &mp->m_rtdirip);
+       error = -xfs_rtginode_load_rtdir(tp);
        if (error)
                goto out_cancel;