Linux内核API is_bad_inode

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()函数的实例解析。

赞(0)
未经允许不得转载:极客笔记 » Linux内核API is_bad_inode
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址