Lines Matching full:mp

84 	struct xfs_mount	*mp,  in xfs_metafile_resv_can_cover()  argument
93 if (mp->m_metafile_resv_avail >= rhs) in xfs_metafile_resv_can_cover()
100 return xfs_compare_freecounter(mp, XC_FREE_BLOCKS, in xfs_metafile_resv_can_cover()
101 rhs - mp->m_metafile_resv_avail, 2048) >= 0; in xfs_metafile_resv_can_cover()
111 struct xfs_mount *mp) in xfs_metafile_resv_critical() argument
113 ASSERT(xfs_has_metadir(mp)); in xfs_metafile_resv_critical()
115 trace_xfs_metafile_resv_critical(mp, 0); in xfs_metafile_resv_critical()
117 if (!xfs_metafile_resv_can_cover(mp, mp->m_rtbtree_maxlevels)) in xfs_metafile_resv_critical()
120 if (!xfs_metafile_resv_can_cover(mp, in xfs_metafile_resv_critical()
121 div_u64(mp->m_metafile_resv_target, 10))) in xfs_metafile_resv_critical()
124 return XFS_TEST_ERROR(mp, XFS_ERRTAG_METAFILE_RESV_CRITICAL); in xfs_metafile_resv_critical()
133 struct xfs_mount *mp = ip->i_mount; in xfs_metafile_resv_alloc_space() local
139 trace_xfs_metafile_resv_alloc_space(mp, args->len); in xfs_metafile_resv_alloc_space()
145 mutex_lock(&mp->m_metafile_resv_lock); in xfs_metafile_resv_alloc_space()
146 if (mp->m_metafile_resv_avail > 0) { in xfs_metafile_resv_alloc_space()
149 from_resv = min_t(int64_t, len, mp->m_metafile_resv_avail); in xfs_metafile_resv_alloc_space()
150 mp->m_metafile_resv_avail -= from_resv; in xfs_metafile_resv_alloc_space()
177 mp->m_metafile_resv_used += args->len; in xfs_metafile_resv_alloc_space()
178 mutex_unlock(&mp->m_metafile_resv_lock); in xfs_metafile_resv_alloc_space()
191 struct xfs_mount *mp = ip->i_mount; in xfs_metafile_resv_free_space() local
196 trace_xfs_metafile_resv_free_space(mp, len); in xfs_metafile_resv_free_space()
201 mutex_lock(&mp->m_metafile_resv_lock); in xfs_metafile_resv_free_space()
202 mp->m_metafile_resv_used -= len; in xfs_metafile_resv_free_space()
208 to_resv = mp->m_metafile_resv_target - in xfs_metafile_resv_free_space()
209 (mp->m_metafile_resv_used + mp->m_metafile_resv_avail); in xfs_metafile_resv_free_space()
212 mp->m_metafile_resv_avail += to_resv; in xfs_metafile_resv_free_space()
217 mutex_unlock(&mp->m_metafile_resv_lock); in xfs_metafile_resv_free_space()
229 struct xfs_mount *mp) in __xfs_metafile_resv_free() argument
231 if (mp->m_metafile_resv_avail) { in __xfs_metafile_resv_free()
232 xfs_mod_sb_delalloc(mp, -(int64_t)mp->m_metafile_resv_avail); in __xfs_metafile_resv_free()
233 xfs_add_fdblocks(mp, mp->m_metafile_resv_avail); in __xfs_metafile_resv_free()
235 mp->m_metafile_resv_avail = 0; in __xfs_metafile_resv_free()
236 mp->m_metafile_resv_used = 0; in __xfs_metafile_resv_free()
237 mp->m_metafile_resv_target = 0; in __xfs_metafile_resv_free()
243 struct xfs_mount *mp) in xfs_metafile_resv_free() argument
245 if (!xfs_has_metadir(mp)) in xfs_metafile_resv_free()
248 trace_xfs_metafile_resv_free(mp, 0); in xfs_metafile_resv_free()
250 mutex_lock(&mp->m_metafile_resv_lock); in xfs_metafile_resv_free()
251 __xfs_metafile_resv_free(mp); in xfs_metafile_resv_free()
252 mutex_unlock(&mp->m_metafile_resv_lock); in xfs_metafile_resv_free()
258 struct xfs_mount *mp) in xfs_metafile_resv_init() argument
263 xfs_rfsblock_t dblocks_avail = mp->m_sb.sb_dblocks / 4; in xfs_metafile_resv_init()
266 if (!xfs_has_metadir(mp)) in xfs_metafile_resv_init()
272 mutex_lock(&mp->m_metafile_resv_lock); in xfs_metafile_resv_init()
273 __xfs_metafile_resv_free(mp); in xfs_metafile_resv_init()
280 while ((rtg = xfs_rtgroup_next(mp, rtg))) { in xfs_metafile_resv_init()
281 if (xfs_has_rtrmapbt(mp)) { in xfs_metafile_resv_init()
283 target += xfs_rtrmapbt_calc_reserves(mp); in xfs_metafile_resv_init()
285 if (xfs_has_rtreflink(mp)) { in xfs_metafile_resv_init()
287 target += xfs_rtrefcountbt_calc_reserves(mp); in xfs_metafile_resv_init()
305 error = xfs_dec_fdblocks(mp, hidden_space, true); in xfs_metafile_resv_init()
307 trace_xfs_metafile_resv_init_error(mp, 0); in xfs_metafile_resv_init()
311 xfs_mod_sb_delalloc(mp, hidden_space); in xfs_metafile_resv_init()
313 mp->m_metafile_resv_target = target; in xfs_metafile_resv_init()
314 mp->m_metafile_resv_used = used; in xfs_metafile_resv_init()
315 mp->m_metafile_resv_avail = hidden_space; in xfs_metafile_resv_init()
317 trace_xfs_metafile_resv_init(mp, target); in xfs_metafile_resv_init()
320 mutex_unlock(&mp->m_metafile_resv_lock); in xfs_metafile_resv_init()