[RFC 0/5] Ext4: Add support for blocksize < pagesize for dioread_nolock

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This patch series adds the support for blocksize < pagesize for
dioread_nolock feature.

Since in case of blocksize < pagesize, we can have multiple
small buffers of page as unwritten extents, we need to
maintain a vector of these unwritten extents which needs
the conversion after the IO is complete. Thus, we maintain
a list of tuple <offset, size> pair (io_end_vec) for this &
traverse this list to do the unwritten to written conversion.

Appreciate any reviews/comments on this patches.

Tests completed
===============

All (which also passes in default config) "quick" group xfstests
are passing. Tested xfstests with below configurations.
	dioread_nolock with blocksize < pagesize
	dioread_nolock with blocksize == pagesize
	without dioread_nolock with blocksize < pagesize
	without dioread_nolock with blocksize == pagesize
ltp/fsx test with multiple iterations of 1 million ops
did not show any error.


About patches
=============

Patch 1 - 3: These are some cleanup and refactoring patches.
Patch 4: This patch adds the required support.
Patch 5: This patch removes the checks which was not allowing to mount
with dioread_nolock when blocksize != pagesize was true.

_Patches can be cleanly applied on today's linus tree master branch_

Ritesh Harjani (5):
  ext4: keep uniform naming convention for io & io_end variables
  ext4: Add API to bring in support for unwritten io_end_vec conversion
  ext4: Refactor mpage_map_and_submit_buffers function
  ext4: Add support for blocksize < pagesize in dioread_nolock
  ext4: Enable blocksize < pagesize for dioread_nolock

 fs/ext4/ext4.h    |  13 ++++-
 fs/ext4/extents.c |  49 ++++++++++++-----
 fs/ext4/inode.c   | 136 ++++++++++++++++++++++++++++++----------------
 fs/ext4/page-io.c | 110 ++++++++++++++++++++++++-------------
 fs/ext4/super.c   |  10 ----
 5 files changed, 208 insertions(+), 110 deletions(-)

-- 
2.21.0




[Index of Archives]     [Reiser Filesystem Development]     [Ceph FS]     [Kernel Newbies]     [Security]     [Netfilter]     [Bugtraq]     [Linux FS]     [Yosemite National Park]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Device Mapper]     [Linux Media]

  Powered by Linux