函数源码

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source File:init\initramfs.c Create Date:2022-07-27 15:16:36
首页 Copyright©Brick

62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
static char __init *find_link(int major, int minor, int ino,
                  umode_t mode, char *name)
{
    struct hash **p, *q;
    for (p = head + hash(major, minor, ino); *p; p = &(*p)->next) {
        if ((*p)->ino != ino)
            continue;
        if ((*p)->minor != minor)
            continue;
        if ((*p)->major != major)
            continue;
        if (((*p)->mode ^ mode) & S_IFMT)
            continue;
        return (*p)->name;
    }
    q = kmalloc(sizeof(struct hash), GFP_KERNEL);
    if (!q)
        panic("can't allocate link hash entry");
    q->major = major;
    q->minor = minor;
    q->ino = ino;
    q->mode = mode;
    strcpy(q->name, name);
    q->next = NULL;
    *p = q;
    return NULL;
}