bdflush(2) - wariua/manpages-ko GitHub Wiki
bdflush - λ²νΌ λ³κ²½ κΈ°λ‘ λ°λͺ¬μ μμνκ³ , κΈ°λ‘μν€κ³ , μ‘°μ νκΈ°
#include <sys/kdaemon.h>
int bdflush(int func, long *address);
int bdflush(int func, long data);
μ£Όμ: μ΄ μμ€ν
νΈμΆμ 리λ
μ€ 2.6λΆν° μ κ±° μμ μΌλ‘ νμλμμΌλ©° μ무κ²λ νμ§ μλλ€. ν₯ν 컀λ 릴리μ€μμ μμ ν μ¬λΌμ§ κ² κ°λ€. bdflush()
κ° μννλ μμ
μ μμ¦μ 컀λ μ€λ λ pdflush
κ° λ§‘κ³ μλ€.
bdflush()
λ λ²νΌ λ³κ²½ κΈ°λ‘(buffer-dirty-flush) λ°λͺ¬μ μμνκ³ , κΈ°λ‘μν€κ³ , μ‘°μ νλ€. νΉκΆμ΄ μλ (CAP_SYS_ADMIN
μλ₯μ΄ μλ) νλ‘μΈμ€λ§ bdflush()
λ₯Ό νΈμΆν μ μλ€.
func
κ° μμμ΄κ±°λ 0μ΄κ³ λ°λͺ¬μ μμ§ μμνμ§ μμμΌλ©΄ bdflush()
κ° λ°λͺ¬ μ½λλ‘ μ§μ
νκ³ μ λ λ°ννμ§ μλλ€.
func
κ° 1μ΄λ©΄ λ³κ²½λ λ²νΌλ€ μΌλΆλ₯Ό λμ€ν¬λ‘ κΈ°λ‘νλ€.
func
κ° 2 μ΄μμ΄κ³ μ§μ(νμ λΉνΈκ° 0)μ΄λ©΄ address
κ° long
μλμ μ£Όμμ΄κ³ κ·Έ μ£Όμλ₯Ό ν΅ν΄ (func-2)/2
λ² νλ λ§€κ°λ³μλ₯Ό νΈμΆμμκ² λ°ννλ€.
func
κ° 3 μ΄μμ΄κ³ νμ(νμ λΉνΈκ° 1)μ΄λ©΄ data
κ° long
μλμ΄κ³ κ·Έ κ°μ (func-3)/2
λ² νλ λ§€κ°λ³μμ μ€μ νλ€.
λ§€κ°λ³μλ€κ³Ό κ·Έ κ°λ€, μ ν¨ λ²μκ° λ¦¬λ
μ€ μ»€λ μμ€ νμΌ fs/buffer.c
μ μ μλΌ μλ€.
func
κ° μμμ΄κ±°λ 0μ΄κ³ λ°λͺ¬μ΄ μ±κ³΅μ μΌλ‘ μμνλ κ²½μ° bdflush()
κ° μ λ λ°ννμ§ μλλ€. κ·Έ μΈ κ²½μ°μ, μ±κ³΅ μμλ λ°ν κ°μ΄ 0μ΄λ©° μ€λ₯ μμλ -1μ΄κ³ μ€λ₯λ₯Ό λνλ΄λλ‘ errno
λ₯Ό μ€μ νλ€.
EBUSY
- λ€λ₯Έ νλ‘μΈμ€μμ μ΄λ―Έ μ§μ ν νμ λ°λͺ¬ μ½λμ μ§μ νλ €κ³ μλνμλ€.
EFAULT
-
address
κ° μ κ·Ό κ°λ₯ν μ£Όμ κ³΅κ° λ°μ κ°λ¦¬ν¨λ€. EINVAL
- μ ν¨νμ§ μμ λ§€κ°λ³μ λ²νΈμ μ½κ±°λ μ°λ €κ³ μλνκ±°λ, λ§€κ°λ³μμ μ ν¨νμ§ μμ κ°μ μ°λ €κ³ μλνλ€.
EPERM
- νΈμΆμμκ²
CAP_SYS_ADMIN
μλ₯μ΄ μλ€.
glibc λ²μ 2.23λΆν° μ΄ κ΅¬μ μμ€ν νΈμΆμ λ μ΄μ μ§μνμ§ μλλ€.
bdflush()
λ 리λ
μ€ μ μ©μ΄λ―λ‘ μ΄μμ±μ΄ μμ΄μΌ νλ νλ‘κ·Έλ¨μμλ μ¬μ©νμ§ λ§μμΌ νλ€.
2016-10-08