Ver código fonte

NFS: nfs_readdir_search_for_cookie() don't mark as eof if cookie not found

If we're searching for a specific cookie, and it isn't found in the page
cache, we should try an uncached_readdir(). To do so, we return EBADCOOKIE,
but we don't set desc->eof.

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Trond Myklebust 14 anos atrás
pai
commit
18fb5fe40c
1 arquivos alterados com 2 adições e 1 exclusões
  1. 2 1
      fs/nfs/dir.c

+ 2 - 1
fs/nfs/dir.c

@@ -316,8 +316,9 @@ int nfs_readdir_search_for_cookie(struct nfs_cache_array *array, nfs_readdir_des
 		}
 	}
 	if (i == array->eof_index) {
-		desc->eof = 1;
 		status = -EBADCOOKIE;
+		if (*desc->dir_cookie == array->last_cookie)
+			desc->eof = 1;
 	}
 out:
 	return status;