| .. | .. | 
|---|
| 344 | 344 | ASSERT(*len > 0); | 
|---|
| 345 | 345 |  | 
|---|
| 346 | 346 | spin_lock(&args->pag->pagb_lock); | 
|---|
| 347 |  | -restart: | 
|---|
| 348 | 347 | fbno = *bno; | 
|---|
| 349 | 348 | flen = *len; | 
|---|
| 350 | 349 | rbp = args->pag->pagb_tree.rb_node; | 
|---|
| .. | .. | 
|---|
| 360 | 359 | continue; | 
|---|
| 361 | 360 | } else if (fbno >= bend) { | 
|---|
| 362 | 361 | rbp = rbp->rb_right; | 
|---|
| 363 |  | -			continue; | 
|---|
| 364 |  | -		} | 
|---|
| 365 |  | - | 
|---|
| 366 |  | -		/* | 
|---|
| 367 |  | -		 * If this is a metadata allocation, try to reuse the busy | 
|---|
| 368 |  | -		 * extent instead of trimming the allocation. | 
|---|
| 369 |  | -		 */ | 
|---|
| 370 |  | -		if (!(args->datatype & XFS_ALLOC_USERDATA) && | 
|---|
| 371 |  | -		    !(busyp->flags & XFS_EXTENT_BUSY_DISCARDED)) { | 
|---|
| 372 |  | -			if (!xfs_extent_busy_update_extent(args->mp, args->pag, | 
|---|
| 373 |  | -							  busyp, fbno, flen, | 
|---|
| 374 |  | -							  false)) | 
|---|
| 375 |  | -				goto restart; | 
|---|
| 376 | 362 | continue; | 
|---|
| 377 | 363 | } | 
|---|
| 378 | 364 |  | 
|---|