diff options
-rw-r--r-- | src/lib/nfs/Connection.cxx | 15 | ||||
-rw-r--r-- | src/lib/nfs/Connection.hxx | 5 |
2 files changed, 17 insertions, 3 deletions
diff --git a/src/lib/nfs/Connection.cxx b/src/lib/nfs/Connection.cxx index c62b11acb..433d49ecf 100644 --- a/src/lib/nfs/Connection.cxx +++ b/src/lib/nfs/Connection.cxx @@ -331,12 +331,22 @@ DummyCallback(int, struct nfs_context *, void *, void *) { } +inline void +NfsConnection::InternalClose(struct nfsfh *fh) +{ + assert(GetEventLoop().IsInside()); + assert(context != nullptr); + assert(fh != nullptr); + + nfs_close_async(context, fh, DummyCallback, nullptr); +} + void NfsConnection::Close(struct nfsfh *fh) { assert(GetEventLoop().IsInside()); - nfs_close_async(context, fh, DummyCallback, nullptr); + InternalClose(fh); ScheduleSocket(); } @@ -424,8 +434,7 @@ NfsConnection::OnSocketReady(unsigned flags) #endif while (!deferred_close.empty()) { - nfs_close_async(context, deferred_close.front(), - DummyCallback, nullptr); + InternalClose(deferred_close.front()); deferred_close.pop_front(); } diff --git a/src/lib/nfs/Connection.hxx b/src/lib/nfs/Connection.hxx index e63782931..93bb4e236 100644 --- a/src/lib/nfs/Connection.hxx +++ b/src/lib/nfs/Connection.hxx @@ -187,6 +187,11 @@ private: void DestroyContext(); /** + * Wrapper for nfs_close_async(). + */ + void InternalClose(struct nfsfh *fh); + + /** * Invoke nfs_close_async() after nfs_service() returns. */ void DeferClose(struct nfsfh *fh); |