Manpages

名 前

bdflush − バ ッ フ ァ ー ダ ー テ ィ ー フ ラ ッ シ ュ デ ー モ ン を 起 動 、 フ ラ ッ シ ュ 、 調 整 す る

書 式

#include <sys/kdaemon.h>

int bdflush(int func, long *address);
int bdflush(int
func, long data);

説 明

注 意 : Linux 2.6 以 降 で は 、 こ の シ ス テ ム コ ー ル は 非 推 奨 で あ り 、 何 も 行 わ な い 。 将 来 の カ ー ネ ル の リ リ ー ス で 完 全 に な く な る 可 能 性 が 高 い 。 現 在 は 、 bdflush() が 実 行 し て い た 処 理 は カ ー ネ ル の pdflush ス レ ッ ド に よ っ て 行 わ れ て い る 。

bdflush() は バ ッ フ ァ ー ダ ー テ ィ ー フ ラ ッ シ ュ (buffer−dirty−flush) デ ー モ ン (daemon) を 起 動 、 フ ラ ッ シ ュ (flush)、 調 整 (tune) す る 。 (CAP_SYS_ADMIN ケ ー パ ビ リ テ ィ (capability) を 持 つ ) 特 権 プ ロ セ ス の み が bdflush() を 呼 び 出 す こ と が で き る 。

func が 負 か 0 で デ ー モ ン が 起 動 さ れ て い な れ ば 、 bdflush() は デ ー モ ン の コ ー ド へ 入 り 、 戻 っ て こ な い 。

func が 1 な ら ば 、 汚 れ た (dirty) バ ッ フ ァ ー が デ ィ ス ク へ と 書 き 込 ま れ る 。

func が 2 以 上 で 偶 数 (最 小 ビ ッ ト が 0) な ら ば 、 address に ロ ン グ ワ ー ド で ア ド レ ス を 指 定 し 、 そ の ア ド レ ス に (func−2)/2 で 指 定 さ れ た 調 節 パ ラ メ ー タ ー が 返 さ れ る 。

func が 3 以 上 で 奇 数 (最 小 ビ ッ ト が 1) な ら ば 、 data を ロ ン グ ワ ー ド で 指 定 し 、 そ の 値 を (func−3)/2 で 指 定 さ れ た 調 節 パ ラ メ ー タ ー に 設 定 す る 。 パ ラ メ ー タ ー の 集 合 や そ の 値 、 有 効 な 範 囲 は Linux カ ー ネ ル ソ ー ス の fs/buffer.c に 定 義 さ れ て い る 。

返 り 値

func が 負 か 0 で 、 デ モ ー ン の 起 動 に 成 功 し た 場 合 は bdflush() は 返 っ て こ な い 。 そ う で な け れ ば 成 功 し た 場 合 に は 0 が 返 さ れ る 。 失 敗 し た 場 合 に は −1 が 返 さ れ 、 errno に そ の エ ラ ー が 指 示 さ れ る 。

エ ラ ー

EBUSY 他 の プ ロ セ ス が 既 に デ ー モ ン コ ー ド に 入 っ て い る の に 、 入 ろ う と 試 み た 。

EFAULT

address が ア ク セ ス 可 能 な ア ド レ ス 空 間 の 外 部 を 指 し て い る 。

EINVAL 不 正 な パ ラ メ ー タ ー の 読 み 書 き を 試 み た か 、 パ ラ メ ー タ ー へ 不 正 な 値 を 書 き 込 も う と し た 。

EPERM 呼 び 出 し 元 に

CAP_SYS_ADMIN ケ ー パ ビ リ テ ィ が な い 。

準 拠

bdflush() は Linux 特 有 で あ り 移 植 を 意 図 し た プ ロ グ ラ ム で 使 用 す べ き で は な い 。

関 連 項 目

fsync(2), sync(2), sync(1)

こ の 文 書 に つ い て

こ の man ペ ー ジ は Linux man−pages プ ロ ジ ェ ク ト の リ リ ー ス 3.79 の 一 部 で あ る 。 プ ロ ジ ェ ク ト の 説 明 と バ グ 報 告 に 関 す る 情 報 は http://www.kernel.org/doc/man−pages/ に 書 か れ て い る 。