-
Notifications
You must be signed in to change notification settings - Fork 60
md: Fix getting bitmap location on latest kernels #1143
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
md: Fix getting bitmap location on latest kernels #1143
Conversation
Summary of ChangesHello @vojtechtrefny, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed! This pull request addresses compatibility issues with recent Linux kernel versions regarding MD RAID bitmap location reporting. It ensures that the system correctly identifies when a bitmap is not set by checking for the existence of the relevant sysfs file and updates the expected internal bitmap locations in tests to reflect current kernel behavior. This prevents potential errors and provides accurate information about MD RAID configurations. Highlights
Using Gemini Code AssistThe full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips. Invoking Gemini You can request assistance from Gemini at any point by creating a comment using either
Customization To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a Limitations & Feedback Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here. You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension. Footnotes
|
Summary of ChangesHello @vojtechtrefny, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed! This pull request addresses compatibility issues with recent Linux kernel updates affecting how MD (RAID) bitmap locations are reported via sysfs. It ensures the system correctly identifies when a bitmap location is not set and updates test cases to accommodate new possible values for internal bitmap locations, preventing errors and ensuring accurate reporting. Highlights
Using Gemini Code AssistThe full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips. Invoking Gemini You can request assistance from Gemini at any point by creating a comment using either
Customization To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a Limitations & Feedback Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here. You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension. Footnotes
|
bdebe41 to
f38c116
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Code Review
This pull request addresses an issue with detecting MD RAID bitmap location on newer kernels. The change in src/plugins/mdraid.c correctly handles cases where the bitmap sysfs file is absent. However, this introduces a memory leak, for which I've provided a fix. The test adjustments in tests/mdraid_test.py are appropriate to accommodate the varied bitmap locations on different kernels.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Code Review
This pull request addresses an issue with retrieving MD RAID bitmap locations on newer kernels by handling cases where the sysfs file may not exist and by updating tests for new bitmap location values. The logic in src/plugins/mdraid.c is mostly correct, but it introduces a memory leak in an early return path. I've provided a specific comment and a code suggestion to fix this leak. The changes in tests/mdraid_test.py are appropriate and correctly adapt the tests to the new kernel behavior.
The 'md/bitmap/location' file no longer exists in sysfs when the bitmap is not set. The location of the "internal" bitmap is also slightly differet now.
f38c116 to
cf3684c
Compare
tbzatek
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That's the way I like it, thanks!
bd_md_get_bitmap_location reads the value from sysfs (so this doesn't introduce any new mdadm calls) but also correctly handles the missing md/bitmap/location file with arrays without bitmap. See also storaged-project/libblockdev#1143
The 'md/bitmap/location' file no longer exists in sysfs when the bitmap is not set. The location of the "internal" bitmap is also slightly differet now.