Giuseppe Scrivano
1c490d91d8
plugins: allow to manage multiple layers with a ds
...
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2019-10-24 13:52:34 +02:00
Giuseppe Scrivano
7095cc29ef
main: fix fast_ino
...
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2019-10-21 18:41:53 +02:00
Giuseppe Scrivano
62abdcf00f
readdir: use mode from uppermost layer
...
differently than dev/ino number, use the uppermost mode found.
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2019-10-20 22:06:41 +02:00
Giuseppe Scrivano
9f6f90a6da
direct: use statx when available
...
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2019-10-20 22:06:40 +02:00
Giuseppe Scrivano
b28a23a39d
fuse-overlayfs: add plugin system
...
Add a simple plugin mechanism that will help to expand fuse-overlayfs
functionalities, in particular it allows to load data from a layer on
demand.
A plugin is loaded into fuse-overlayfs using the option:
-o plugins=path/to/plugin.so:path/to/another/plugin.so
A layer can use a plugin with the syntax:
-o lowerdir=//plugin-name/DATA-FOR-THE-PLUGIN/path
Each time a file/directory is looked up, if a plugin is registered for
a layer, the plugin is first notified about the request.
After the callback is invoked, fuse-overlayfs still expects the data
to be accessible at the specified directory.
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2019-10-20 22:06:39 +02:00
Giuseppe Scrivano
c2c2ac5b82
main: split the code in multiple files
...
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2019-10-20 19:44:20 +02:00
Giuseppe Scrivano
53c165e6bd
main: refactor to use a data store
...
this is the first step towards supporting data from lower layers
coming from other sources.
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2019-10-20 19:44:20 +02:00
Giuseppe Scrivano
e72f92bcf6
main: fix debug format string
...
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2019-10-20 19:43:23 +02:00
Daniel J Walsh
ae96c48f1a
Merge pull request #133 from giuseppe/support-no-upperdir
...
fuse-overlayfs: support running without upper layer
2019-10-20 07:06:52 -04:00
Giuseppe Scrivano
c9bbc94ab6
fuse-overlayfs: support running without upper layer
...
when there is no upper layer specified, fail every read operation with
EROFS.
Closes: https://github.com/containers/fuse-overlayfs/issues/100
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2019-10-19 21:33:35 +02:00
Daniel J Walsh
3bc0aa6427
Merge pull request #132 from giuseppe/fixes
...
main.c: reload the directory on stat
v0.6.5
2019-10-15 19:13:53 -04:00
Giuseppe Scrivano
8a5bf4bb15
tag version 0.6.5
...
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2019-10-15 12:58:05 +02:00
Giuseppe Scrivano
45c902ea87
main.c: reload the directory on stat
...
make sure the directory is reloaded so the correct number of links can
be retrieved.
Closes: https://github.com/containers/fuse-overlayfs/issues/131
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2019-10-15 12:55:55 +02:00
Giuseppe Scrivano
098d9ad79f
tag version 0.6.4
...
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
v0.6.4
2019-10-04 09:50:00 +02:00
Daniel J Walsh
504862881f
Merge pull request #129 from giuseppe/skip-whiteout-creation-if-not-needed
...
main: skip whiteout creation if not needed
2019-10-03 14:17:38 -04:00
Daniel J Walsh
a9f6140602
Merge pull request #128 from giuseppe/restore-suid-on-cacheback-write
...
writeback: restore suid mode after write
2019-10-03 14:17:18 -04:00
Daniel J Walsh
1955ff6710
Merge pull request #126 from giuseppe/invalidate-local-mode-cache
...
main: store the new mode after chmod
2019-10-03 13:54:29 -04:00
Giuseppe Scrivano
3a31451fe3
main: skip whiteout creation if not needed
...
if the file is present only on the upper layer, do not create a
whiteout when it is created. Previously it was looking only at the
parent directory.
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2019-10-03 16:11:45 +02:00
Giuseppe Scrivano
86b9cf5a83
writeback: restore suid mode after write
...
restore the inode mode if there is a writepage request that could
reset the setuid bit.
Closes: https://github.com/containers/fuse-overlayfs/issues/127
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2019-10-03 16:07:02 +02:00
Giuseppe Scrivano
163510e592
main: store the new mode after chmod
...
after a successful chmod, store the new mode for the ino.
Closes: https://github.com/containers/fuse-overlayfs/issues/124
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2019-10-02 14:22:13 +02:00
Daniel J Walsh
46c0f8e650
Merge pull request #123 from giuseppe/fix-arch-linux
...
main: fix skip whiteout deletion optimization
v0.6.3
2019-09-26 07:03:17 +02:00
Giuseppe Scrivano
206ea53b5e
tag version 0.6.3
...
Signed-off-by: Giuseppe Scrivano <giuseppe@scrivano.org>
2019-09-23 22:37:44 +02:00
Giuseppe Scrivano
614f57d8f6
main: fix skip whiteout deletion optimization
...
fix the lookup function to report also a whiteout node, instead of
NULL. This is required to correctly delete the whiteout file when it
exists.
Closes: https://github.com/containers/fuse-overlayfs/issues/122
Signed-off-by: Giuseppe Scrivano <giuseppe@scrivano.org>
2019-09-23 22:35:02 +02:00
Giuseppe Scrivano
20e8529c4e
ioctl: do not reuse fi->fh for directories
...
for directories, it points to a structure, not an open file
descriptor.
Signed-off-by: Giuseppe Scrivano <giuseppe@scrivano.org>
2019-09-23 22:34:20 +02:00
Giuseppe Scrivano
b0a9bdaa64
Merge pull request #120 from giuseppe/setattr-no-require-wronly
...
set_attrs: don't require write to S_IFREG
2019-09-18 13:27:51 +02:00
Giuseppe Scrivano
66e01c8f53
Merge pull request #121 from matpen/better-docs
...
More detailed build instructions, closes #107
2019-09-13 18:47:29 +02:00
matpen
1d83907f30
Improving README with more detailed build instructions.
2019-09-13 17:28:39 +02:00
Nathaniel Wesley Filardo
69dcdb3af2
set_attrs: don't require write to S_IFREG
...
It's perfectly possible to set attributes by being the file's owner; one
does not need write access to the contents.
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2019-09-13 15:06:14 +02:00
Daniel J Walsh
74fb3dd138
Merge pull request #118 from tylarb/set_limit_typo
...
Fix typo in set_limits
2019-09-11 09:36:54 -04:00
Tyler Ramer
4a9906739a
Fix typo in set_limits
...
- Setting and getting nofile not process limits
Authored-by: Tyler Ramer <tramer@pivotal.io>
2019-09-11 09:17:37 -04:00
Daniel J Walsh
16f39b12f5
Merge pull request #117 from giuseppe/check-for-writeback-support
...
main: check whether writeback is supported
2019-09-09 13:29:26 -04:00
Giuseppe Scrivano
ed99282f27
main: check whether writeback is supported
...
disable writeback if it is not supported by FUSE.
Closes: https://github.com/containers/fuse-overlayfs/issues/116
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2019-09-09 17:58:26 +02:00
Daniel J Walsh
67a4afe6e5
Merge pull request #115 from giuseppe/tag-0.6.2
...
configure.ac: tag 0.6.2
v0.6.2
2019-09-04 08:29:03 -04:00
Giuseppe Scrivano
a7cc43f16e
configure.ac: tag 0.6.2
...
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2019-09-03 15:53:03 +02:00
Daniel J Walsh
cb4b35e6ea
Merge pull request #113 from giuseppe/fix-ino-cache
...
[WIP] use st_dev for the inode key
2019-08-30 06:13:02 -04:00
Giuseppe Scrivano
35499daa30
main: use st_dev for the ino key
...
when creating the key for the ino, also use the source st_dev.
Closes: https://github.com/containers/fuse-overlayfs/issues/112
Signed-off-by: Giuseppe Scrivano <giuseppe@scrivano.org>
2019-08-29 23:21:44 +02:00
Giuseppe Scrivano
fc4115f5c4
main: avoid hash map lookup when possible
...
skip reading from the inodes hash table if the inode is already
known.
Signed-off-by: Giuseppe Scrivano <giuseppe@scrivano.org>
2019-08-29 23:02:54 +02:00
Daniel J Walsh
c548530b99
Merge pull request #111 from giuseppe/fix-create-unix-socket
...
correctly read inode for unix sockets
v0.6.1
2019-08-26 10:46:57 -04:00
Giuseppe Scrivano
cc7218e7c9
configure.ac: tag 0.6.1
...
Signed-off-by: Giuseppe Scrivano <giuseppe@scrivano.org>
2019-08-25 23:07:01 +02:00
Giuseppe Scrivano
7251f20c4b
main: correctly read inode for unix sockets
...
correctly read the inode when processing a UNIX socket.
regression introduced by b25bbde64dc5d06373e087d7fae6367acf1fd09e.
Closes: https://github.com/containers/fuse-overlayfs/issues/110
Signed-off-by: Giuseppe Scrivano <giuseppe@scrivano.org>
2019-08-25 23:06:32 +02:00
Daniel J Walsh
43b641d7f2
Merge pull request #109 from giuseppe/same-ino-hardlinks
...
main: introduce inodes cache
v0.6
2019-08-25 06:05:02 -04:00
Giuseppe Scrivano
68ae354567
fuse-overlayfs: tag 0.6
...
also add a NEWS file with the changes in the current version.
Closes: https://github.com/containers/fuse-overlayfs/issues/102
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2019-08-23 16:00:19 +02:00
Giuseppe Scrivano
b25bbde64d
main: introduce inodes cache
...
introduce a hash map to refer from an inode to the file paths.
A recent change where we enable FUSE writeback by default uncovered an
underlying issue in fuse-overlayfs where changes to a file with
multiple links would not be visible from the other link.
For each inode, maintain a list of nodes that refer to it, so that we
can still access it when a link is removed and more importantly we can
use the inode value with FUSE.
Closes: https://github.com/containers/fuse-overlayfs/issues/108
Closes: https://bugzilla.redhat.com/show_bug.cgi?id=1744109
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2019-08-23 15:27:12 +02:00
Daniel J Walsh
f8ba9ade20
Merge pull request #106 from giuseppe/travis-use-known-tag
...
travis: fix build issue with meson master
2019-08-21 09:01:40 -04:00
Giuseppe Scrivano
eca925cf4e
.travis: use a shallow clone
...
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2019-08-21 14:54:50 +02:00
Giuseppe Scrivano
057b009a04
travis: use a known tag for meson
...
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2019-08-21 14:53:44 +02:00
Giuseppe Scrivano
4dc60f0e15
configure.ac: tag 0.5.2
...
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
v0.5.2
2019-08-19 16:57:11 +02:00
Daniel J Walsh
89b814dc27
Merge pull request #105 from giuseppe/fix-get-xattr-directory
...
main: if the path is a dir, work on the proc path
2019-08-16 07:39:58 -04:00
Giuseppe Scrivano
9e110ad55c
main, listxattr: open the file in read only mode
...
Signed-off-by: Giuseppe Scrivano <giuseppe@scrivano.org>
2019-08-15 23:14:25 +02:00
Giuseppe Scrivano
08136d8826
main: if the path is a dir, work on the proc path
...
when reading xattr, if the path cannot be open as it is a directory,
operate on the /proc/fd/FD path.
Closes: https://github.com/containers/fuse-overlayfs/issues/104
Signed-off-by: Giuseppe Scrivano <giuseppe@scrivano.org>
2019-08-15 21:55:25 +02:00