このページを編集する際は、編集に関する方針に従ってください。

概要

  • linux2.6/fs/filesystems.cにて定義
  • 引数で渡されたローカルファイルシステムを登録する
    • 登録できた場合は0を、既に登録されていたなど登録に失敗した場合はエラーコードを返す

引数

実装

/**

*	register_filesystem - register a new filesystem
*	@fs: the file system structure
*
*	Adds the file system passed to the list of file systems the kernel
*	is aware of for mount and other syscalls. Returns 0 on success,
*	or a negative errno code on an error.
*
*	The &struct file_system_type that is passed is linked into the kernel 
*	structures and must not be freed until the file system has been
*	unregistered.
*/

int register_filesystem(struct file_system_type * fs) {

	int res = 0;
	struct file_system_type ** p;
	if (!fs)
		return -EINVAL;
	if (fs->next)
		return -EBUSY;
	INIT_LIST_HEAD(&fs->fs_supers);
	write_lock(&file_systems_lock);
	p = find_filesystem(fs->name);
  • ファイルシステム名fs->nameに該当するファイルシステムタイプオブジェクトを見つけて返す
	if (*p)
		res = -EBUSY;
	else
		*p = fs;
  • ローカルファイルシステムが見つからなかった場合は、filesystem(*p)にfsを登録する
	write_unlock(&file_systems_lock);
  • 書き込みロックfile_systems_lockを解放する
    • 詳細はwrite_unlock()/linux2.6?を参照
	return res;

}

EXPORT_SYMBOL(register_filesystem);

呼出元


履歴

  • 作者:ひら
  • 日付:2006/1/11
  • 対象:2.6.10
    更新日更新者更新内容

コメント



トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2009-11-24 (火) 07:17:44 (2919d)