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 20struct epfs_inode_info { 21 struct inode vfs_inode; 22 struct file *origin_file; 23 struct epfs_range *range; 24 struct mutex lock; 25}; 26 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 32struct inode *epfs_iget(struct super_block *sb, bool is_dir); 33extern const struct dentry_operations epfs_dops; 34extern const struct file_operations epfs_dir_fops; 35extern const struct file_operations epfs_file_fops; 36extern struct file_system_type epfs_fs_type; 37extern struct kmem_cache *epfs_inode_cachep; 38 39#endif // __FS_EPFS_INTERNAL_H__ 40