summaryrefslogtreecommitdiffstats
path: root/xlators/nfs/server/src/nfs.c
diff options
context:
space:
mode:
Diffstat (limited to 'xlators/nfs/server/src/nfs.c')
-rw-r--r--xlators/nfs/server/src/nfs.c20
1 files changed, 19 insertions, 1 deletions
diff --git a/xlators/nfs/server/src/nfs.c b/xlators/nfs/server/src/nfs.c
index 6f0e41328..8e5ec27a3 100644
--- a/xlators/nfs/server/src/nfs.c
+++ b/xlators/nfs/server/src/nfs.c
@@ -38,6 +38,7 @@
#include "inode.h"
#include "mount3.h"
#include "nfs3.h"
+#include "nfs3-helpers.h"
#include "nfs-mem-types.h"
#include "statedump.h"
@@ -798,7 +799,24 @@ out:
return 0;
}
-struct xlator_cbks cbks = { };
+int32_t
+nfs_forget (xlator_t *this, inode_t *inode)
+{
+ uint64_t ctx = 0;
+
+ if (inode_ctx_del (inode, this, &ctx))
+ return -1;
+
+ if (ctx != GF_NFS3_FD_CACHED)
+ GF_FREE ((void *)ctx);
+
+ return 0;
+}
+
+struct xlator_cbks cbks = {
+ .forget = nfs_forget
+};
+
struct xlator_fops fops = { };
struct xlator_dumpops dumpops = {