shaharhoch@gmail.com has uploaded this change for review.

View Change

Fix possible race when populating pseudo fs

When we create entires in the pseudo fs we create the entry by calling
PSEUDO FSAL mkdir. This creates the entrie, but doesn't populate the
export junction in the handle.

Once we get the handle, we populate the junction, but there could be a
race where get get a lookup request for that entry after the mkdir, but
before the junction export is updated.

We fix this by not returning an entry in the PSEUDO FSAL lookyp while
an export update is in progress and the export junction of the handle
is NULL.
In addition, in order to make sure the handle is fully updated when it
is returned, we populate the export junction after every thing else the
handle points to is updated.

Change-Id: I7e1dd78bbb1945b3c1ea29d051f42836ec6940e5
Signed-off-by: Shahar Hochma <shaharhoch@google.com>
---
M src/FSAL/FSAL_PSEUDO/handle.c
M src/Protocols/NFS/nfs4_pseudo.c
2 files changed, 55 insertions(+), 17 deletions(-)

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

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

Gerrit-Project: ffilz/nfs-ganesha
Gerrit-Branch: next
Gerrit-Change-Id: I7e1dd78bbb1945b3c1ea29d051f42836ec6940e5
Gerrit-Change-Number: 555950
Gerrit-PatchSet: 1
Gerrit-Owner: shaharhoch@gmail.com
Gerrit-MessageType: newchange