diff options
Diffstat (limited to 'fs')
| -rw-r--r-- | fs/xfs/libxfs/xfs_alloc.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/fs/xfs/libxfs/xfs_alloc.c b/fs/xfs/libxfs/xfs_alloc.c index 14a222fdc665..516162be1398 100644 --- a/fs/xfs/libxfs/xfs_alloc.c +++ b/fs/xfs/libxfs/xfs_alloc.c | |||
| @@ -260,6 +260,7 @@ xfs_alloc_fix_len( | |||
| 260 | rlen = rlen - (k - args->mod); | 260 | rlen = rlen - (k - args->mod); |
| 261 | else | 261 | else |
| 262 | rlen = rlen - args->prod + (args->mod - k); | 262 | rlen = rlen - args->prod + (args->mod - k); |
| 263 | /* casts to (int) catch length underflows */ | ||
| 263 | if ((int)rlen < (int)args->minlen) | 264 | if ((int)rlen < (int)args->minlen) |
| 264 | return; | 265 | return; |
| 265 | ASSERT(rlen >= args->minlen && rlen <= args->maxlen); | 266 | ASSERT(rlen >= args->minlen && rlen <= args->maxlen); |
| @@ -286,7 +287,8 @@ xfs_alloc_fix_minleft( | |||
| 286 | if (diff >= 0) | 287 | if (diff >= 0) |
| 287 | return 1; | 288 | return 1; |
| 288 | args->len += diff; /* shrink the allocated space */ | 289 | args->len += diff; /* shrink the allocated space */ |
| 289 | if (args->len >= args->minlen) | 290 | /* casts to (int) catch length underflows */ |
| 291 | if ((int)args->len >= (int)args->minlen) | ||
| 290 | return 1; | 292 | return 1; |
| 291 | args->agbno = NULLAGBLOCK; | 293 | args->agbno = NULLAGBLOCK; |
| 292 | return 0; | 294 | return 0; |
