diff options
Diffstat (limited to 'xlators/nfs/server/src/nfs.c')
-rw-r--r-- | xlators/nfs/server/src/nfs.c | 20 |
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 = { |