NFS: In 2.4, NFS O_DIRECT used the VFS's O_DIRECT logic to provide
direct I/O support for NFS files. The 2.4 VFS O_DIRECT logic was block based, thus the NFS client had to provide a minimum allowable blocksize for O_DIRECT reads and writes on NFS files. For various reasons we chose 512 bytes. In 2.6, there is no requirement for a minimum blocksize. NFS O_DIRECT reads and writes can go to any byte at any offset in a file. Thus we revert the blocksize setting for NFS file systems to the previous behavior, which was to advertise the "wsize" setting as the optimal I/O block size. This improves the performance of applications like 'cp' which use this value as their transfer size. This patch also exposes the server's reported disk block size in the f_frsize of the vfsstat structure. Signed-off-by: Chuck Lever <cel@netapp.com> Signed-off-by: Trond Myklebust <trond.myklebust@fys.uio.no>
Showing
Please register or sign in to comment