summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--xlators/performance/io-cache/src/io-cache.c5
-rw-r--r--xlators/performance/io-cache/src/io-cache.h1
2 files changed, 6 insertions, 0 deletions
diff --git a/xlators/performance/io-cache/src/io-cache.c b/xlators/performance/io-cache/src/io-cache.c
index e4ca446cf5b..211f47ece8a 100644
--- a/xlators/performance/io-cache/src/io-cache.c
+++ b/xlators/performance/io-cache/src/io-cache.c
@@ -555,6 +555,11 @@ ioc_open_cbk (call_frame_t *frame, void *cookie, xlator_t *this, int32_t op_ret,
fd_ctx_set (fd, this, 1);
}
+ if ((local->wbflags & GF_OPEN_NOWB) != 0) {
+ /* disable caching as asked by NFS */
+ fd_ctx_set (fd, this, 1);
+ }
+
/* weight = 0, we disable caching on it */
if (weight == 0) {
/* we allow a pattern-matched cache disable this way
diff --git a/xlators/performance/io-cache/src/io-cache.h b/xlators/performance/io-cache/src/io-cache.h
index 0b164efe4f4..d01344fef99 100644
--- a/xlators/performance/io-cache/src/io-cache.h
+++ b/xlators/performance/io-cache/src/io-cache.h
@@ -84,6 +84,7 @@ struct ioc_fill {
struct ioc_local {
mode_t mode;
int32_t flags;
+ int32_t wbflags;
loc_t file_loc;
off_t offset;
size_t size;