From: Ryan Ding <ryan.ding@oracle.com>
To: ocfs2-devel@oss.oracle.com
Subject: [Ocfs2-devel] [PATCH 0/8] ocfs2: fix ocfs2 direct io code patch to support sparse file and data ordering semantics
Date: Fri, 11 Sep 2015 16:19:11 +0800 [thread overview]
Message-ID: <1441959559-29947-1-git-send-email-ryan.ding@oracle.com> (raw)
The idea is to use buffer io(more precisely use the interface
ocfs2_write_begin_nolock & ocfs2_write_end_nolock) to do the zero work beyond
block size. And clear UNWRITTEN flag until direct io data has been written to
disk, which can prevent data corruption when system crashed during direct write.
And we will also archive a better performance:
eg. dd direct write new file with block size 4KB:
before this patch:
2.5 MB/s
after this patch:
66.4 MB/s
----------------------------------------------------------------
Ryan Ding (8):
ocfs2: add ocfs2_write_type_t type to identify the caller of write
ocfs2: use c_new to indicate newly allocated extents
ocfs2: test target page before change it
ocfs2: do not change i_size in write_end for direct io
ocfs2: return the physical address in ocfs2_write_cluster
ocfs2: record UNWRITTEN extents when populate write desc
ocfs2: fix sparse file & data ordering issue in direct io.
ocfs2: code clean up for direct io
fs/ocfs2/aops.c | 1118 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------------------------------------------------------------------------------------
fs/ocfs2/aops.h | 11 +-
fs/ocfs2/file.c | 138 +---------------------
fs/ocfs2/inode.c | 3 +
fs/ocfs2/inode.h | 3 +
fs/ocfs2/mmap.c | 4 +-
fs/ocfs2/ocfs2_trace.h | 16 +--
fs/ocfs2/super.c | 1 +
8 files changed, 568 insertions(+), 726 deletions(-)
next reply other threads:[~2015-09-11 8:19 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-09-11 8:19 Ryan Ding [this message]
2015-09-11 8:19 ` [Ocfs2-devel] [PATCH 1/8] ocfs2: add ocfs2_write_type_t type to identify the caller of write Ryan Ding
2015-09-11 8:19 ` [Ocfs2-devel] [PATCH 2/8] ocfs2: use c_new to indicate newly allocated extents Ryan Ding
2015-09-11 8:19 ` [Ocfs2-devel] [PATCH 3/8] ocfs2: test target page before change it Ryan Ding
2015-09-11 8:19 ` [Ocfs2-devel] [PATCH 4/8] ocfs2: do not change i_size in write_end for direct io Ryan Ding
2015-09-11 8:19 ` [Ocfs2-devel] [PATCH 5/8] ocfs2: return the physical address in ocfs2_write_cluster Ryan Ding
2015-09-11 8:19 ` [Ocfs2-devel] [PATCH 6/8] ocfs2: record UNWRITTEN extents when populate write desc Ryan Ding
2015-09-11 8:19 ` [Ocfs2-devel] [PATCH 7/8] ocfs2: fix sparse file & data ordering issue in direct io Ryan Ding
2015-09-11 8:19 ` [Ocfs2-devel] [PATCH 8/8] ocfs2: code clean up for " Ryan Ding
2015-09-28 10:20 ` [Ocfs2-devel] [PATCH 0/8] ocfs2: fix ocfs2 direct io code patch to support sparse file and data ordering semantics Joseph Qi
2015-10-08 3:12 ` Ryan Ding
2015-10-08 6:13 ` Joseph Qi
2015-10-08 7:13 ` Ryan Ding
2015-10-12 6:34 ` Ryan Ding
2015-12-10 7:54 ` Joseph Qi
2015-12-10 8:48 ` Ryan Ding
2015-12-10 10:36 ` Joseph Qi
2015-12-14 5:31 ` Ryan Ding
2015-12-14 10:36 ` Joseph Qi
2015-12-16 1:39 ` Ryan Ding
2015-12-16 2:26 ` Joseph Qi
2015-12-16 3:12 ` Ryan Ding
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1441959559-29947-1-git-send-email-ryan.ding@oracle.com \
--to=ryan.ding@oracle.com \
--cc=ocfs2-devel@oss.oracle.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox