Skip to content

Minor cleanups in GFP_NOFS flags use

David Sterba linux-btrfs 1 version In review

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 Latest16 patches 2 repliesIn review

Patches in v1 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/16btrfs: sink gfp parameter to set_extent_bitsfs/btrfs/extent-tree.c fs/btrfs/extent_io.c fs/btrfs/extent_io.h +3 more+10 -110 replies
2/16btrfs: sink gfp parameter to clear_extent_bitsfs/btrfs/disk-io.c fs/btrfs/extent-tree.c fs/btrfs/extent_io.c +6 more+15 -160 replies
3/16btrfs: sink gfp parameter to clear_record_extent_bitsfs/btrfs/extent_io.c fs/btrfs/extent_io.h fs/btrfs/qgroup.c+5 -80 replies
4/16btrfs: sink gfp parameter to clear_extent_dirtyfs/btrfs/disk-io.c fs/btrfs/extent-tree.c fs/btrfs/extent_io.h+4 -40 replies
5/16btrfs: sink gfp parameter to set_extent_delallocfs/btrfs/extent_io.h fs/btrfs/inode.c fs/btrfs/tests/extent-io-tests.c+6 -60 replies
6/16btrfs: sink gfp parameter to set_extent_defragfs/btrfs/extent_io.h fs/btrfs/ioctl.c+3 -30 replies
7/16btrfs: sink gfp parameter to set_extent_newfs/btrfs/extent-tree.c fs/btrfs/extent_io.h+4 -30 replies
8/16btrfs: sink gfp parameter to set_record_extent_bitsfs/btrfs/extent_io.c fs/btrfs/extent_io.h fs/btrfs/qgroup.c+4 -70 replies
9/16btrfs: untangle gotos a bit in __set_extent_bitfs/btrfs/extent_io.c+7 -80 replies
10/16btrfs: untangle gotos a bit in __clear_extent_bitfs/btrfs/extent_io.c+8 -80 replies
11/16btrfs: untangle gotos a bit in convert_extent_bitfs/btrfs/extent_io.c+7 -90 replies
12/16btrfs: make state preallocation more speculative in __set_extent_bitfs/btrfs/extent_io.c+7 -10 replies
13/16btrfs: __set_extent_bit, try preallocation out of locked section with lighter gfp flagsfs/btrfs/extent_io.c+7 -02 replies
14/16btrfs: __clear_extent_bit, try preallocation out of locked section with lighter gfp flagsfs/btrfs/extent_io.c+7 -00 replies
15/16btrfs: convert_extent_bit, try preallocation out of locked section with lighter gfp flagsfs/btrfs/extent_io.c+7 -00 replies
16/16btrfs: sink gfp parameter to convert_extent_bitfs/btrfs/extent_io.c fs/btrfs/extent_io.h fs/btrfs/transaction.c+9 -90 replies

Reviews trailers per patch

No Reviewed-by, Acked-by or Tested-by trailers for v1 yet.

Read the v1 thread

Cover letter [PATCH 00/16] Minor cleanups in GFP_NOFS flags use

Hi,

the first part of patchset mostly moves the GFP_NOFS flags from several callsites into the callers. The point is to move all GFP_NOFS to the actual point of use. If all the callers pass the same flag, there's no point in doing that, which as a small benefit saves a few bytes on the stack.

The second part tries to improve extent_state preallocation logic in the set/clear/convert functions. Depending on the internal state, we might not need the allocation at all, the actual failure is left to the place where we really need the memory, that's done in a locked section with GFP_ATOMIC. If we leave this section, we speculatively try to allocate new extent state unless we already have one spare.

I'd like to get this to 4.7, the patchset has low functionality impact but helps me to continue in the NOFS crusade.

David Sterba (16):
btrfs: sink gfp parameter to set_extent_bits
btrfs: sink gfp parameter to clear_extent_bits
btrfs: sink gfp parameter to clear_record_extent_bits
btrfs: sink gfp parameter to clear_extent_dirty
btrfs: sink gfp parameter to set_extent_delalloc
btrfs: sink gfp parameter to set_extent_defrag
btrfs: sink gfp parameter to set_extent_new
btrfs: sink gfp parameter to set_record_extent_bits
btrfs: untangle gotos a bit in __set_extent_bit
btrfs: untangle gotos a bit in __clear_extent_bit
btrfs: untangle gotos a bit in convert_extent_bit
btrfs: make state preallocation more speculative in __set_extent_bit
btrfs: __set_extent_bit, try preallocation out of locked section with
lighter gfp flags
btrfs: __clear_extent_bit, try preallocation out of locked section
with lighter gfp flags
btrfs: convert_extent_bit, try preallocation out of locked section
with lighter gfp flags
btrfs: sink gfp parameter to convert_extent_bit

 fs/btrfs/disk-io.c               |   4 +-
 fs/btrfs/extent-tree.c           |  16 +++---
 fs/btrfs/extent_io.c             | 105 +++++++++++++++++++++++----------------
 fs/btrfs/extent_io.h             |  34 ++++++-------
 fs/btrfs/file-item.c             |   2 +-
 fs/btrfs/inode.c                 |   5 +-
 fs/btrfs/ioctl.c                 |   2 +-
 fs/btrfs/qgroup.c                |   8 ++-
 fs/btrfs/relocation.c            |   7 ++-
 fs/btrfs/scrub.c                 |   4 +-
 fs/btrfs/tests/extent-io-tests.c |   8 +--
 fs/btrfs/transaction.c           |   2 +-
 fs/btrfs/tree-log.c              |   2 +-
 13 files changed, 108 insertions(+), 91 deletions(-)
Signature · 1 line
2.7.1