[lustre-devel] [PATCH 12/58] staging: lustre: llite: handle done flags differently in ll_dir_read

James Simmons jsimmons at infradead.org
Thu Jul 21 19:44:05 PDT 2016


From: wang di <di.wang at intel.com>

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 at 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 at intel.com>
Reviewed-by: Jinshan Xiong <jinshan.xiong at intel.com>
Reviewed-by: Andreas Dilger <andreas.dilger at intel.com>
Reviewed-by: Oleg Drokin <oleg.drokin at intel.com>
Signed-off-by: James Simmons <jsimmons at infradead.org>
---
 drivers/staging/lustre/lustre/llite/dir.c |   59 +++++++++++++++--------------
 1 files changed, 30 insertions(+), 29 deletions(-)

diff --git a/drivers/staging/lustre/lustre/llite/dir.c b/drivers/staging/lustre/lustre/llite/dir.c
index 48eacee..e4d3176 100644
--- a/drivers/staging/lustre/lustre/llite/dir.c
+++ b/drivers/staging/lustre/lustre/llite/dir.c
@@ -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);
 		}
 	}
 
-- 
1.7.1



More information about the lustre-devel mailing list