On Thu, 12 Jul 2007, Timo Sirainen wrote:
So still nothing usable. Updated nfstest.c once again to include fdatasync() test. It has to work.
fdatasync() isn't implemented in FreeBSD (see http://www.freebsd.org/cgi/query-pr.cgi?pr=64875). It defaults to mapping fdatasync() to fsync().
Results for FreeBSD 6.2-RELEASE-p5 and NetApp NFS server:
Info: Connected: client Info: O_EXCL works Info: Testing attribute cache.. Info: Attr cache flush fchown(-1, -1): OK Info: Attr cache flush fchown(uid, -1): OK Info: Attr cache flush fchmod(mode): OK Info: Attr cache flush chown(-1, -1): OK Info: Attr cache flush chown(uid, -1): OK Info: Attr cache flush chmod(mode): OK Info: Attr cache flush dup+close: failed Info: Testing write flushing.. Info: Write flush no caching: failed Info: Write flush fcntl(shared): failed Info: Write flush fcntl(exclusive): failed Info: Write flush flock(shared): failed Info: Write flush flock(exclusive): failed Info: Write flush reopen: OK Info: Write flush dup+close: failed Info: Write flush attr cache: failed Info: Write flush fdatasync: OK Info: Testing data cache.. Info: data cache: Reading EOF requires attribute cache flush Info: Data cache flush no caching: failed Info: Data cache flush attr cache: OK Error: fcntl(setlk, read) failed: Operation not supported Info: Data cache flush fcntl(shared): failed Error: fcntl(setlk, write) failed: Operation not supported Info: Data cache flush fcntl(exclusive): failed Info: Data cache flush flock(shared): failed Info: Data cache flush flock(exclusive): failed Info: Data cache flush dotlock: failed Info: Data cache flush dup+close: failed Info: Data cache flush fdatasync: failed
And with O_DIRECT enabled via vfs.nfs.nfs_directio_enable:
Info: Connected: client Info: O_EXCL works Info: Testing attribute cache.. Info: Attr cache flush fchown(-1, -1): OK Info: Attr cache flush fchown(uid, -1): OK Info: Attr cache flush fchmod(mode): OK Info: Attr cache flush chown(-1, -1): OK Info: Attr cache flush chown(uid, -1): OK Info: Attr cache flush chmod(mode): OK Info: Attr cache flush dup+close: failed Info: Testing write flushing.. Info: Write flush no caching: failed Info: Write flush fcntl(shared): failed Info: Write flush fcntl(exclusive): failed Info: Write flush flock(shared): failed Info: Write flush flock(exclusive): failed Info: Write flush reopen: OK Info: Write flush dup+close: failed Info: Write flush attr cache: failed Info: Write flush fdatasync: OK Info: Testing data cache.. Info: data cache: Reading EOF requires attribute cache flush Info: Data cache flush no caching: failed Info: Data cache flush attr cache: OK Error: fcntl(setlk, read) failed: Operation not supported Info: Data cache flush fcntl(shared): failed Error: fcntl(setlk, write) failed: Operation not supported Info: Data cache flush fcntl(exclusive): failed Info: Data cache flush flock(shared): failed Info: Data cache flush flock(exclusive): failed Info: Data cache flush dotlock: failed Info: Data cache flush dup+close: failed Info: Data cache flush fdatasync: failed Info: Data cache flush O_DIRECT: OK
-Doug