aboutsummaryrefslogtreecommitdiffstats
path: root/fs/xfs/xfs_alloc.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs/xfs/xfs_alloc.c')
-rw-r--r--fs/xfs/xfs_alloc.c8
1 files changed, 0 insertions, 8 deletions
diff --git a/fs/xfs/xfs_alloc.c b/fs/xfs/xfs_alloc.c
index 84070f2e0ba4..4d66bb75579c 100644
--- a/fs/xfs/xfs_alloc.c
+++ b/fs/xfs/xfs_alloc.c
@@ -2276,7 +2276,6 @@ xfs_alloc_vextent(
2276 * These three force us into a single a.g. 2276 * These three force us into a single a.g.
2277 */ 2277 */
2278 args->agno = XFS_FSB_TO_AGNO(mp, args->fsbno); 2278 args->agno = XFS_FSB_TO_AGNO(mp, args->fsbno);
2279 down_read(&mp->m_peraglock);
2280 args->pag = xfs_perag_get(mp, args->agno); 2279 args->pag = xfs_perag_get(mp, args->agno);
2281 args->minleft = 0; 2280 args->minleft = 0;
2282 error = xfs_alloc_fix_freelist(args, 0); 2281 error = xfs_alloc_fix_freelist(args, 0);
@@ -2286,14 +2285,12 @@ xfs_alloc_vextent(
2286 goto error0; 2285 goto error0;
2287 } 2286 }
2288 if (!args->agbp) { 2287 if (!args->agbp) {
2289 up_read(&mp->m_peraglock);
2290 trace_xfs_alloc_vextent_noagbp(args); 2288 trace_xfs_alloc_vextent_noagbp(args);
2291 break; 2289 break;
2292 } 2290 }
2293 args->agbno = XFS_FSB_TO_AGBNO(mp, args->fsbno); 2291 args->agbno = XFS_FSB_TO_AGBNO(mp, args->fsbno);
2294 if ((error = xfs_alloc_ag_vextent(args))) 2292 if ((error = xfs_alloc_ag_vextent(args)))
2295 goto error0; 2293 goto error0;
2296 up_read(&mp->m_peraglock);
2297 break; 2294 break;
2298 case XFS_ALLOCTYPE_START_BNO: 2295 case XFS_ALLOCTYPE_START_BNO:
2299 /* 2296 /*
@@ -2345,7 +2342,6 @@ xfs_alloc_vextent(
2345 * Loop over allocation groups twice; first time with 2342 * Loop over allocation groups twice; first time with
2346 * trylock set, second time without. 2343 * trylock set, second time without.
2347 */ 2344 */
2348 down_read(&mp->m_peraglock);
2349 for (;;) { 2345 for (;;) {
2350 args->pag = xfs_perag_get(mp, args->agno); 2346 args->pag = xfs_perag_get(mp, args->agno);
2351 if (no_min) args->minleft = 0; 2347 if (no_min) args->minleft = 0;
@@ -2408,7 +2404,6 @@ xfs_alloc_vextent(
2408 } 2404 }
2409 xfs_perag_put(args->pag); 2405 xfs_perag_put(args->pag);
2410 } 2406 }
2411 up_read(&mp->m_peraglock);
2412 if (bump_rotor || (type == XFS_ALLOCTYPE_ANY_AG)) { 2407 if (bump_rotor || (type == XFS_ALLOCTYPE_ANY_AG)) {
2413 if (args->agno == sagno) 2408 if (args->agno == sagno)
2414 mp->m_agfrotor = (mp->m_agfrotor + 1) % 2409 mp->m_agfrotor = (mp->m_agfrotor + 1) %
@@ -2438,7 +2433,6 @@ xfs_alloc_vextent(
2438 return 0; 2433 return 0;
2439error0: 2434error0:
2440 xfs_perag_put(args->pag); 2435 xfs_perag_put(args->pag);
2441 up_read(&mp->m_peraglock);
2442 return error; 2436 return error;
2443} 2437}
2444 2438
@@ -2463,7 +2457,6 @@ xfs_free_extent(
2463 args.agno = XFS_FSB_TO_AGNO(args.mp, bno); 2457 args.agno = XFS_FSB_TO_AGNO(args.mp, bno);
2464 ASSERT(args.agno < args.mp->m_sb.sb_agcount); 2458 ASSERT(args.agno < args.mp->m_sb.sb_agcount);
2465 args.agbno = XFS_FSB_TO_AGBNO(args.mp, bno); 2459 args.agbno = XFS_FSB_TO_AGBNO(args.mp, bno);
2466 down_read(&args.mp->m_peraglock);
2467 args.pag = xfs_perag_get(args.mp, args.agno); 2460 args.pag = xfs_perag_get(args.mp, args.agno);
2468 if ((error = xfs_alloc_fix_freelist(&args, XFS_ALLOC_FLAG_FREEING))) 2461 if ((error = xfs_alloc_fix_freelist(&args, XFS_ALLOC_FLAG_FREEING)))
2469 goto error0; 2462 goto error0;
@@ -2475,7 +2468,6 @@ xfs_free_extent(
2475 error = xfs_free_ag_extent(tp, args.agbp, args.agno, args.agbno, len, 0); 2468 error = xfs_free_ag_extent(tp, args.agbp, args.agno, args.agbno, len, 0);
2476error0: 2469error0:
2477 xfs_perag_put(args.pag); 2470 xfs_perag_put(args.pag);
2478 up_read(&args.mp->m_peraglock);
2479 return error; 2471 return error;
2480} 2472}
2481 2473