ファイルが O_DIRECT フラグを指定してオープンされているか確認する方法

Kernel 2.6.22 以降だと /proc/$pid/fdinfo/$fd で確認できるんですね。

[yazekats@yazekats-linux ~]$ touch test.dat
[yazekats@yazekats-linux ~]$ perl -e 'sysopen($FH, "./test.dat", O_WRONLY | O_TRUNC | O_CREAT | O_ASYNC | O_DIRECT, 0666);sleep' &
[4] 20855
[yazekats@yazekats-linux ~]$ lsof -p 20855
COMMAND   PID     USER   FD   TYPE DEVICE SIZE/OFF     NODE NAME
perl    20855 yazekats  cwd    DIR  252,3     4096 20447233 /home/yazekats
perl    20855 yazekats  rtd    DIR  252,1     4096        2 /
perl    20855 yazekats  txt    REG  252,1    13200  2903275 /usr/bin/perl
perl    20855 yazekats  mem    REG  252,1   156872  1967400 /lib64/ld-2.12.so
perl    20855 yazekats  mem    REG  252,1  1922152  1967401 /lib64/libc-2.12.so
perl    20855 yazekats  mem    REG  252,1    22536  1967407 /lib64/libdl-2.12.so
perl    20855 yazekats  mem    REG  252,1   145720  1967402 /lib64/libpthread-2.12.so
perl    20855 yazekats  mem    REG  252,1   598680  1967413 /lib64/libm-2.12.so
perl    20855 yazekats  mem    REG  252,1  1488544  3163718 /usr/lib64/perl5/CORE/libperl.so
perl    20855 yazekats  mem    REG  252,1   113952  1967409 /lib64/libresolv-2.12.so
perl    20855 yazekats  mem    REG  252,1    43392  1967427 /lib64/libcrypt-2.12.so
perl    20855 yazekats  mem    REG  252,1   386040  1967426 /lib64/libfreebl3.so
perl    20855 yazekats  mem    REG  252,1    17520  1967412 /lib64/libutil-2.12.so
perl    20855 yazekats  mem    REG  252,1   116368  1967440 /lib64/libnsl-2.12.so
perl    20855 yazekats  mem    REG  252,1 99158576  2884365 /usr/lib/locale/locale-archive
perl    20855 yazekats    0u   CHR  136,0      0t0        3 /dev/pts/0
perl    20855 yazekats    1u   CHR  136,0      0t0        3 /dev/pts/0
perl    20855 yazekats    2u   CHR  136,0      0t0        3 /dev/pts/0
perl    20855 yazekats    3r   REG  252,3        0 20451124 /home/yazekats/test.dat
perl    20855 yazekats   12r  FIFO    0,8      0t0   214872 pipe
perl    20855 yazekats   13w  FIFO    0,8      0t0   214872 pipe
[yazekats@yazekats-linux ~]$ cat /proc/20855/fdinfo/3
pos:    0
flags:  02100000