Christian Ebner
22eaa905a4
src/pxar/fuse.rs: impl readdir callback for fuse
...
Signed-off-by: Christian Ebner <c.ebner@proxmox.com>
2019-09-10 11:38:58 +02:00
Christian Ebner
1652192f4d
src/pxar/fuse.rs: impl readlink callback for fuse
...
Signed-off-by: Christian Ebner <c.ebner@proxmox.com>
2019-09-10 11:38:48 +02:00
Christian Ebner
7eb9848ba7
src/pxar/fuse.rs: impl opendir callback for fuse
...
Signed-off-by: Christian Ebner <c.ebner@proxmox.com>
2019-09-10 11:35:13 +02:00
Christian Ebner
2c5fd378d3
src/pxar/fuse.rs: impl read callback for fuse
...
Signed-off-by: Christian Ebner <c.ebner@proxmox.com>
2019-09-10 11:34:55 +02:00
Christian Ebner
97e4db9dd5
src/pxar/fuse.rs: impl open callback for fuse
...
Signed-off-by: Christian Ebner <c.ebner@proxmox.com>
2019-09-10 11:34:18 +02:00
Christian Ebner
b00689254a
src/pxar/fuse.rs: impl lookup callback for fuse
...
The lookup call checks if the given filename is found in the directory referenced
by the i-node by calclulating the filenames hash and looking it up in the
directories goodbye table.
If found, the entries parameters are returned.
In order to be able to lookup the parent offset by a given file offset in the
readdir callback, this also stores the corresponding values in a HashMap.
Signed-off-by: Christian Ebner <c.ebner@proxmox.com>
2019-09-10 10:54:23 +02:00
Christian Ebner
d21ae955a6
src/pxar/fuse.rs: impl getattr callback for fuse
...
Signed-off-by: Christian Ebner <c.ebner@proxmox.com>
2019-09-06 12:24:14 +02:00
Christian Ebner
ec04ea81f2
src/pxar/fuse.rs: Refactor run_in_context and remove inode_to_offset and offset_to_inode
...
as their functionality is used only once so it makes more sense to keep them
inline.
Signed-off-by: Christian Ebner <c.ebner@proxmox.com>
2019-09-06 12:22:53 +02:00
Christian Ebner
8413083fc5
src/pxar/fuse.rs: Improve comments, add rustfmt skip tag and reafctor
...
Also, removes an unused println statement in the decoder callback function and
fixes a typo.
Further, use ABI compatible Option<&T> for FFI to avoid use of raw pointers.
Signed-off-by: Christian Ebner <c.ebner@proxmox.com>
2019-09-06 12:22:17 +02:00
Christian Ebner
75933d1e83
src/pxar/fuse.rs: add function to map offset to inode and vice versa
...
Signed-off-by: Christian Ebner <c.ebner@proxmox.com>
2019-09-04 06:13:59 +02:00
Christian Ebner
bcb664cb69
pxar/fuse: add pxar cli flag to set single- or multi-threaded session loop
...
Signed-off-by: Christian Ebner <c.ebner@proxmox.com>
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2019-08-23 09:43:14 +02:00
Christian Ebner
b69169e7be
src/pxar/fuse.rs: style fixups
...
Signed-off-by: Christian Ebner <c.ebner@proxmox.com>
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2019-08-23 09:37:58 +02:00
Christian Ebner
ac0b435344
src/pxar/fuse.rs: fix compiler warnings
...
Signed-off-by: Christian Ebner <c.ebner@proxmox.com>
2019-08-14 15:14:57 +02:00
Christian Ebner
41d08aa6de
src/pxar/fuse.rs: enable libfuse debug output in verbose mode
...
Signed-off-by: Christian Ebner <c.ebner@proxmox.com>
2019-08-14 08:59:15 +02:00
Christian Ebner
742e64ea0b
src/pxar/fuse.rs: cleanup callback interface and store decoder within session context
...
Signed-off-by: Christian Ebner <c.ebner@proxmox.com>
2019-08-14 08:58:44 +02:00
Christian Ebner
c50f87442c
pxar: add basic code for FUSE implementation.
...
This adds the basic code in order to create a fuse session and mount an archive.
It adds libfuse3-3 as runtime dependency and libfuse3-dev as build dependency.
Signed-off-by: Christian Ebner <c.ebner@proxmox.com>
2019-08-09 16:42:31 +02:00