1 /* SPDX-License-Identifier: GPL-2.0 */ 2 /* 3 * fs/epfs/internal.h 4 * 5 * Copyright (c) 2022 Huawei Technologies Co., Ltd. 6 * Author: weilongping@huawei.com 7 * Create: 2022-06-10 8 */ 9 #ifndef __FS_EPFS_INTERNAL_H__ 10 #define __FS_EPFS_INTERNAL_H__ 11 12 #include <linux/fs.h> 13 #include <linux/mutex.h> 14 #include <stdbool.h> 15 16 #include "epfs.h" 17 18 #define EPFS_SUPER_MAGIC 0x20220607 19 20 struct epfs_inode_info { 21 struct inode vfs_inode; 22 struct file *origin_file; 23 struct epfs_range *range; 24 struct mutex lock; 25 }; 26 epfs_inode_to_private(struct inode * inode)27static inline struct epfs_inode_info *epfs_inode_to_private(struct inode *inode) 28 { 29 return container_of(inode, struct epfs_inode_info, vfs_inode); 30 } 31 32 struct inode *epfs_iget(struct super_block *sb, bool is_dir); 33 extern const struct dentry_operations epfs_dops; 34 extern const struct file_operations epfs_dir_fops; 35 extern const struct file_operations epfs_file_fops; 36 extern struct file_system_type epfs_fs_type; 37 extern struct kmem_cache *epfs_inode_cachep; 38 39 #endif // __FS_EPFS_INTERNAL_H__ 40