All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v6 0/7] btrfs: remove buffer heads form superblock handling
@ 2020-02-10 18:32 Johannes Thumshirn
  2020-02-10 18:32 ` [PATCH v6 1/7] btrfs: Export btrfs_release_disk_super Johannes Thumshirn
                   ` (6 more replies)
  0 siblings, 7 replies; 10+ messages in thread
From: Johannes Thumshirn @ 2020-02-10 18:32 UTC (permalink / raw)
  To: David Sterba
  Cc: Nikolay Borisov, Josef Bacik, linux-btrfs @ vger . kernel . org,
	Christoph Hellwig, Johannes Thumshirn

This patch series removes the use of buffer_heads from btrfs' super block read
and write paths. It also converts the integrity-checking code to only work
with pages and BIOs.

Compared to buffer heads, this gives us a leaner call path, as the
buffer_head code wraps around getting pages from the page-cache and adding
them to BIOs to submit.

Patches one and two are preparatory patches, the first one exports
btrfs_release_disk_super() as a commomn helper to release pages containig a
super block, the second removes the kmap() calls from block device mappings as
suggested by Christoph.

The third patch removes buffer_heads from superblock reading. The forth
removes it from super_block writing and the subsequent patches remove the
buffer_heads from the integrity check code.

Due to a rebase error patch #3 of v5 got merged into the patch removing the
BHs form super-block reading, but in the end it isn't too bad this way either.

It's based on misc-next from Monday February 11
(23ba1a90f0571d91b55bdfef7f06f380a74e8475), and doesn't show any regressions
in xfstests to the baseline.

Changes to v5:
- Rebase to newer misc-next
- Merge old patches 2 and 3
- Remove kmap()s of pages from block devices (both in new code as well as
  existing code)

Changes to v4:
- Ressurected Nikolay's patch exporting btrfs_release_disk_super()
- Incroporated feedback from Christoph

Changes to v3:
- Incroporated feedback from Christoph

Changes to v2:
- Removed patch #1 again
- Added Reviews from Josef
- Re-visited page locking, but not changes, it retains the same locking scheme
  the buffer_heads had
- Incroptorated comments from David regarding open-coding functions
- For more details see the idividual patches.

Changes to v1:
- Added patch #1
- Converted sb reading and integrity checking to use the page cache
- Added rationale behind the conversion to the commit messages.
- For more details see the idividual patches.


Johannes Thumshirn (6):
  btrfs: don't kmap() pages from block devices
  btrfs: use the page-cache for super block reading
  btrfs: use BIOs instead of buffer_heads from superblock writeout
  btrfs: remove btrfsic_submit_bh()
  btrfs: remove buffer_heads from btrfsic_process_written_block()
  btrfs: remove buffer_heads form superblock mirror integrity checking

Nikolay Borisov (1):
  btrfs: Export btrfs_release_disk_super

 fs/btrfs/check-integrity.c | 215 +++++++++++--------------------------
 fs/btrfs/check-integrity.h |   2 -
 fs/btrfs/disk-io.c         | 191 ++++++++++++++++----------------
 fs/btrfs/disk-io.h         |   6 +-
 fs/btrfs/volumes.c         |  64 +++++------
 fs/btrfs/volumes.h         |   3 +-
 6 files changed, 195 insertions(+), 286 deletions(-)

-- 
2.24.1


^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2020-02-11 19:03 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-02-10 18:32 [PATCH v6 0/7] btrfs: remove buffer heads form superblock handling Johannes Thumshirn
2020-02-10 18:32 ` [PATCH v6 1/7] btrfs: Export btrfs_release_disk_super Johannes Thumshirn
2020-02-10 18:32 ` [PATCH v6 2/7] btrfs: don't kmap() pages from block devices Johannes Thumshirn
2020-02-10 18:32 ` [PATCH v6 3/7] btrfs: use the page-cache for super block reading Johannes Thumshirn
2020-02-11 18:53   ` David Sterba
2020-02-11 19:03     ` Johannes Thumshirn
2020-02-10 18:32 ` [PATCH v6 4/7] btrfs: use BIOs instead of buffer_heads from superblock writeout Johannes Thumshirn
2020-02-10 18:32 ` [PATCH v6 5/7] btrfs: remove btrfsic_submit_bh() Johannes Thumshirn
2020-02-10 18:32 ` [PATCH v6 6/7] btrfs: remove buffer_heads from btrfsic_process_written_block() Johannes Thumshirn
2020-02-10 18:32 ` [PATCH v6 7/7] btrfs: remove buffer_heads form superblock mirror integrity checking Johannes Thumshirn

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.