Frank Filz has uploaded this change for review.

View Change

WIP - Synchonizing I/O and file open/close/reopen without holding rwlock

For async, we will need to protect I/O from open/close/reopen with the
operation being completed on a different thread. Because of this, we
can't use a pthread_rwlock, so we basically implement our own.

This also allows reducing the contentioon for the obj_lock since we
actually just lock the fsal_fd we are using.

This implementation ALSO acquires temporary share reservations for
more operations. The impact of this actually is that instead of share
operations blocking on I/O, they may instead fail.

Change-Id: Ib36e112c5599f15ba0522750447175c30badc5a2
Signed-off-by: Frank S. Filz <ffilzlnx@mindspring.com>
---
M src/include/common_utils.h
M src/include/fsal_types.h
M src/FSAL/CMakeLists.txt
M src/MainNFSD/libganesha_nfsd.ver
M src/include/fsal_api.h
M src/include/FSAL/fsal_commonlib.h
M src/FSAL/FSAL_VFS/handle.c
M src/FSAL/FSAL_VFS/file.c
M src/FSAL/FSAL_CEPH/internal.h
M src/FSAL/FSAL_VFS/vfs_methods.h
M src/FSAL/FSAL_CEPH/handle.c
M src/FSAL/commonlib.c
12 files changed, 1,314 insertions(+), 365 deletions(-)

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

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

Gerrit-Project: ffilz/nfs-ganesha
Gerrit-Branch: next
Gerrit-Change-Id: Ib36e112c5599f15ba0522750447175c30badc5a2
Gerrit-Change-Number: 531877
Gerrit-PatchSet: 1
Gerrit-Owner: Frank Filz <ffilzlnx@mindspring.com>
Gerrit-MessageType: newchange