Orange Pi5 kernel

Deprecated Linux kernel 5.10.110 for OrangePi 5/5B/5+ boards

3 Commits   0 Branches   0 Tags
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  1) /* SPDX-License-Identifier: GPL-2.0 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  2) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  3)  *	fs/bfs/bfs.h
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  4)  *	Copyright (C) 1999-2018 Tigran Aivazian <aivazian.tigran@gmail.com>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  5)  */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  6) #ifndef _FS_BFS_BFS_H
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  7) #define _FS_BFS_BFS_H
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  8) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  9) #include <linux/bfs_fs.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) /* In theory BFS supports up to 512 inodes, numbered from 2 (for /) up to 513 inclusive.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12)    In actual fact, attempting to create the 512th inode (i.e. inode No. 513 or file No. 511)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13)    will fail with ENOSPC in bfs_add_entry(): the root directory cannot contain so many entries, counting '..'.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14)    So, mkfs.bfs(8) should really limit its -N option to 511 and not 512. For now, we just print a warning
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15)    if a filesystem is mounted with such "impossible to fill up" number of inodes */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) #define BFS_MAX_LASTI	513
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19)  * BFS file system in-core superblock info
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20)  */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) struct bfs_sb_info {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) 	unsigned long si_blocks;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) 	unsigned long si_freeb;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) 	unsigned long si_freei;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) 	unsigned long si_lf_eblk;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) 	unsigned long si_lasti;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) 	DECLARE_BITMAP(si_imap, BFS_MAX_LASTI+1);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) 	struct mutex bfs_lock;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32)  * BFS file system in-core inode info
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33)  */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) struct bfs_inode_info {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) 	unsigned long i_dsk_ino; /* inode number from the disk, can be 0 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36) 	unsigned long i_sblock;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) 	unsigned long i_eblock;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) 	struct inode vfs_inode;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41) static inline struct bfs_sb_info *BFS_SB(struct super_block *sb)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43) 	return sb->s_fs_info;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46) static inline struct bfs_inode_info *BFS_I(struct inode *inode)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48) 	return container_of(inode, struct bfs_inode_info, vfs_inode);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 50) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 51) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 52) #define printf(format, args...) \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 53) 	printk(KERN_ERR "BFS-fs: %s(): " format, __func__, ## args)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 54) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 55) /* inode.c */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 56) extern struct inode *bfs_iget(struct super_block *sb, unsigned long ino);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 57) extern void bfs_dump_imap(const char *, struct super_block *);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 58) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 59) /* file.c */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 60) extern const struct inode_operations bfs_file_inops;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 61) extern const struct file_operations bfs_file_operations;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 62) extern const struct address_space_operations bfs_aops;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 63) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 64) /* dir.c */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 65) extern const struct inode_operations bfs_dir_inops;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 66) extern const struct file_operations bfs_dir_operations;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 67) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 68) #endif /* _FS_BFS_BFS_H */