]> git.baikalelectronics.ru Git - kernel.git/commit
orangefs: avoid fsync service operation on flush
authorMartin Brandenburg <martin@omnibond.com>
Mon, 26 Mar 2018 18:58:11 +0000 (18:58 +0000)
committerMike Marshall <hubcap@omnibond.com>
Fri, 3 May 2019 18:32:38 +0000 (14:32 -0400)
commit4dd11a9c746c0fdae67355308944f3ccc88a4870
tree00cede9b9344af70e09ba43235598cced47027dd
parentecb017566ef7df7266eef6d8964f1bff57456841
orangefs: avoid fsync service operation on flush

Without this, an fsync call is sent to the server even if no data
changed.  This resulted in a rather severe (50%) performance regression
under certain metadata-heavy workloads.

In the past, everything was direct IO.  Nothing happend on a close call.
An explicit fsync call would send an fsync request to the server which
in turn fsynced the underlying file.

Now there are cached writes.  Then fsync began writing out dirty pages
in addition to making an fsync request to the server, and close began
calling fsync.

With this commit, close only writes out dirty pages, and does not make
the fsync request.

Signed-off-by: Martin Brandenburg <martin@omnibond.com>
Signed-off-by: Mike Marshall <hubcap@omnibond.com>
fs/orangefs/file.c