Commit 3c97c9f7 authored by Christoph Hellwig's avatar Christoph Hellwig Committed by Chandan Babu R

xfs: tidy up xfs_rtallocate_extent_exact

Use common code for both xfs_rtallocate_range calls by moving
the !isfree logic into the non-default branch.
Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
Reviewed-by: default avatar"Darrick J. Wong" <djwong@kernel.org>
Signed-off-by: default avatarChandan Babu R <chandanbabu@kernel.org>
parent d9498fa8
......@@ -350,32 +350,24 @@ xfs_rtallocate_extent_exact(
if (error)
return error;
if (isfree) {
if (!isfree) {
/*
* If it is, allocate it and return success.
* If not, allocate what there is, if it's at least minlen.
*/
error = xfs_rtallocate_range(args, start, maxlen);
if (error)
return error;
*len = maxlen;
*rtx = start;
return 0;
}
/*
* If not, allocate what there is, if it's at least minlen.
*/
maxlen = next - start;
if (maxlen < minlen)
return -ENOSPC;
/*
* Trim off tail of extent, if prod is specified.
*/
if (prod > 1 && (i = maxlen % prod)) {
maxlen -= i;
maxlen = next - start;
if (maxlen < minlen)
return -ENOSPC;
/*
* Trim off tail of extent, if prod is specified.
*/
if (prod > 1 && (i = maxlen % prod)) {
maxlen -= i;
if (maxlen < minlen)
return -ENOSPC;
}
}
/*
* Allocate what we can and return it.
*/
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment