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( ...@@ -350,32 +350,24 @@ xfs_rtallocate_extent_exact(
if (error) if (error)
return 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); maxlen = next - start;
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;
if (maxlen < minlen) if (maxlen < minlen)
return -ENOSPC; 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. * 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