5633l1 Listing 1. Telling the Kernel to Mount the Filesystem Internally static int get_mount (void) { struct vfsmount *mnt; spin_lock (&mount_lock); if (pcihpfs_mount) { mntget(pcihpfs_mount); ++pcihpfs_mount_count; spin_unlock (&mount_lock); goto go_ahead; } spin_unlock (&mount_lock); mnt = kern_mount (&pcihpfs_fs_type); if (IS_ERR(mnt)) { err ("could not mount the fs...erroring out!\n"); return -ENODEV; } spin_lock (&mount_lock); if (!pcihpfs_mount) { pcihpfs_mount = mnt; ++pcihpfs_mount_count; spin_unlock (&mount_lock); goto go_ahead; } mntget(pcihpfs_mount); ++pcihpfs_mount_count; spin_unlock (&mount_lock); mntput(mnt); go_ahead: dbg("pcihpfs_mount_count = %d\n", pcihpfs_mount_count); return 0; }