blkflush 内核服务

用途

清空指定块 (如果它在缓冲区高速缓存中)。

语法

#include <sys/types.h>
#include <sys/errno.h>
#include <sys/buf.h>
int blkflush (dev, blkno)
dev_t dev; 
daddr_t blkno;

参数

描述
dev 指定包含要清空的块的设备。
布尔克诺 指定要清空的块。

描述

Blkflush 内核服务将检查指定的缓冲区是否位于缓冲区高速缓存中。 如果此缓冲区不在高速缓存中,那么 Blkflush 服务将 0 值 0。 如果该缓冲区在高速缓存中,但处于繁忙状态,那么 Blkflush 服务会调用 睡眠 服务以等待该缓冲区不再使用。 在唤醒时, Blkflush 服务会再次尝试访问缓冲区。

如果缓冲区在高速缓存中并且不是繁忙的,而是脏的,那么会将其从空闲列表中除去。 然后将缓冲区标记为 "繁忙" 并同步写入设备。 如果缓冲区位于高速缓存中,并且既不繁忙也不脏 (即,缓冲区已干净,因此不需要清空) ,那么 Blkflush 服务将返回值 0。

执行环境

Blkflush 内核服务只能从进程环境中进行调用。

返回值

描述
第 1 年 指示已成功清空该块。
重大安全事件数量 指示未清空该块。 指定的缓冲区不在缓冲区高速缓存中或在缓冲区高速缓存中,但既不忙也不脏。