bad_inode.c

来自「elinux jffs初始版本 具体了解JFFS的文件系统!」· C语言 代码 · 共 81 行

C
81
字号
/* *  linux/fs/bad_inode.c * *  Copyright (C) 1997, Stephen Tweedie * *  Provide stub functions for unreadable inodes */#include <linux/fs.h>#include <linux/stat.h>#include <linux/sched.h>static int return_EIO(void){	return -EIO;}#define EIO_ERROR ((void *) (return_EIO))static struct file_operations bad_file_ops ={	EIO_ERROR,		/* lseek */	EIO_ERROR,		/* read */	EIO_ERROR,		/* write */	EIO_ERROR,		/* readdir */	EIO_ERROR,		/* select */	EIO_ERROR,		/* ioctl */	EIO_ERROR,		/* mmap */	EIO_ERROR,		/* open */	EIO_ERROR,		/* release */	EIO_ERROR,		/* fsync */	EIO_ERROR,		/* fasync */	EIO_ERROR,		/* check_media_change */	EIO_ERROR		/* revalidate */#ifdef MAGIC_ROM_PTR	,EIO_ERROR		/* romptr */#endif};static struct inode_operations bad_inode_ops ={	&bad_file_ops,		/* default file operations */	EIO_ERROR,		/* create */	EIO_ERROR,		/* lookup */	EIO_ERROR,		/* link */	EIO_ERROR,		/* unlink */	EIO_ERROR,		/* symlink */	EIO_ERROR,		/* mkdir */	EIO_ERROR,		/* rmdir */	EIO_ERROR,		/* mknod */	EIO_ERROR,		/* rename */	EIO_ERROR,		/* readlink */	EIO_ERROR,		/* follow_link */	EIO_ERROR,		/* readpage */	EIO_ERROR,		/* writepage */	EIO_ERROR,		/* bmap */	EIO_ERROR,		/* truncate */	EIO_ERROR,		/* permission */	EIO_ERROR		/* smap */};/*  * When a filesystem is unable to read an inode due to an I/O error in * its read_inode() function, it can call make_bad_inode() to return a * set of stubs which will return EIO errors as required.  * * We only need to do limited initialisation: all other fields are * preinitialised to zero automatically. */void make_bad_inode(struct inode * inode) {	inode->i_mode = S_IFREG;	inode->i_flags = S_BAD_INODE;	inode->i_atime = CURRENT_TIME;	inode->i_mtime = CURRENT_TIME;	inode->i_ctime = CURRENT_TIME;	inode->i_op = &bad_inode_ops;	}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?