/* Note: This is advisory -- it might benefit us to keep file nodes around for a bit after they are released just in case they are reopened soon. But that requires a cache layer. */ int encfs_release(const char *path, struct fuse_file_info *finfo) { EncFS_Context *ctx = context(); try { ctx->eraseNode(path, reinterpret_cast<FileNode *>(finfo->fh)); return ESUCCESS; } catch (encfs::Error &err) { RLOG(ERROR) << "error caught in release: " << err.what(); return -EIO; } }
/* Note: This is advisory -- it might benefit us to keep file nodes around for a bit after they are released just in case they are reopened soon. But that requires a cache layer. */ int encfs_release(const char *path, struct fuse_file_info *finfo) { EncFS_Context *ctx = context(); try { ctx->eraseNode( path, (void*)(uintptr_t)finfo->fh ); return ESUCCESS; } catch( Error &err ) { LOG(ERROR) << "error caught in release: " << err.what(); return -EIO; } }
/* Note: This is advisory -- it might benefit us to keep file nodes around for a bit after they are released just in case they are reopened soon. But that requires a cache layer. */ int encfs_release(const char *path, struct fuse_file_info *finfo) { EncFS_Context *ctx = context(); try { ctx->eraseNode( path, (void*)(uintptr_t)finfo->fh ); return ESUCCESS; } catch( rlog::Error &err ) { rError("error caught in release"); err.log( _RLWarningChannel ); return -EIO; } }