diff options
Diffstat (limited to 'fs/xfs/xfs_alloc.c')
| -rw-r--r-- | fs/xfs/xfs_alloc.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/fs/xfs/xfs_alloc.c b/fs/xfs/xfs_alloc.c index 64ee07db0d5e..8558226281c4 100644 --- a/fs/xfs/xfs_alloc.c +++ b/fs/xfs/xfs_alloc.c | |||
| @@ -1942,8 +1942,10 @@ xfs_alloc_fix_freelist( | |||
| 1942 | /* | 1942 | /* |
| 1943 | * Allocate as many blocks as possible at once. | 1943 | * Allocate as many blocks as possible at once. |
| 1944 | */ | 1944 | */ |
| 1945 | if ((error = xfs_alloc_ag_vextent(&targs))) | 1945 | if ((error = xfs_alloc_ag_vextent(&targs))) { |
| 1946 | xfs_trans_brelse(tp, agflbp); | ||
| 1946 | return error; | 1947 | return error; |
| 1948 | } | ||
| 1947 | /* | 1949 | /* |
| 1948 | * Stop if we run out. Won't happen if callers are obeying | 1950 | * Stop if we run out. Won't happen if callers are obeying |
| 1949 | * the restrictions correctly. Can happen for free calls | 1951 | * the restrictions correctly. Can happen for free calls |
| @@ -1960,6 +1962,7 @@ xfs_alloc_fix_freelist( | |||
| 1960 | return error; | 1962 | return error; |
| 1961 | } | 1963 | } |
| 1962 | } | 1964 | } |
| 1965 | xfs_trans_brelse(tp, agflbp); | ||
| 1963 | args->agbp = agbp; | 1966 | args->agbp = agbp; |
| 1964 | return 0; | 1967 | return 0; |
| 1965 | } | 1968 | } |
