KernelNewbies
  • Comments
  • Immutable Page
  • Menu
    • Navigation
    • RecentChanges
    • FindPage
    • Local Site Map
    • Help
    • HelpContents
    • HelpOnMoinWikiSyntax
    • Display
    • Attachments
    • Info
    • Raw Text
    • Print View
    • Edit
    • Load
    • Save
  • Login

Kernel Hacking

  • Frontpage

  • Kernel Hacking

  • Kernel Documentation

  • Kernel Glossary

  • FAQ

  • Found a bug?

  • Kernel Changelog

  • Upstream Merge Guide

Projects

  • KernelTasklists

  • KernelJanitors

  • KernelMentors

  • KernelProjects

Community

  • Why a community?

  • Regional Kernelnewbies

  • Personal Pages

  • Upcoming Events

References

  • Mailing Lists

  • Related Sites

  • Programming Links

Wiki

  • Recent Changes

  • Site Editors

  • Side Bar

  • Tips for Editors

  • Hosted by WikiWall

Navigation

  • RecentChanges
  • FindPage
  • HelpContents

Upload page content

You can upload content for the page named below. If you change the page name, you can also upload content for another page. If the page name is empty, we derive the page name from the file name.

File to load page content from
Page name
Comment

KernelNewbies:
  • Beginner Cleanup and Refactor Tasks by Agatha Isabelle Moreira

A simple tasklist of beginner-friendly tasks collected so far mostly by scripts to target known needed cleanups, refactors, etc.

Tasklist Maintainer

Tasklist Maintainer Information:

  • Maintainer: Agatha Isabelle Moreira

  • Email: <code AT DONT SPAM ME agatha DOT dev>

  • Availability: Available for review and on-demand at the email above
  • Contact Channels: The email above or with the nickname agatha at irc.oftc.net

NOTES:

PLEASE COORDINATE WITH THE TASKLIST MAINTAINER: To avoid multiple people working on the same task, I strongly suggest that you email the task maintainer at the above email or edit the wiki assigning the task to yourself. This way we prevent people from working on the same task.

PLEASE Cc: THE TASKLIST MAINTAINER ON YOUR PATCHES: This way the tasklist maintainer can keep track of what's done and what's not, helping to maintain the tasklist up-to-date and fresh.

PLEASE READ THE GENERAL INFORMATION: It contains important instructions that will ensure your patches will meet the linux kernel submission requirements, making them more likely to be accepted.

General Information

This tasklist is based on home baked scripts (see #task_source_scripts) crafted to look up for cleanup/refactoring of code known to have a better replacement.

Whoever wants to work on those tasks will have to, before submitting a patch, check if the replacement is 100% correct and carefully test the new code.

Please, before submitting any patches, read carefully the following mandatory documentation:

  • PatchPhilosophy

  • FirstKernelPatch

  • Submitting Patches (Kernel Official Docs)

Please note that submitting patches inappropriately or low quality patches consume reviewer and maintainer time, so please do your best effort to make sure everything is okay.

Copy (Cc:) the tasklist maintainer when sending the patch, and also add to your commit message using the tags below according to the values specified in the task.

Suggested-By: See Per Task
Link: https://kernelnewbies.org/Beginner%20Cleanup%20and%20Refactor%20Tasks%20by%20Agatha%20Isabelle%20Moreira

Getting the Task Assigned

You can get the task assigned to you by just editing the wiki here or contacting the tasklist maintainer.

Please, don't work on tasks that have been assigned to avoid having two people working on the same task.

If you cannot complete the task, remove yourself from the assigned field or reach out to the tasklist maintainer by email to release it for someone else.

Open Tasks

#001: Use `clear_and_wake_up_bit()` in `merge_shutdown()`

  • Creation Date: 2026-06-15
  • Last Update: 2026-07-03
  • Assigned To: Someone Else (not coordinated with the tasklist)
  • Status: Patch Submitted

  • Suggested-By: Agatha Isabelle Moreira
  • Link: https://kernelnewbies.org/Beginner%20Cleanup%20and%20Refactor%20Tasks%20by%20Agatha%20Isabelle%20Moreira#task_001

The clear_and_wake_up_bit() function was introduced because sometimes developers were forgetting to make a call for wake_up_bit() after clear_bit_unlock() in some contexts where the same kind of operation was done.

Since the new helper completely replaces call to the sequence:

        clear_bit_unlock();
        smp_mb__after_atomic();
        wake_up_bit();

it makes much more sense to use the new helper instead of calling the sequence, standardizing the code path.

Additional Details

The assignee is expected to inspect for the appropriateness of the change, if the new call really replaces appropriately the sequence, and to do proper testing according to the kernel official documentation.

Refer to this patch for an example.

Files: drivers/md/dm-snap.c

Relevant History

The new function was introduced by 'commit 8236b0ae31c83 ("bdi: wake up concurrent wb_shutdown() callers.")'.

#002: use `clear_and_wake_up_bit()` in `dmz_mblock_bio_end_io()`

  • Creation Date: 2026-06-15
  • Last Update: 2026-07-03
  • Assigned To: Someone Else (not coordinated with the tasklist)
  • Status: Patch Submitted

  • Suggested-By: Agatha Isabelle Moreira
  • Link: https://kernelnewbies.org/Beginner%20Cleanup%20and%20Refactor%20Tasks%20by%20Agatha%20Isabelle%20Moreira#task_002

The clear_and_wake_up_bit() function was introduced because sometimes developers were forgetting to make a call for wake_up_bit() after clear_bit_unlock() in some contexts where the same kind of operation was done.

Since the new helper completely replaces call to the sequence:

        clear_bit_unlock();
        smp_mb__after_atomic();
        wake_up_bit();

it makes much more sense to use the new helper instead of calling the sequence, standardizing the code path.

Additional Details

The assignee is expected to inspect for the appropriateness of the change, if the new call really replaces appropriately the sequence, and to do proper testing it according to the kernel official documentation.

Refer to this patch for an example.

  • File(s): drivers/md/dm-zoned-metadata.c (line 522)
  • File(s): drivers/md/dm-zoned-metadata.c (line 1913)
  • File(s): drivers/md/dm-zoned-reclaim.c (line 109)

Relevant History

The new function was introduced by 'commit 8236b0ae31c83 ("bdi: wake up concurrent wb_shutdown() callers.")'.

#010: Use `clear_and_wake_up_bit()` in `cifs_revalidate_mapping()`

  • Creation Date: 2026-06-15
  • Last Update: 2026-07-03
  • Status: Assigned
  • Assigned To: Mehdi Hassan
  • Suggested-By: Agatha Isabelle Moreira
  • Link: https://kernelnewbies.org/Beginner%20Cleanup%20and%20Refactor%20Tasks%20by%20Agatha%20Isabelle%20Moreira#task_010

The clear_and_wake_up_bit() function was introduced because sometimes developers were forgetting to make a call for wake_up_bit() after clear_bit_unlock() in some contexts where the same kind of operation was done.

Since the new helper completely replaces call to the sequence:

        clear_bit_unlock();
        smp_mb__after_atomic();
        wake_up_bit();

it makes much more sense to use the new helper instead of calling the sequence, standardizing the code path.

Additional Details

The assignee is expected to inspect for the appropriateness of the change, if the new call really replaces appropriately the sequence, and to do proper testing it according to the kernel official documentation.

Refer to this patch for an example.

  • File(s): fs/smb/client/inode.c (line 2787)

Relevant History

The new function was introduced by 'commit 8236b0ae31c83 ("bdi: wake up concurrent wb_shutdown() callers.")'.

Closed Tasks

#005: Use `clear_and_wake_up_bit()` in `unlock_buffer()`

  • Creation Date: 2026-05-20
  • Last Update: 2026-06-01
  • Status: CLOSED
  • Assigned To: Agatha Isabelle Moreira
  • Suggested-By: shuo chen
  • Link: https://lore.kernel.org/kernelnewbies/agzoqV835-co4kAN@guidai/T/#t

The clear_and_wake_up_bit() function was introduced because sometimes developers were forgetting to make a call for wake_up_bit() after clear_bit_unlock() in some contexts where the same kind of operation was done.

Since the new helper completely replaces call to the sequence:

        clear_bit_unlock();
        smp_mb__after_atomic();
        wake_up_bit();

it makes much more sense to use the new helper instead of calling the sequence, standardizing the code path.

Additional Details

The assignee is expected to inspect for the appropriateness of the change, if the new call really replaces appropriately the sequence, and to do proper testing it according to the kernel official documentation.

Refer to this patch for an example.

  • File(s): fs/buffer.c (line 77)

Relevant History

The new function was introduced by 'commit 8236b0ae31c83 ("bdi: wake up concurrent wb_shutdown() callers.")'.

Resolution

Patch merged: https://lore.kernel.org/all/ag4SD-mkmn5IbuN7@guidai/

#006: Use `clear_and_wake_up_bit()` in `journal_end_buffer_io_sync()`

  • Creation Date: 2026-06-15
  • Last Update: 2026-06-15 (Closed)
  • Assigned To: Agatha Isabelle Moreira

The clear_and_wake_up_bit() function was introduced because sometimes developers were forgetting to make a call for wake_up_bit() after clear_bit_unlock() in some contexts where the same kind of operation was done.

Since the new helper completely replaces call to the sequence:

        clear_bit_unlock();
        smp_mb__after_atomic();
        wake_up_bit();

it makes much more sense to use the new helper instead of calling the sequence, standardizing the code path.

Additional Details

The assignee is expected to inspect for the appropriateness of the change, if the new call really replaces appropriately the sequence, and to do proper testing it according to the kernel official documentation.

Refer to this patch for an example.

  • File(s): fs/jbd2/commit.c (line 42)

Relevant History

The new function was introduced by 'commit 8236b0ae31c83 ("bdi: wake up concurrent wb_shutdown() callers.")'.

Resolution

Patch merged: https://lore.kernel.org/all/ag4SrrOl7R2DcLLi@guidai/

#007: Use `clear_and_wake_up_bit()` in NFS

  • Creation Date: 2026-06-15
  • Last Update: 2026-08-26
  • Assigned To: Arnaud Bonnet
  • Status: CLOSED
  • Suggested-By: Agatha Isabelle Moreira
  • Link: https://kernelnewbies.org/Beginner%20Cleanup%20and%20Refactor%20Tasks%20by%20Agatha%20Isabelle%20Moreira#task_007

The clear_and_wake_up_bit() function was introduced because sometimes developers were forgetting to make a call for wake_up_bit() after clear_bit_unlock() in some contexts where the same kind of operation was done.

Since the new helper completely replaces call to the sequence:

        clear_bit_unlock();
        smp_mb__after_atomic();
        wake_up_bit();

it makes much more sense to use the new helper instead of calling the sequence, standardizing the code path.

Additional Details

The assignee is expected to inspect for the appropriateness of the change, if the new call really replaces appropriately the sequence, and to do proper testing it according to the kernel official documentation.

Refer to this patch for an example.

  • File(s): fs/nfs/inode.c (line 1545), fs/nfs/pnfs.c (line 2107), fs/nfs/pnfs.c (line 3280)

Relevant History

The new function was introduced by 'commit 8236b0ae31c83 ("bdi: wake up concurrent wb_shutdown() callers.")'.

Resolution

  • Patch submitted: https://lore.kernel.org/all/cover.1782148639.git.abo@medichon.fr/

  • Patch merged: https://lore.kernel.org/linux-nfs/ebcd172da92ef6a8aafb5f0c6f84d0c6a735cb01.camel@kernel.org/

Task Sourcing Scripts

The following scripts were used to bring up those tasks.

`clear_bit_unlock()`

To detect instances where clear_bit_unlock(), smp_mb__after_atomic() and wake_up_bit() sequences needs to be replaced by clear_and_wake_up_bit(), the following shell command was crafted and applied to the kernel tree:

$ global -rl clear_bit_unlock | xargs awk '
  /clear_bit_unlock\s*\(/ { file=FILENAME; line=FNR; lock=$0; getline; mid=$0; getline; wake=$0;
    if (mid ~ /smp_mb__after_atomic\s*\(\s*\)/ && wake ~ /wake_up_bit\s*\(/)
      print file ":" line ": " lock "\n" file ":" (line+1) ": " mid "\n" file ":" (line+2) ": " wake "\n"
  }
'
  • MoinMoin Powered
  • Python Powered
  • GPL licensed
  • Valid HTML 4.01