From 2f713b5c7d2a90baba6c88174c81fb9a96bfde21 Mon Sep 17 00:00:00 2001 From: Martin Brandenburg Date: Thu, 4 May 2017 13:16:04 -0400 Subject: 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 Signed-off-by: Mike Marshall --- fs/orangefs/dir.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'fs/orangefs/dir.c') diff --git a/fs/orangefs/dir.c b/fs/orangefs/dir.c index cac601498925..d327cbd17756 100644 --- a/fs/orangefs/dir.c +++ b/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; -- cgit v1.2.3