Uploaded image for project: 'Core ReactOS'
  1. Core ReactOS
  2. CORE-10892

Add Mark Harmstone btrfs filesystem driver

    XMLWordPrintable

Details

    • March 2016

    Description

      Mark Harmstone published his btrfs filesystem driver on github.
      Here is a patch that imports it into ReactOS.
      PLEASE NOTE that none of this is my work.

      Brief description of the patch:
      Changes are mostly for compiling it cleanly in ReactOS, because Mark set the driver target to Win7.
      That's why there are added 2 missing Rtl functions courtesy of Thomas (RtlUnicodeToUTF8N & RtlUTF8ToUnicodeN).
      One copy of removed hack from Pierre for IOCTL_DISK_GET_PARTITION_INFO_EX (btrfs uses this to determine its size, not sure why Mark used this instead of btrfs superblock). EDIT: Committed in http://code.reactos.org/changelog/reactos?cs=70781
      There are 3 more changes:
      1. Disabling SSE4.2 CPU check and SSE4.2 optimization when calculating crc32 (can be easily added back)
      2. Disabling FsRtlRemoveDotsFromPath which is defined for Vista+ when used for symlink path simplification.
      3. Switch a check on RemoveHeadList to IsListEmpty, because ROS checks were bugchecking when trying to remove head of the list. EDIT: same "fix" applied to drv_shutdown. EDIT2: no longer needed, Mark already changed it.
      EDIT:
      4. Rearrange of code a bit in mount_vol to fix behavior when called for non-btrfs volumes.

      Also here is an implementation of file system recognizer for btrfs, registry entry for driver, txtsetup.sif change to copy it from CD on install.

      I can add separated patches if it will be easier for review.
      Attached also btrfs patch to the original driver code for future reimports.
      Please review and comment.

      Attachments

        1. winbtrfs_02.patch
          820 kB
        2. btrfs.patch
          1.39 MB
        3. btrfs_usetup.patch
          0.4 kB
        4. btrfs_registry.patch
          1 kB
        5. btrfs_original.patch
          18 kB
        6. btrfs_fs_rec.patch
          7 kB
        7. btrfs_fs_driver.patch
          1.53 MB

        Activity

          People

            Heis Spiter Pierre Schweitzer
            hater hater
            Votes:
            6 Vote for this issue
            Watchers:
            12 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: