aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/lib/nfs/Connection.cxx15
-rw-r--r--src/lib/nfs/Connection.hxx5
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);