History log of /haiku/src/add-ons/kernel/file_systems/userlandfs/server/fuse/FUSEEntry.h
Revision Date Author Comments
# 55f3abb4 28-Mar-2023 Trung Nguyen <trungnt282910@gmail.com>

userlandfs: Support mapping FUSE files to memory

- Create a file cache for FUSE mounted files on open to allow
memory mapping these files unless direct_io is specified.
- Implement DoIO for FUSE mounted files.

This patch enables files mounted through FUSE filesystems such as
sshfs or vmhgfs to be `mmap`ed, allowing remotely cross-compiled
executables to be directly run on Haiku.

Change-Id: I364b8225eae5b1d586280c2b3301fb661581caed
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6277
Tested-by: Automation <automation@haiku-os.org>
Reviewed-by: Adrien Destugues <pulkomandy@pulkomandy.tk>


# 5147963d 26-Jul-2009 Stephan Aßmus <superstippi@gmx.de>

headers/private/kernel/util/OpenHashTable.h, Hugo's version, is a bit nicer than
Tracker's OpenHashTable.h which it should eventually replace. We've renamed the
class to BOpenHashTable and changed the interface slightly so that HashTableLink
became superfluous.
Adapted all the code that used it. Since the OpenHashTables no longer clash,
this should fix the GCC4 build.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31791 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c8722a1e 27-Mar-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

* Removed WriteFSInfo(). It's used only for changing the volume name and we
can't implement that with the FUSE interface.
* We now mark nodes dirty after a write operation.
* Implemented Sync() by fsync()ing all dirty nodes.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29746 a95241bf-73f2-0310-859d-f6bbb57e9c96


# fde6bf44 24-Mar-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

* Preparations for write support: Added a locking to the existing hooks. We
need to make sure that the paths of nodes don't change while we're meddling
with them. We read-lock the directories up to the root directory for that
purpose.
* Added missing locking for directory and attribute directory cookies.
We have to do that, since concurrent readdir()s on the same dir handle are
possible and we write-access the cookie data in such a case.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29687 a95241bf-73f2-0310-859d-f6bbb57e9c96


# b4d95b2a 20-Mar-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Forgot to add in my previous commit. Defines the FUSEEntry, FUSENode structs
and the respective hash table definitions.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29622 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 5147963dcd57fefa4f63c484eb88e9eaf4002976 26-Jul-2009 Stephan Aßmus <superstippi@gmx.de>

headers/private/kernel/util/OpenHashTable.h, Hugo's version, is a bit nicer than
Tracker's OpenHashTable.h which it should eventually replace. We've renamed the
class to BOpenHashTable and changed the interface slightly so that HashTableLink
became superfluous.
Adapted all the code that used it. Since the OpenHashTables no longer clash,
this should fix the GCC4 build.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31791 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c8722a1e821590c60271c58bce3c2f505f42dd98 27-Mar-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

* Removed WriteFSInfo(). It's used only for changing the volume name and we
can't implement that with the FUSE interface.
* We now mark nodes dirty after a write operation.
* Implemented Sync() by fsync()ing all dirty nodes.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29746 a95241bf-73f2-0310-859d-f6bbb57e9c96


# fde6bf44b10d066b34bb97daa5c4a62417df995e 24-Mar-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

* Preparations for write support: Added a locking to the existing hooks. We
need to make sure that the paths of nodes don't change while we're meddling
with them. We read-lock the directories up to the root directory for that
purpose.
* Added missing locking for directory and attribute directory cookies.
We have to do that, since concurrent readdir()s on the same dir handle are
possible and we write-access the cookie data in such a case.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29687 a95241bf-73f2-0310-859d-f6bbb57e9c96


# b4d95b2afa149dac7e77c5f2b1a4113bf0bc7104 20-Mar-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Forgot to add in my previous commit. Defines the FUSEEntry, FUSENode structs
and the respective hash table definitions.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29622 a95241bf-73f2-0310-859d-f6bbb57e9c96