18c2ecf20Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0 28c2ecf20Sopenharmony_ci/* 38c2ecf20Sopenharmony_ci * fs/epfs/main.c 48c2ecf20Sopenharmony_ci * 58c2ecf20Sopenharmony_ci * Copyright (c) 2022 Huawei Technologies Co., Ltd. 68c2ecf20Sopenharmony_ci * Author: weilongping@huawei.com 78c2ecf20Sopenharmony_ci * Create: 2022-06-10 88c2ecf20Sopenharmony_ci */ 98c2ecf20Sopenharmony_ci#include <linux/fs.h> 108c2ecf20Sopenharmony_ci#include <linux/module.h> 118c2ecf20Sopenharmony_ci#include <linux/slab.h> 128c2ecf20Sopenharmony_ci 138c2ecf20Sopenharmony_ci#include "internal.h" 148c2ecf20Sopenharmony_ci 158c2ecf20Sopenharmony_cistruct kmem_cache *epfs_inode_cachep; 168c2ecf20Sopenharmony_ci 178c2ecf20Sopenharmony_cistatic int __init epfs_init(void) 188c2ecf20Sopenharmony_ci{ 198c2ecf20Sopenharmony_ci int ret; 208c2ecf20Sopenharmony_ci 218c2ecf20Sopenharmony_ci epfs_inode_cachep = 228c2ecf20Sopenharmony_ci kmem_cache_create("epfs_inode_cache", 238c2ecf20Sopenharmony_ci sizeof(struct epfs_inode_info), 0, 0, 248c2ecf20Sopenharmony_ci NULL); 258c2ecf20Sopenharmony_ci if (!epfs_inode_cachep) 268c2ecf20Sopenharmony_ci return -ENOMEM; 278c2ecf20Sopenharmony_ci ret = register_filesystem(&epfs_fs_type); 288c2ecf20Sopenharmony_ci if (ret) 298c2ecf20Sopenharmony_ci kmem_cache_destroy(epfs_inode_cachep); 308c2ecf20Sopenharmony_ci return ret; 318c2ecf20Sopenharmony_ci} 328c2ecf20Sopenharmony_ci 338c2ecf20Sopenharmony_cistatic void __exit epfs_exit(void) 348c2ecf20Sopenharmony_ci{ 358c2ecf20Sopenharmony_ci unregister_filesystem(&epfs_fs_type); 368c2ecf20Sopenharmony_ci kmem_cache_destroy(epfs_inode_cachep); 378c2ecf20Sopenharmony_ci} 388c2ecf20Sopenharmony_ci 398c2ecf20Sopenharmony_cimodule_init(epfs_init) 408c2ecf20Sopenharmony_cimodule_exit(epfs_exit) 418c2ecf20Sopenharmony_ciMODULE_DESCRIPTION("Enhanced Proxy File System for OpenHarmony"); 428c2ecf20Sopenharmony_ciMODULE_AUTHOR("LongPing Wei weilongping@huawei.com"); 438c2ecf20Sopenharmony_ciMODULE_LICENSE("GPL v2"); 448c2ecf20Sopenharmony_ciMODULE_ALIAS_FS("epfs"); 45