Skip to content
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

[WIP] Improve File.Copy by using the block copy operation for ReFS on Windows #88695

Closed
wants to merge 19 commits into from

Commits on Jul 11, 2023

  1. WIP commit

    - Initial code for ReFS block copy operation, currently throws exceptions whenever it fails to support checking if it's actually working (obviously needs to be changed before merging)
    - Contains a number of TODO items to be resolved
    - Works locally
    hamarb123 committed Jul 11, 2023
    Configuration menu
    Copy the full SHA
    4711fde View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    f864fec View commit details
    Browse the repository at this point in the history

Commits on Jul 12, 2023

  1. Fix LARGE_INTEGER alignment/packing

    - As per review
    hamarb123 committed Jul 12, 2023
    Configuration menu
    Copy the full SHA
    306ca00 View commit details
    Browse the repository at this point in the history
  2. Fix some p/invoke issues

    - as per feedback
    - also simplify the GetVolumeInformationByHandle code, as we don't need the volumePath currently
    hamarb123 committed Jul 12, 2023
    Configuration menu
    Copy the full SHA
    e1be061 View commit details
    Browse the repository at this point in the history
  3. Implement more feedback

    - Fix int->byte for FILE_SET_SPARSE_BUFFER
    - Implement GetVolumePathName properly, using GetFullPathName and ValueStringBuilder
    hamarb123 committed Jul 12, 2023
    Configuration menu
    Copy the full SHA
    0b9b36a View commit details
    Browse the repository at this point in the history

Commits on Jul 13, 2023

  1. Configuration menu
    Copy the full SHA
    2a8f650 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    ee32bef View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    33b6090 View commit details
    Browse the repository at this point in the history
  4. Implement feedback

    - Make the structs not readonly again
    - Use the BOOLEAN type, instead of byte directly
    - And make usage of structs used for native methods consistent
    hamarb123 committed Jul 13, 2023
    Configuration menu
    Copy the full SHA
    ddb816b View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    cf8fbf6 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    29ef3d3 View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    fba6f0f View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    5b1180d View commit details
    Browse the repository at this point in the history
  9. Split WindowsCheckSparseness to a new file

    - Split the WindowsCheckSparseness test to a new file, since it's windows specific, and relies on Windows Interop APIs
    hamarb123 committed Jul 13, 2023
    Configuration menu
    Copy the full SHA
    7f21a4c View commit details
    Browse the repository at this point in the history

Commits on Jul 16, 2023

  1. Implement improved logic & other changes

    - Implement new and improved logic, which saves 1 syscall in the ideal case (described in a comment on dotnet#88695)
    - Fix missing DELETE access when creating the destination file, in case it needs to be deleted
    - Add overload of GetFinalPathNameByHandle, which does creates a string and returns it
    - Fix a missing throw statement in GetVolumePathName's impl
    - Changes to make tests compile
    - Remove unneeded files for tests
    hamarb123 committed Jul 16, 2023
    Configuration menu
    Copy the full SHA
    a7a74a0 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    b6ff8b9 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    f6df015 View commit details
    Browse the repository at this point in the history

Commits on Aug 26, 2023

  1. Configuration menu
    Copy the full SHA
    ce80ab2 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    b02e4bc View commit details
    Browse the repository at this point in the history