Эх сурвалжийг харах

orangefs: count directory pieces correctly

A large directory full of differently sized file names triggered this.
Most directories, even very large directories with shorter names, would
be lucky enough to fit in one server response.

Signed-off-by: Martin Brandenburg <martin@omnibond.com>
Signed-off-by: Mike Marshall <hubcap@omnibond.com>
Martin Brandenburg 8 жил өмнө
parent
commit
2f713b5c7d
1 өөрчлөгдсөн 5 нэмэгдсэн , 2 устгасан
  1. 5 2
      fs/orangefs/dir.c

+ 5 - 2
fs/orangefs/dir.c

@@ -135,9 +135,12 @@ static int parse_readdir(struct orangefs_dir *od,
 
 	count = 1;
 	part = od->part;
-	while (part && part->next) {
-		part = part->next;
+	while (part) {
 		count++;
+		if (part->next)
+			part = part->next;
+		else
+			break;
 	}
 
 	new = (void *)op->downcall.trailer_buf;