xref: /kernel/linux/linux-5.10/fs/epfs/internal.h (revision 8c2ecf20)
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