xfs_inodegc_queue_all(mp);
 }
 
+#ifdef CONFIG_XFS_RT
+static inline bool
+xfs_inodegc_want_queue_rt_file(
+       struct xfs_inode        *ip)
+{
+       struct xfs_mount        *mp = ip->i_mount;
+       uint64_t                freertx;
+
+       if (!XFS_IS_REALTIME_INODE(ip))
+               return false;
+
+       freertx = READ_ONCE(mp->m_sb.sb_frextents);
+       return freertx < mp->m_low_rtexts[XFS_LOWSP_5_PCNT];
+}
+#else
+# define xfs_inodegc_want_queue_rt_file(ip)    (false)
+#endif /* CONFIG_XFS_RT */
+
 /*
  * Schedule the inactivation worker when:
  *
                                XFS_FDBLOCKS_BATCH) < 0)
                return true;
 
+       if (xfs_inodegc_want_queue_rt_file(ip))
+               return true;
+
        if (xfs_inode_near_dquot_enforcement(ip, XFS_DQTYPE_USER))
                return true;
 
 
 xfs_set_low_space_thresholds(
        struct xfs_mount        *mp)
 {
-       int i;
+       uint64_t                dblocks = mp->m_sb.sb_dblocks;
+       uint64_t                rtexts = mp->m_sb.sb_rextents;
+       int                     i;
 
-       for (i = 0; i < XFS_LOWSP_MAX; i++) {
-               uint64_t space = mp->m_sb.sb_dblocks;
+       do_div(dblocks, 100);
+       do_div(rtexts, 100);
 
-               do_div(space, 100);
-               mp->m_low_space[i] = space * (i + 1);
+       for (i = 0; i < XFS_LOWSP_MAX; i++) {
+               mp->m_low_space[i] = dblocks * (i + 1);
+               mp->m_low_rtexts[i] = rtexts * (i + 1);
        }
 }
 
 
        int                     m_fixedfsid[2]; /* unchanged for life of FS */
        uint                    m_qflags;       /* quota status flags */
        uint64_t                m_flags;        /* global mount flags */
-       int64_t                 m_low_space[XFS_LOWSP_MAX];
+       uint64_t                m_low_space[XFS_LOWSP_MAX];
+       uint64_t                m_low_rtexts[XFS_LOWSP_MAX];
        struct xfs_ino_geometry m_ino_geo;      /* inode geometry */
        struct xfs_trans_resv   m_resv;         /* precomputed res values */
                                                /* low free space thresholds */