summaryrefslogtreecommitdiffstats
path: root/sys/nfsclient/nfsnode.h
diff options
context:
space:
mode:
authormohans <mohans@FreeBSD.org>2006-04-06 01:20:30 +0000
committermohans <mohans@FreeBSD.org>2006-04-06 01:20:30 +0000
commit8a6c02da7df4358036aa25e6bfdff3041be47c60 (patch)
treeaf911ea1d219da3c9fd65d8c880efbd0492f2c3c /sys/nfsclient/nfsnode.h
parent4170173ab06311a95b74ad80577722e0588e097e (diff)
downloadFreeBSD-src-8a6c02da7df4358036aa25e6bfdff3041be47c60.zip
FreeBSD-src-8a6c02da7df4358036aa25e6bfdff3041be47c60.tar.gz
Keep track of the number of in-progress async direct IO writes in the nfsnode.
Make fsync/close wait until all of these drain. Add a check to nfs_getpage() and nfs_putpage().
Diffstat (limited to 'sys/nfsclient/nfsnode.h')
-rw-r--r--sys/nfsclient/nfsnode.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/sys/nfsclient/nfsnode.h b/sys/nfsclient/nfsnode.h
index 0c5817f..a0a2a88 100644
--- a/sys/nfsclient/nfsnode.h
+++ b/sys/nfsclient/nfsnode.h
@@ -126,6 +126,7 @@ struct nfsnode {
uint32_t n_namelen;
daddr_t ra_expect_lbn;
int n_directio_opens;
+ int n_directio_asyncwr;
};
#define n_atim n_un1.nf_atim
@@ -149,6 +150,8 @@ struct nfsnode {
#define NTRUNCATE 0x1000 /* Opened by nfs_setattr() */
#define NSIZECHANGED 0x2000 /* File size has changed: need cache inval */
#define NNONCACHE 0x4000 /* Node marked as noncacheable */
+#define NFSYNCWAIT 0x8000 /* fsync waiting for all directio async writes
+ to drain */
/*
* Convert between nfsnode pointers and vnode pointers
OpenPOWER on IntegriCloud