#define spin_trylock(l) (pthread_mutex_trylock(l) != EBUSY)
#define spin_unlock(l) pthread_mutex_unlock(l)
+#define mutex_init(l) pthread_mutex_init(l, NULL)
+#define mutex_lock(l) pthread_mutex_lock(l)
+#define mutex_trylock(l) (pthread_mutex_trylock(l) != EBUSY)
+#define mutex_unlock(l) pthread_mutex_unlock(l)
+
#endif /* __LIBXFS_SPINLOCK_H__ */
atomic64_t m_allocbt_blks;
spinlock_t m_perag_lock; /* lock for m_perag_tree */
+ pthread_mutex_t m_metafile_resv_lock;
+ uint64_t m_metafile_resv_target;
+ uint64_t m_metafile_resv_used;
+ uint64_t m_metafile_resv_avail;
} xfs_mount_t;
#define M_IGEO(mp) (&(mp)->m_ino_geo)
#define xfs_force_shutdown(d,n) ((void) 0)
#define xfs_mod_delalloc(a,b,c) ((void) 0)
+#define xfs_mod_sb_delalloc(sb, d) ((void) 0)
/* stop unused var warnings by assigning mp to itself */
struct xfs_mount *mp)
{
struct xfs_perag *pag = NULL;
- struct xfs_rtgroup *rtg = NULL;
- xfs_filblks_t ask;
int error;
/*
}
}
- /* Realtime metadata btree inode */
- while ((rtg = xfs_rtgroup_next(mp, rtg))) {
- ask = libxfs_rtrmapbt_calc_reserves(mp);
- error = -libxfs_metafile_resv_init(rtg_rmap(rtg), ask);
- if (error)
- prealloc_fail(mp, error, ask, _("realtime rmap btree"));
-
- ask = libxfs_rtrefcountbt_calc_reserves(mp);
- error = -libxfs_metafile_resv_init(rtg_refcount(rtg), ask);
- if (error)
- prealloc_fail(mp, error, ask,
- _("realtime refcount btree"));
- }
+ error = -libxfs_metafile_resv_init(mp);
+ if (error)
+ prealloc_fail(mp, error, 0, _("metafile"));
- /* Unreserve the realtime metadata reservations. */
- while ((rtg = xfs_rtgroup_next(mp, rtg))) {
- libxfs_metafile_resv_free(rtg_rmap(rtg));
- libxfs_metafile_resv_free(rtg_refcount(rtg));
- }
+ libxfs_metafile_resv_free(mp);
- /* Unreserve the per-AG reservations. */
while ((pag = xfs_perag_next(mp, pag)))
libxfs_ag_resv_free(pag);