From mboxrd@z Thu Jan 1 00:00:00 1970 From: piaojun Message-ID: <5D53D882.5090803@huawei.com> Date: Wed, 14 Aug 2019 17:46:42 +0800 MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Subject: [Virtio-fs] [PATCH][RFC] viriofsd: do not fall back to buffer io when cache=auto List-Id: Development discussions about virtio-fs List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: virtio-fs@redhat.com Direct io flags will be tured off even if cache=auto, which seems a little bit strange. It's better to keep the open flags set by user. If I missed the discussion about this issue, please let me know, thanks. Signed-off-by: Jun Piao --- contrib/virtiofsd/passthrough_ll.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/contrib/virtiofsd/passthrough_ll.c b/contrib/virtiofsd/passthrough_ll.c index 321bbb2..a080f0d 100644 --- a/contrib/virtiofsd/passthrough_ll.c +++ b/contrib/virtiofsd/passthrough_ll.c @@ -1687,6 +1687,8 @@ static void lo_create(fuse_req_t req, fuse_ino_t parent, const char *name, fi->direct_io = 1; else if (lo->cache == CACHE_ALWAYS) fi->keep_cache = 1; + else + fi->direct_io = !!(fi->flags & O_DIRECT); out: lo_inode_put(lo, &parent_inode); @@ -1899,6 +1901,8 @@ static void lo_open(fuse_req_t req, fuse_ino_t ino, struct fuse_file_info *fi) fi->direct_io = 1; else if (lo->cache == CACHE_ALWAYS) fi->keep_cache = 1; + else + fi->direct_io = !!(fi->flags & O_DIRECT); fuse_reply_open(req, fi); } --