madhu.punjabi@in.ibm.com has uploaded this change for review.

View Change

Add a new chunk at the tail of the list of chunks

With commits 5dc6a70ed42275a4f6772b9802e79f23dc25fa73
and 654dd706d22663c6ae6029e0c8c5814fe0d6ff6a in
mdcache_readdir_chunked() after releasing the content_lock and
reacquiring the same content_lock for writing, we don't trust
the previous chunk and set 'chunk = NULL'. With this the
'prev_chunk' pointer received in mdcache_get_chunk()
may be NULL and then we add the newly created chunk to the
head of the chunk list for the directory.
But for a dirent, to set the 'eod = true' the
mdcache_populate_dir_chunk() checks if the its associated chunk
is the last chunk. This check fails when the chunk is added
to the head of the chunk list, and leads to 'ls' getting hang
at the NFS client.
To fix this we now add a newly created chunk at the tail
of the chunk list for a directory.

Change-Id: If2cc55f9f8771a762adfa0b68807615d0a440e48
Signed-off-by: Madhu Thorat <madhu.punjabi@in.ibm.com>
---
M src/FSAL/Stackable_FSALs/FSAL_MDCACHE/mdcache_lru.c
1 file changed, 2 insertions(+), 1 deletion(-)

git pull ssh://review.gerrithub.io:29418/ffilz/nfs-ganesha refs/changes/40/444240/1

To view, visit change 444240. To unsubscribe, or for help writing mail filters, visit settings.

Gerrit-Project: ffilz/nfs-ganesha
Gerrit-Branch: next
Gerrit-Change-Id: If2cc55f9f8771a762adfa0b68807615d0a440e48
Gerrit-Change-Number: 444240
Gerrit-PatchSet: 1
Gerrit-Owner: madhu.punjabi@in.ibm.com
Gerrit-MessageType: newchange