freeze has uploaded this change for review.

View Change

Fix redundant refcnt with set op context  marco

The set_op_context_export macro need a export to checking something
like fsal_export exist or not.
When we use the get_gsh_export_by_pseudo to get export, that will
increase the reference count.
If using the get_gsh_export_by_pseudo directly with
set_op_context_export, that will call three times (to get export)
then the redundant reference count is counted.

That would case that the obj handles still exists when destroy_fsal.
Depends on different implementation of release handle.
Sometimes meet the SEGFULT because op_ctx is null in ADMIN thread.
In destroy_fsal stage, all obj handles should be released.

Change-Id: Icf6670bbf7bfcdf5c46be5cb53b3095a2d93edcb
Signed-off-by: Vicente Cheng <freeze.bilsted@gmail.com>
---
M src/Protocols/NFS/nfs4_op_putrootfh.c
M src/Protocols/NFS/nfs4_pseudo.c
2 files changed, 7 insertions(+), 2 deletions(-)

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

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

Gerrit-Project: ffilz/nfs-ganesha
Gerrit-Branch: next
Gerrit-Change-Id: Icf6670bbf7bfcdf5c46be5cb53b3095a2d93edcb
Gerrit-Change-Number: 503998
Gerrit-PatchSet: 1
Gerrit-Owner: freeze <freeze.bilsted@gmail.com>
Gerrit-MessageType: newchange