is_bad_inode()函数的作用是判断传入的参数inode是否被标记为坏节点,如果节点是坏节点则结构体struct inode的i_op字段的值为系统定义的变量bad_inode_ops的值,定义见文件linux-3.19.3/fs/bad_inode.c,如下:
static const struct inode_operations bad_inode_ops =
{
.create = bad_inode_create,
.lookup = bad_inode_lookup,
.link = bad_inode_link,
.unlink = bad_inode_unlink,
.symlink = bad_inode_symlink,
.mkdir = bad_inode_mkdir,
.rmdir = bad_inode_rmdir,
.mknod = bad_inode_mknod,
.rename2 = bad_inode_rename2,
.readlink = bad_inode_readlink,
.permission = bad_inode_permission,
.getattr = bad_inode_getattr,
.setattr = bad_inode_setattr,
.setxattr = bad_inode_setxattr,
.getxattr = bad_inode_getxattr,
.listxattr = bad_inode_listxattr,
.removexattr = bad_inode_removexattr,
};
is_bad_inode文件包含
#include <linux/fs.h>
is_bad_inode函数定义
在内核源码中的位置:linux-3.19.3/fs/bad_inode.c
函数定义格式:
int is_bad_inode(struct inode *inode)
is_bad_inode输入参数说明
inode
:输入要判断是否为坏节点的struct inode结构体变量,其定义及详细说明参考极客笔记中d_find_alias()函数的参数说明部分。
is_bad_inode返回参数说明
is_bad_inode()
函数返回值是int型整数,只有0或1两种可能。若返回值为1,则说明该节点已经被标记为坏节点,若返回值为0,则说明该节点并没有被标记为坏节点。
is_bad_inode实例解析
is_bad_inode()函数的实例解析参见极客笔记中make_bad_inode()函数的实例解析。