Create.c: fix uclibc build

Define FALLOC_FL_ZERO_RANGE if needed as FALLOC_FL_ZERO_RANGE is only
defined for aarch64 on uclibc-ng resulting in the following or1k build
failure since commit 577fd10486d8d1472a6b559066f344ac30a3a391:

Create.c: In function 'write_zeroes_fork':
Create.c:155:35: error: 'FALLOC_FL_ZERO_RANGE' undeclared (first use in this function)
  155 |                 if (fallocate(fd, FALLOC_FL_ZERO_RANGE | FALLOC_FL_KEEP_SIZE,
      |                                   ^~~~~~~~~~~~~~~~~~~~

Fixes:
 - http://autobuild.buildroot.org/results/0e04bcdb591ca5642053e1f7e31384f06581e989

Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
Signed-off-by: Mariusz Tkaczyk <mariusz.tkaczyk@linux.intel.com>
1 file changed
tree: 215fdd019f8ce6f7a919cf37fae0b98163f93787
  1. clustermd_tests/
  2. documentation/
  3. misc/
  4. systemd/
  5. tests/
  6. .gitignore
  7. Assemble.c
  8. bitmap.c
  9. bitmap.h
  10. Build.c
  11. CHANGELOG.md
  12. config.c
  13. COPYING
  14. coverity-gcc-hack.h
  15. crc32.c
  16. crc32.h
  17. crc32c.c
  18. Create.c
  19. Detail.c
  20. dlink.c
  21. dlink.h
  22. drive_encryption.c
  23. drive_encryption.h
  24. Dump.c
  25. Examine.c
  26. Grow.c
  27. Incremental.c
  28. INSTALL
  29. Kill.c
  30. lib.c
  31. MAINTAINERS.md
  32. Makefile
  33. Manage.c
  34. managemon.c
  35. mapfile.c
  36. maps.c
  37. md.4
  38. md5.h
  39. md_p.h
  40. md_u.h
  41. mdadm.8.in
  42. mdadm.c
  43. mdadm.conf.5.in
  44. mdadm.h
  45. mdmon.8
  46. mdmon.c
  47. mdmon.h
  48. mdopen.c
  49. mdstat.c
  50. Monitor.c
  51. monitor.c
  52. msg.c
  53. msg.h
  54. part.h
  55. platform-intel.c
  56. platform-intel.h
  57. policy.c
  58. probe_roms.c
  59. probe_roms.h
  60. pwgr.c
  61. Query.c
  62. raid5extend.c
  63. raid6check.8
  64. raid6check.c
  65. ReadMe.c
  66. README.md
  67. restripe.c
  68. sg_io.c
  69. sha1.c
  70. sha1.h
  71. super-ddf.c
  72. super-gpt.c
  73. super-intel.c
  74. super-mbr.c
  75. super0.c
  76. super1.c
  77. swap_super.c
  78. sysfs.c
  79. test
  80. udev-md-clustered-confirm-device.rules
  81. udev-md-raid-arrays.rules
  82. udev-md-raid-assembly.rules
  83. udev-md-raid-creating.rules
  84. udev-md-raid-safe-timeouts.rules
  85. udev.c
  86. udev.h
  87. util.c
  88. uuid.c
  89. xmalloc.c
README.md

mdadm is a utility used to create and manage software RAID devices implemented through Multiple devices driver (MD) in kernel. It supports following RAID metadata formats:

  • Linux native RAID:

    Known as native or native RAID. First and default metadata format. Metadata management is implemented in MD driver.

  • Matrix Storage Manager Support (no reference, metadata format documentation is proprietary).

    Known as IMSM. Metadata format developed and maintained by IntelĀ® as a part of VROC solution. There are some functional differences between native and imsm. The most important difference is that the metadata is managed from userspace.

    CAUTION: imsm is compatible with Intel RST, however it is not officially supported. You are using it on your own risk.

  • Common RAID DDF Specification Revision

    IMPORTANT: DDF is in maintenance only mode. There is no active development around it. Please do not use it in new solutions.

How to Contribute

mdadm is hosted on kernel.org. You can access repository here.

It is maintained similarly to kernel, using mailing list. Patches must be send through email. Please familiarize with general kernel submitting patches documentation. Formatting, tags and commit message guidelines applies to mdadm.

Sending patches step-by-step

To maximize change of patches being taken, follow this instruction when submitting:

  1. Create possibly logically separated commits and generate patches:

    Use git format-patch --cover-letter --signoff -v <nr> to create patches:

    • --cover-letter can be skipped if it is only one patch;
    • --signoff adds sign-off tag;
    • -v <nr> indicates review revision number, sender should increment it before resending.
  2. Check style of every patch with kernel checkpatch script:

    It is important to keep same coding style that is why in mdadm kernel coding style is preferred. checkpath --no-tree <patch_file> can be used to verify patches. Following checkpatch issues can be ignored:

    • New typedefs.
    • comparing with True/False.
    • kernel MAINTAINERS file warning.
    • extern keyword in headers.
  3. Send patches using git send-mail --to=linux-raid@vger.kernel.org <cover-letter> <patch1> <patch2> (...)

Maintainers

It is good practice to add mdadm maintainers to recipients for patches:

Adding MD maintainers could be reasonable, especially if patches may affect MD driver:

Reviewers

mdadm utility is not part of kernel tree, so there is no certificated Reviewers list. Everyone can comment on mailing list, last decision (and merging) belongs to maintainers.

Minimal supported kernel version

We do not support kernel versions below v3.10. Please be aware that maintainers may remove workarounds and fixes for legacy issues.

License

It is released under the terms of the GNU General Public License version 2 as published by the Free Software Foundation.