[lustre-devel] [PATCH 07/29] lustre: osc: convert a while loop to for
NeilBrown
neilb at suse.com
Tue Jan 8 22:24:01 PST 2019
This loop uses 'continue' in several places,
and each one is proceeded by
ext = next_extent(ext)
which also appears at the end.
This is exactly the pattern that a 'for' loop
simplifies. So change to a for loop.
Signed-off-by: NeilBrown <neilb at suse.com>
---
drivers/staging/lustre/lustre/osc/osc_cache.c | 21 +++++----------------
1 file changed, 5 insertions(+), 16 deletions(-)
diff --git a/drivers/staging/lustre/lustre/osc/osc_cache.c b/drivers/staging/lustre/lustre/osc/osc_cache.c
index dd3c87124aa5..eb8de1503386 100644
--- a/drivers/staging/lustre/lustre/osc/osc_cache.c
+++ b/drivers/staging/lustre/lustre/osc/osc_cache.c
@@ -737,7 +737,7 @@ static struct osc_extent *osc_extent_find(const struct lu_env *env,
ext = osc_extent_search(obj, cur->oe_start);
if (!ext)
ext = first_extent(obj);
- while (ext) {
+ for (; ext; ext = next_extent(ext)) {
pgoff_t ext_chk_start = ext->oe_start >> ppc_bits;
pgoff_t ext_chk_end = ext->oe_end >> ppc_bits;
@@ -750,15 +750,12 @@ static struct osc_extent *osc_extent_find(const struct lu_env *env,
EASSERTF(!overlapped(ext, cur), ext,
EXTSTR "\n", EXTPARA(cur));
- ext = next_extent(ext);
continue;
}
/* discontiguous chunks? */
- if (chunk + 1 < ext_chk_start) {
- ext = next_extent(ext);
+ if (chunk + 1 < ext_chk_start)
continue;
- }
/* ok, from now on, ext and cur have these attrs:
* 1. covered by the same lock
@@ -786,33 +783,27 @@ static struct osc_extent *osc_extent_find(const struct lu_env *env,
}
/* non-overlapped extent */
- if (ext->oe_state != OES_CACHE || ext->oe_fsync_wait) {
+ if (ext->oe_state != OES_CACHE || ext->oe_fsync_wait)
/* we can't do anything for a non OES_CACHE extent, or
* if there is someone waiting for this extent to be
* flushed, try next one.
*/
- ext = next_extent(ext);
continue;
- }
/* check if they belong to the same rpc slot before trying to
* merge. the extents are not overlapped and contiguous at
* chunk level to get here.
*/
- if (ext->oe_max_end != max_end) {
+ if (ext->oe_max_end != max_end)
/* if they don't belong to the same RPC slot or
* max_pages_per_rpc has ever changed, do not merge.
*/
- ext = next_extent(ext);
continue;
- }
/* check whether maximum extent size will be hit */
if ((ext_chk_end - ext_chk_start + 1) << ppc_bits >
- cli->cl_max_extent_pages) {
- ext = next_extent(ext);
+ cli->cl_max_extent_pages)
continue;
- }
/* it's required that an extent must be contiguous at chunk
* level so that we know the whole extent is covered by grant
@@ -851,8 +842,6 @@ static struct osc_extent *osc_extent_find(const struct lu_env *env,
}
if (found)
break;
-
- ext = next_extent(ext);
}
osc_extent_tree_dump(D_CACHE, obj);
More information about the lustre-devel
mailing list