O_DIRECT

From: Peter T. Breuer (ptb@it.uc3m.es)
Date: Thu Aug 29 2002 - 06:04:56 EST


What functions does a block driver have to implement in order to
support read/write when it has been opened with O_DIRECT from user
space.

I have made some experiments with plain read/write after opening with
O_DIRECT:

2.5.31:
   /dev/ram0 open fails
   file on ext2 r/w gives EINVAL
   /dev/hdaN works

2.4.19:
   /dev/ram0 r/w gives EINVAL
   file on ext2 r/w gives EINVAL
   /dev/hdaN r/w gives EINVAL

WTF? It's not a library issue - strace shows the syscalls happening
with the right flag set on the open.

Can someone put me out of my misery? Where the heck is this implemented
in the 2.5.31 ide code? If there? There's no mention of direct_IO.
Clues?

What I ultimately want is to know what code I have to put into a block
device driver in order to support O_DIRECT on the device.

Peter
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Sat Aug 31 2002 - 22:00:26 EST