diff options
| -rw-r--r-- | fs/xfs/xfs_alloc.c | 18 |
1 files changed, 8 insertions, 10 deletions
diff --git a/fs/xfs/xfs_alloc.c b/fs/xfs/xfs_alloc.c index 077c3417a54e..d43813267a80 100644 --- a/fs/xfs/xfs_alloc.c +++ b/fs/xfs/xfs_alloc.c | |||
| @@ -257,16 +257,14 @@ xfs_alloc_fix_len( | |||
| 257 | k = rlen % args->prod; | 257 | k = rlen % args->prod; |
| 258 | if (k == args->mod) | 258 | if (k == args->mod) |
| 259 | return; | 259 | return; |
| 260 | if (k > args->mod) { | 260 | if (k > args->mod) |
| 261 | if ((int)(rlen = rlen - k - args->mod) < (int)args->minlen) | 261 | rlen = rlen - (k - args->mod); |
| 262 | return; | 262 | else |
| 263 | } else { | 263 | rlen = rlen - args->prod + (args->mod - k); |
| 264 | if ((int)(rlen = rlen - args->prod - (args->mod - k)) < | 264 | if ((int)rlen < (int)args->minlen) |
| 265 | (int)args->minlen) | 265 | return; |
| 266 | return; | 266 | ASSERT(rlen >= args->minlen && rlen <= args->maxlen); |
| 267 | } | 267 | ASSERT(rlen % args->prod == args->mod); |
| 268 | ASSERT(rlen >= args->minlen); | ||
| 269 | ASSERT(rlen <= args->maxlen); | ||
| 270 | args->len = rlen; | 268 | args->len = rlen; |
| 271 | } | 269 | } |
| 272 | 270 | ||
