mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-05-06 13:27:25 -04:00
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:
committed by
Greg Kroah-Hartman
parent
fb659ca1a6
commit
fee8cc8751
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user