[00/17] nilfs2: Folio conversions for directory paths

Message ID 20231127143036.2425-1-konishi.ryusuke@gmail.com
Headers
Series nilfs2: Folio conversions for directory paths |

Message

Ryusuke Konishi Nov. 27, 2023, 2:30 p.m. UTC
  Hi Andrew,

please add this series to your queue for the next merge window.

This series applies page->folio conversions to nilfs2 directory
operations.  This reduces hidden compound_head() calls and also
converts deprecated kmap calls to kmap_local in the directory code.

Although nilfs2 does not yet support large folios, Matthew has done
his best here to include support for large folios, which will be
needed for devices with large block sizes.

This series corresponds to the second half of the original post [1],
but with two complementary patches inserted at the beginning and some
adjustments, to prevent a kmap_local constraint violation found during
testing with highmem mapping.

[1] https://lkml.kernel.org/r/20231106173903.1734114-1-willy@infradead.org

I have reviewed all changes and tested this for regular and small
block sizes, both on machines with and without highmem mapping.  No
issues found.


Thanks,
Ryusuke Konishi


Matthew Wilcox (Oracle) (15):
  nilfs2: Remove page_address() from nilfs_set_link
  nilfs2: Remove page_address() from nilfs_add_link
  nilfs2: Remove page_address() from nilfs_delete_entry
  nilfs2: Return the mapped address from nilfs_get_page()
  nilfs2: Pass the mapped address to nilfs_check_page()
  nilfs2: Switch to kmap_local for directory handling
  nilfs2: Add nilfs_get_folio()
  nilfs2: Convert nilfs_readdir to use a folio
  nilfs2: Convert nilfs_find_entry to use a folio
  nilfs2: Convert nilfs_rename() to use folios
  nilfs2: Convert nilfs_add_link() to use a folio
  nilfs2: Convert nilfs_empty_dir() to use a folio
  nilfs2: Convert nilfs_make_empty() to use a folio
  nilfs2: Convert nilfs_prepare_chunk() and nilfs_commit_chunk() to
    folios
  nilfs2: Convert nilfs_page_bug() to nilfs_folio_bug()

Ryusuke Konishi (2):
  nilfs2: move page release outside of nilfs_delete_entry and
    nilfs_set_link
  nilfs2: eliminate staggered calls to kunmap in nilfs_rename

 fs/nilfs2/btnode.c |   4 +-
 fs/nilfs2/dir.c    | 244 +++++++++++++++++++++------------------------
 fs/nilfs2/namei.c  |  38 +++----
 fs/nilfs2/nilfs.h  |  20 ++--
 fs/nilfs2/page.c   |  25 ++---
 fs/nilfs2/page.h   |   6 +-
 6 files changed, 159 insertions(+), 178 deletions(-)