cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

bfs.h (2003B)


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