内核中register_filesystem函数
struct file_system_type ** p;
p = find_filesystem(fs->name, strlen(fs->name));
返回的是最后一个节点的next指针的地址
if (*p) *p存在说明不是最后一个节点。
res = -EBUSY;
else
*p = fs;
直接修改该next指针的指向为新加的文件系统类型。
static struct file_system_type **find_filesystem(const char *name, unsigned len)
{
struct file_system_type **p;
for (p=&file_systems; *p; p=&(*p)->next)
if (strlen((*p)->name) == len &&
strncmp((*p)->name, name, len) == 0)
break;
return p;
}