staging: lustre: llite: handle done flags differently in ll_dir_read

Invert the done flag test to reduce the code indentation.
If done is true release the page and break out of the
while loop.

Signed-off-by: wang di <di.wang@intel.com>
Reviewed-on: http://review.whamcloud.com/10761
Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-4906
Reviewed-by: John L. Hammond <john.hammond@intel.com>
Reviewed-by: Jinshan Xiong <jinshan.xiong@intel.com>
Reviewed-by: Andreas Dilger <andreas.dilger@intel.com>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
Signed-off-by: James Simmons <jsimmons@infradead.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
wang di
2016-07-21 22:44:05 -04:00
committed by Greg Kroah-Hartman
parent fb659ca1a6
commit fee8cc8751

View File

@@ -562,37 +562,38 @@ int ll_dir_read(struct inode *inode, struct md_op_data *op_data,
namelen, ino, type);
}
if (!done) {
next = le64_to_cpu(dp->ldp_hash_end);
pos = next;
if (pos == MDS_DIR_END_OFF) {
/*
* End of directory reached.
*/
done = 1;
ll_release_page(page, 0);
} else if (1 /* chain is exhausted*/) {
/*
* Normal case: continue to the next
* page.
*/
ll_release_page(page,
le32_to_cpu(dp->ldp_flags) &
LDF_COLLIDE);
next = pos;
page = ll_get_dir_page(inode, pos,
&chain);
} else {
/*
* go into overflow page.
*/
LASSERT(le32_to_cpu(dp->ldp_flags) &
LDF_COLLIDE);
ll_release_page(page, 1);
}
} else {
if (done) {
pos = hash;
ll_release_page(page, 0);
break;
}
next = le64_to_cpu(dp->ldp_hash_end);
pos = next;
if (pos == MDS_DIR_END_OFF) {
/*
* End of directory reached.
*/
done = 1;
ll_release_page(page, 0);
} else if (1 /* chain is exhausted*/) {
/*
* Normal case: continue to the next
* page.
*/
ll_release_page(page,
le32_to_cpu(dp->ldp_flags) &
LDF_COLLIDE);
next = pos;
page = ll_get_dir_page(inode, pos,
&chain);
} else {
/*
* go into overflow page.
*/
LASSERT(le32_to_cpu(dp->ldp_flags) &
LDF_COLLIDE);
ll_release_page(page, 1);
}
}