I am pretty new to Linux kernel programming and I am supposed to create a new RAID level for a course. This is why I am asking myself some questions about the functions and structures contained in the md.c file and especially about the structure mddev defined here.
As you can see there are nearly no comments about the structure in itself. I simply do not understand what is the main role of that and what is the big difference with md_personality? Both seem to define the RAID functionality.
What is the purpose of the structure mddev in md.c?
303 Views Asked by Zaaro At
1
There are 1 best solutions below
Related Questions in LINUX-KERNEL
- Android kernel error: undefined reference to `get_hw_version_platform'
- Is there a need for BPF Linux namespace?
- Facing fatal errors while running "yum update" command on CentOS 7/Cloudlinux 7
- crash utility itself crashes while decoding kdump generated from null pointer dereference in kernel module
- How to compile the Linux kernel with -O0 for more detailed debug?
- Linux support for parallel Pixel data Image sensor
- Can't upgrade to newest version of linux-image-6.5.0-26-generic
- How to protect a page so that it cannot be write in mips arch?
- How to extract the .img file into normal kernel source file in the linux?
- Storage size of struct hash_desc desc; isn't known
- How can I intercept failed file openning calls?
- struct nameidata-Linux Kernel Module
- How to modify a 'struct msghdr' in Linux Kernel Module?
- How to allocate 500MB+ physically contiguous memory in a Linux kernel module and copy data to that memory from a userspace process?
- Hyper Threading: nosmt in grub configuration
Related Questions in RAID
- Difference between implementing RAID 0 and attaching multiple EBS Volumes on AWS
- PowerShell (Device Control)
- How to wait for mdadm RAID array's resync process to fully complete?
- Write large byte arrays on RAID0 virtual disk
- Improving performance of git repo with hundreds of thousands of small files
- SCSI read capacity (10) reports wrong LBA and sector size
- mdadm statechanging alertscript
- How to identify the disk Optane or Raid type using Powershell?
- C++ FileApi.h no caching, how do i get the disk activity to 100%
- How to run a bash script from crontab and send the output to desktop notifications
- How to calculate RAID 5 parity for even disc count?
- Checking of dd status in ubuntu using python
- Editing hex value at a particular position in disk image file using python
- Custom command in Nagios not showing up in web gui
- How does Linux md driver write data to SATA disk?
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
As per my understanding, whenever you create any new RAID device using mdadm utility with certain RAID level, MD layer creates mddev structure which holds information related to that newly created device like major-minor number for newly created device, max devices allowed etc.
md_personality is related to raid level you have given in mdadm. It contains RAID level and supported operations which can be performed on RAID device. md_personality is itself part of mddev.
In your case, I think you need to create new personality for your own purpose just like other personalities, i.e. raid5_personality for RAID 5 level.