Skip to content

Add lower dir and handle to Linux VFS API#507

Merged
sanoursa merged 10 commits intomicrosoft:features/linuxprototypefrom
chrisd8088:linux-vfs-mount-handle
Nov 15, 2018
Merged

Add lower dir and handle to Linux VFS API#507
sanoursa merged 10 commits intomicrosoft:features/linuxprototypefrom
chrisd8088:linux-vfs-mount-handle

Conversation

@chrisd8088
Copy link
Contributor

The VFSforGit API, as defined for Windows and MacOS, does not support the use of an opaque handle as required to allow the Linux libprojfs library to track its event loop thread (and thus allow it to start and, later, stop the thread).

Further, we need to pass the lower-level storageRoot directory path to libprojfs as it will be a stackable Linux filesystem which passes most or all operations through to the lower-level filesystem.

The GVFS.Virtualization.FileSystem.FileSystemVirtualizer class has a Stop() method which returns void, so we follow that lead for MirrorProvider as well.

And as we don't expect to return a value from the corresponding function in the Linux library either, we can also remove the return value from StopVirtualizationInstance() in the Linux PrjFSLib.

The VFSforGit API, as defined for Windows and MacOS, does not support
the use of an opaque handle as required to allow the Linux libprojfs
library to track its event loop thread (and thus allow it to start and,
later, stop the thread).

Further, we need to pass the lower-level storageRoot directory path to
libprojfs as it will be a stackable Linux filesystem which passes most
or all operations through to the lower-level filesystem.

The GVFS.Virtualization.FileSystem.FileSystemVirtualizer class
has a Stop() method which returns void, so we follow that lead
for MirrorProvider as well.

And as we don't expect to return a value from the corresponding
function in the Linux library either, we can also remove the return
value from StopVirtualizationInstance() in the Linux PrjFSLib.
As per discussion in microsoft#507, we can just keep
the mountHandle local to the PrjFSLib.Linux.VirtualizationInstance
and keep it out of the provider's filesystem virtualizer.
@wilbaker wilbaker self-requested a review November 14, 2018 21:44
Copy link
Contributor

@sanoursa sanoursa left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good!

@chrisd8088
Copy link
Contributor Author

I think this is up-to-date with all the changes proposed and discussed, @sanoursa; thanks for the keen-eyed review!

@sanoursa sanoursa merged commit 43be5a0 into microsoft:features/linuxprototype Nov 15, 2018
@chrisd8088 chrisd8088 deleted the linux-vfs-mount-handle branch November 15, 2018 20:27
jrbriggs pushed a commit that referenced this pull request Jan 17, 2019
As per discussion in #507, we can just keep
the mountHandle local to the PrjFSLib.Linux.VirtualizationInstance
and keep it out of the provider's filesystem virtualizer.
kivikakk pushed a commit to github/VFSForGit that referenced this pull request Feb 21, 2019
As per discussion in microsoft#507, we can just keep
the mountHandle local to the PrjFSLib.Linux.VirtualizationInstance
and keep it out of the provider's filesystem virtualizer.
kivikakk pushed a commit to github/VFSForGit that referenced this pull request Mar 14, 2019
As per discussion in microsoft#507, we can just keep
the mountHandle local to the PrjFSLib.Linux.VirtualizationInstance
and keep it out of the provider's filesystem virtualizer.
chrisd8088 added a commit to github/VFSForGit that referenced this pull request Mar 29, 2019
As per discussion in microsoft#507, we can just keep
the mountHandle local to the PrjFSLib.Linux.VirtualizationInstance
and keep it out of the provider's filesystem virtualizer.
jrbriggs pushed a commit that referenced this pull request Apr 1, 2019
As per discussion in #507, we can just keep
the mountHandle local to the PrjFSLib.Linux.VirtualizationInstance
and keep it out of the provider's filesystem virtualizer.
chrisd8088 added a commit to github/VFSForGit that referenced this pull request Apr 9, 2019
As per discussion in microsoft#507, we can just keep
the mountHandle local to the PrjFSLib.Linux.VirtualizationInstance
and keep it out of the provider's filesystem virtualizer.
chrisd8088 added a commit to github/VFSForGit that referenced this pull request Apr 9, 2019
As per discussion in microsoft#507, we can just keep
the mountHandle local to the PrjFSLib.Linux.VirtualizationInstance
and keep it out of the provider's filesystem virtualizer.
jrbriggs pushed a commit that referenced this pull request Apr 9, 2019
As per discussion in #507, we can just keep
the mountHandle local to the PrjFSLib.Linux.VirtualizationInstance
and keep it out of the provider's filesystem virtualizer.
chrisd8088 added a commit that referenced this pull request Apr 10, 2019
As per discussion in #507, we can just keep
the mountHandle local to the PrjFSLib.Linux.VirtualizationInstance
and keep it out of the provider's filesystem virtualizer.
chrisd8088 added a commit that referenced this pull request Apr 12, 2019
As per discussion in #507, we can just keep
the mountHandle local to the PrjFSLib.Linux.VirtualizationInstance
and keep it out of the provider's filesystem virtualizer.
kivikakk pushed a commit to github/VFSForGit that referenced this pull request Apr 16, 2019
As per discussion in microsoft#507, we can just keep
the mountHandle local to the PrjFSLib.Linux.VirtualizationInstance
and keep it out of the provider's filesystem virtualizer.
chrisd8088 added a commit that referenced this pull request Apr 16, 2019
As per discussion in #507, we can just keep
the mountHandle local to the PrjFSLib.Linux.VirtualizationInstance
and keep it out of the provider's filesystem virtualizer.
chrisd8088 added a commit that referenced this pull request Apr 16, 2019
As per discussion in #507, we can just keep
the mountHandle local to the PrjFSLib.Linux.VirtualizationInstance
and keep it out of the provider's filesystem virtualizer.
chrisd8088 added a commit that referenced this pull request Apr 18, 2019
As per discussion in #507, we can just keep
the mountHandle local to the PrjFSLib.Linux.VirtualizationInstance
and keep it out of the provider's filesystem virtualizer.
chrisd8088 added a commit that referenced this pull request May 21, 2019
As per discussion in #507, we can just keep
the mountHandle local to the PrjFSLib.Linux.VirtualizationInstance
and keep it out of the provider's filesystem virtualizer.
chrisd8088 added a commit that referenced this pull request May 21, 2019
As per discussion in #507, we can just keep
the mountHandle local to the PrjFSLib.Linux.VirtualizationInstance
and keep it out of the provider's filesystem virtualizer.
kivikakk pushed a commit to github/VFSForGit that referenced this pull request May 24, 2019
As per discussion in microsoft#507, we can just keep
the mountHandle local to the PrjFSLib.Linux.VirtualizationInstance
and keep it out of the provider's filesystem virtualizer.
chrisd8088 added a commit that referenced this pull request May 24, 2019
As per discussion in #507, we can just keep
the mountHandle local to the PrjFSLib.Linux.VirtualizationInstance
and keep it out of the provider's filesystem virtualizer.
chrisd8088 added a commit that referenced this pull request Jul 20, 2019
As per discussion in #507, we can just keep
the mountHandle local to the PrjFSLib.Linux.VirtualizationInstance
and keep it out of the provider's filesystem virtualizer.
chrisd8088 added a commit that referenced this pull request Jul 26, 2019
As per discussion in #507, we can just keep
the mountHandle local to the PrjFSLib.Linux.VirtualizationInstance
and keep it out of the provider's filesystem virtualizer.
chrisd8088 added a commit that referenced this pull request Jul 28, 2019
As per discussion in #507, we can just keep
the mountHandle local to the PrjFSLib.Linux.VirtualizationInstance
and keep it out of the provider's filesystem virtualizer.
chrisd8088 added a commit that referenced this pull request Aug 2, 2019
As per discussion in #507, we can just keep
the mountHandle local to the PrjFSLib.Linux.VirtualizationInstance
and keep it out of the provider's filesystem virtualizer.
chrisd8088 added a commit that referenced this pull request Aug 2, 2019
As per discussion in #507, we can just keep
the mountHandle local to the PrjFSLib.Linux.VirtualizationInstance
and keep it out of the provider's filesystem virtualizer.
chrisd8088 added a commit that referenced this pull request Aug 6, 2019
As per discussion in #507, we can just keep
the mountHandle local to the PrjFSLib.Linux.VirtualizationInstance
and keep it out of the provider's filesystem virtualizer.
chrisd8088 added a commit that referenced this pull request Aug 9, 2019
As per discussion in #507, we can just keep
the mountHandle local to the PrjFSLib.Linux.VirtualizationInstance
and keep it out of the provider's filesystem virtualizer.
chrisd8088 added a commit to github/VFSForGit that referenced this pull request Aug 13, 2019
As per discussion in microsoft#507, we can just keep
the mountHandle local to the PrjFSLib.Linux.VirtualizationInstance
and keep it out of the provider's filesystem virtualizer.
chrisd8088 added a commit to github/VFSForGit that referenced this pull request Aug 16, 2019
As per discussion in microsoft#507, we can just keep
the mountHandle local to the PrjFSLib.Linux.VirtualizationInstance
and keep it out of the provider's filesystem virtualizer.
chrisd8088 added a commit that referenced this pull request Aug 20, 2019
As per discussion in #507, we can just keep
the mountHandle local to the PrjFSLib.Linux.VirtualizationInstance
and keep it out of the provider's filesystem virtualizer.
chrisd8088 added a commit that referenced this pull request Aug 21, 2019
As per discussion in #507, we can just keep
the mountHandle local to the PrjFSLib.Linux.VirtualizationInstance
and keep it out of the provider's filesystem virtualizer.
chrisd8088 added a commit to github/VFSForGit that referenced this pull request Aug 21, 2019
As per discussion in microsoft#507, we can just keep
the mountHandle local to the PrjFSLib.Linux.VirtualizationInstance
and keep it out of the provider's filesystem virtualizer.
chrisd8088 added a commit that referenced this pull request Aug 23, 2019
As per discussion in #507, we can just keep
the mountHandle local to the PrjFSLib.Linux.VirtualizationInstance
and keep it out of the provider's filesystem virtualizer.
chrisd8088 added a commit to github/VFSForGit that referenced this pull request Aug 23, 2019
As per discussion in microsoft#507, we can just keep
the mountHandle local to the PrjFSLib.Linux.VirtualizationInstance
and keep it out of the provider's filesystem virtualizer.
chrisd8088 added a commit that referenced this pull request Sep 3, 2019
As per discussion in #507, we can just keep
the mountHandle local to the PrjFSLib.Linux.VirtualizationInstance
and keep it out of the provider's filesystem virtualizer.
chrisd8088 added a commit that referenced this pull request Sep 27, 2019
As per discussion in #507, we can just keep
the mountHandle local to the PrjFSLib.Linux.VirtualizationInstance
and keep it out of the provider's filesystem virtualizer.
chrisd8088 added a commit that referenced this pull request Oct 6, 2019
As per discussion in #507, we can just keep
the mountHandle local to the PrjFSLib.Linux.VirtualizationInstance
and keep it out of the provider's filesystem virtualizer.
chrisd8088 added a commit that referenced this pull request Oct 21, 2019
As per discussion in #507, we can just keep
the mountHandle local to the PrjFSLib.Linux.VirtualizationInstance
and keep it out of the provider's filesystem virtualizer.
chrisd8088 added a commit that referenced this pull request Oct 27, 2019
As per discussion in #507, we can just keep
the mountHandle local to the PrjFSLib.Linux.VirtualizationInstance
and keep it out of the provider's filesystem virtualizer.
chrisd8088 added a commit that referenced this pull request Dec 9, 2019
As per discussion in #507, we can just keep
the mountHandle local to the PrjFSLib.Linux.VirtualizationInstance
and keep it out of the provider's filesystem virtualizer.
chrisd8088 added a commit that referenced this pull request Dec 22, 2019
As per discussion in #507, we can just keep
the mountHandle local to the PrjFSLib.Linux.VirtualizationInstance
and keep it out of the provider's filesystem virtualizer.
chrisd8088 added a commit that referenced this pull request Jan 6, 2020
As per discussion in #507, we can just keep
the mountHandle local to the PrjFSLib.Linux.VirtualizationInstance
and keep it out of the provider's filesystem virtualizer.
chrisd8088 added a commit that referenced this pull request Feb 9, 2020
As per discussion in #507, we can just keep
the mountHandle local to the PrjFSLib.Linux.VirtualizationInstance
and keep it out of the provider's filesystem virtualizer.
chrisd8088 added a commit that referenced this pull request Feb 24, 2020
As per discussion in #507, we can just keep
the mountHandle local to the PrjFSLib.Linux.VirtualizationInstance
and keep it out of the provider's filesystem virtualizer.
chrisd8088 added a commit that referenced this pull request Jul 26, 2020
As per discussion in #507, we can just keep
the mountHandle local to the PrjFSLib.Linux.VirtualizationInstance
and keep it out of the provider's filesystem virtualizer.
chrisd8088 added a commit that referenced this pull request Jul 29, 2020
As per discussion in #507, we can just keep
the mountHandle local to the PrjFSLib.Linux.VirtualizationInstance
and keep it out of the provider's filesystem virtualizer.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants