mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Heming Zhao <heming.zhao@suse.com>
To: joseph.qi@linux.alibaba.com, mark@fasheh.com, jlbec@evilplan.org,
	hch@lst.de
Cc: Heming Zhao <heming.zhao@suse.com>,
	ocfs2-devel@lists.linux.dev, linux-kernel@vger.kernel.org
Subject: [RFC PATCH v6 0/3] migrate ocfs2 DIO from buffer_head to iomap
Date: Sun, 15 Nov 2026 23:40:08 +0800	[thread overview]
Message-ID: <20261115154013.9379-1-heming.zhao@suse.com> (raw)

This patch set migrates ocfs2 Direct I/O (DIO) from buffer_head mode
to iomap mode. And the code base is commit 6628e7d4c6b2 (v7.4-rc1),
and also merge Joseph's code and ideas from [1]:

V5 changelog:

- Support allocating multiple clusters at once in iomap_begin.

- Use iocb as a token to detect the unwritten extent list between
  iomap_begin and end_io.

- Squash patch [3/4] and [4/4] from v5 into a single patch
  (since v5 patch [4/4] consists mostly of code deletions).

[1]:
https://gitee.com/anolis/storage-cloud-kernel/commit/ea3fe75e2060118ba093e90b1cd34fa382914b29

[2]:
https://sashiko.dev/#/patchset/20261103135605.22943-1-heming.zhao%40suse.com

v1 patch set:
https://lore.kernel.org/ocfs2-devel/20260724052559.15409-1-heming.zhao@suse.com/
v2 patch set:
https://lore.kernel.org/ocfs2-devel/20260727061802.18485-1-heming.zhao@suse.com/
v3 patch set:
https://lore.kernel.org/ocfs2-devel/20261018143319.22329-1-heming.zhao@suse.com/
v3 sashiko review:
https://sashiko.dev/#/patchset/20261018143319.22329-1-heming.zhao%40suse.com
v4 patch set:
https://lore.kernel.org/ocfs2-devel/20261103135605.22943-1-heming.zhao@suse.com/
v4 sashiko review:
https://sashiko.dev/#/patchset/20261103135605.22943-1-heming.zhao%40suse.com
v5 patch set:
https://lore.kernel.org/ocfs2-devel/20261105071930.16399-1-heming.zhao@suse.com/
v5 sashiko review:
https://sashiko.dev/#/patchset/20261105071930.16399-1-heming.zhao%40suse.com


--------------
# test report

This patch set has been tested on 7.4-rc1 kernel with the following test cases.

## ltp

runltp -f dio -d /mnt/ocfs2/

The failure test results:
(These failures are all minor issues. I'd like to check Sashiko's review
comments first before fixing them.)

diotest4    3  TFAIL  :  diotest4.c:112: read allows odd count. returns 1: Success
diotest4    4  TFAIL  :  diotest4.c:127: write allows odd count.returns 1: Success
diotest4    5  TFAIL  :  diotest4.c:179: Odd count of read and write

diotest4   16  TFAIL  :  diotest4.c:112: read allows  nonaligned buf. returns 4096: Success
diotest4   17  TFAIL  :  diotest4.c:127: write allows  nonaligned buf.returns 4096: Success
diotest4   18  TFAIL  :  diotest4.c:179: read, write with non-aligned buffer

## xfstests

./check -g quick -T -b -s ocfs2 -e generic/081 \
-e generic/266 -e generic/272 -e generic/281 \
-e generic/338 -e generic/347 -e generic/361 \
-e generic/628 -e generic/629 -e generic/648 -e generic/650 


OCFS2_MKFS_LOCAL_OPT="-b 2K -C 4K --fs-features=local --fs-feature-level=max-features"
Failures: generic/003 generic/056 generic/091 generic/094 generic/177
generic/211 generic/225 generic/263 generic/321 generic/322 generic/329
generic/331 generic/370 generic/376 generic/410 generic/424 generic/448
generic/467 generic/477 generic/481 generic/498 generic/510 generic/512
generic/513 generic/534 generic/537 generic/552 generic/557 generic/563
generic/578 generic/588 generic/607 generic/620 generic/630 generic/755
generic/760 generic/771 generic/777 generic/779 generic/784
Failed 40 of 632 tests

OCFS2_MKFS_LOCAL_OPT="-b 4K -C 4K --fs-features=local --fs-feature-level=max-features"
Failures: generic/003 generic/056 generic/177 generic/211 generic/321
generic/322 generic/329 generic/331 generic/370 generic/376 generic/420
generic/424 generic/448 generic/467 generic/477 generic/481 generic/498
generic/510 generic/512 generic/513 generic/534 generic/537 generic/552
generic/557 generic/563 generic/578 generic/588 generic/607 generic/620
generic/630 generic/755 generic/771 generic/777 generic/779 generic/784
Failed 35 of 632 tests

OCFS2_MKFS_LOCAL_OPT="-b 2K -C 8K --fs-features=local --fs-feature-level=max-features"
Failures: generic/003 generic/056 generic/070 generic/075 generic/076
generic/091 generic/094 generic/112 generic/177 generic/211 generic/225
generic/263 generic/319 generic/321 generic/322 generic/329 generic/331
generic/370 generic/376 generic/409 generic/410 generic/424 generic/448
generic/467 generic/477 generic/481 generic/498 generic/510 generic/512
generic/513 generic/534 generic/537 generic/552 generic/557 generic/563
generic/564 generic/578 generic/588 generic/607 generic/620 generic/630
generic/755 generic/759 generic/760 generic/771 generic/777 generic/779
generic/784 ocfs2/001     
Failed 49 of 632 tests

## fio on single node

The test results are similar to v5.

---------------------
Heming Zhao (3):
  ocfs2: Add new ocfs2_map_blocks() to introduce iomap feature
  ocfs2: switch DIO read path from buffer_head to iomap
  ocfs2: switch dio write path from buffer_head to iomap

 fs/ocfs2/Kconfig |    2 +-
 fs/ocfs2/aops.c  | 1532 +++++++++++++++++++++++++++++++++++-----------
 fs/ocfs2/aops.h  |   41 +-
 fs/ocfs2/file.c  |  220 ++++++-
 fs/ocfs2/mmap.c  |    2 +-
 fs/ocfs2/ocfs2.h |   25 +-
 6 files changed, 1404 insertions(+), 418 deletions(-)

-- 
2.55.0


             reply	other threads:[~2026-11-15 15:40 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-11-15 15:40 Heming Zhao [this message]
2026-11-15 15:40 ` [RFC PATCH v6 1/3] ocfs2: Add new ocfs2_map_blocks() to introduce iomap feature Heming Zhao
2026-11-15 15:40 ` [RFC PATCH v6 2/3] ocfs2: switch DIO read path from buffer_head to iomap Heming Zhao
2026-11-15 15:40 ` [RFC PATCH v6 3/3] ocfs2: switch dio write " Heming Zhao

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=20261115154013.9379-1-heming.zhao@suse.com \
    --to=heming.zhao@suse.com \
    --cc=hch@lst.de \
    --cc=jlbec@evilplan.org \
    --cc=joseph.qi@linux.alibaba.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mark@fasheh.com \
    --cc=ocfs2-devel@lists.linux.dev \
    /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

all inboxes | Powered by JetHome®