768 Commits

Author SHA1 Message Date
Giuseppe Scrivano
8ec68aee52
Merge pull request #53 from giuseppe/fix-lookup-if-whiteout-lower-layer
fuse-overlayfs: fix lookup with multiple layers
2019-03-08 20:06:27 +01:00
Giuseppe Scrivano
44d23bc07e
fuse-overlayfs: fix lookup with multiple layers
when looking up multiple layers and we have already found a file, do
not check if whiteouts are present in lower layers.  The lookup in the
lower layers is needed only to correctly propagate the inode number.

Closes: https://bugzilla.redhat.com/show_bug.cgi?id=1686889

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2019-03-08 18:13:55 +01:00
Daniel J Walsh
536abddd91
Merge pull request #52 from giuseppe/fix-musl-build
Fix musl build
2019-03-07 09:56:31 -05:00
Giuseppe Scrivano
f17f15a48b
build: provide replacement for TEMP_FAILURE_RETRY if not present
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2019-03-07 10:22:26 +01:00
Giuseppe Scrivano
57b1e98d69
build: provide replacement for open_by_handle_at(2) if not present
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2019-03-07 10:22:12 +01:00
Giuseppe Scrivano
40ba2786d2
build: provide replacement for error(3) if not present
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2019-03-07 10:21:20 +01:00
Daniel J Walsh
ea72572364
Merge pull request #49 from giuseppe/fix-readme-version
README.md: update fuse version
2019-02-25 16:51:07 -05:00
Giuseppe Scrivano
8349f8b5d9
README.md: update fuse version
we require FUSE 3.2.1, update the README to reflect it.

Closes: https://github.com/containers/fuse-overlayfs/issues/48

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2019-02-24 23:10:50 +01:00
Daniel J Walsh
53286d5dfa
Merge pull request #47 from giuseppe/ignore-errors-if-setxattr-not-supported
fuse-overlayfs: ignore xattrs copy errors when not supported
2019-02-22 06:35:06 -05:00
Giuseppe Scrivano
1a5ba7a3ef
fuse-overlayfs: ignore xattrs copy errors when not supported
it solves this error on copy_xattrs when the underlying file system is
overlay:

flistxattr(9, "security.selinux\0", 1048576) = 17
fgetxattr(9, "security.selinux", "system_u:object_r:container_file"..., 256) = 48
fsetxattr(10, "security.selinux", "system_u:object_r:container_file"..., 48, 0) = -1

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2019-02-22 10:37:18 +01:00
Daniel J Walsh
d76078982e
Merge pull request #45 from giuseppe/fix-leaks
fuse-overlayfs: use autocleanup functions
2019-02-18 16:53:32 -05:00
Giuseppe Scrivano
1533c9f596
fuse-overlayfs: skip whiteout if not present in lower layers
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2019-02-18 20:13:50 +01:00
Giuseppe Scrivano
130e0000e5
fuse-overlayfs: accept nosuid,nodev,exec,noexec
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2019-02-18 20:05:41 +01:00
Giuseppe Scrivano
de3727adb2
travis: exit immediately if something fails
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2019-02-18 20:05:41 +01:00
Giuseppe Scrivano
7f21f8fcf9
fuse-overlayfs: add cleanup for layers
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2019-02-17 21:16:47 +01:00
Giuseppe Scrivano
67fa787735
fuse-overlayfs: use cleanup function for initializing node
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2019-02-17 21:16:46 +01:00
Giuseppe Scrivano
f1b1e52a15
fuse-overlayfs: refactor some xattrs common code
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2019-02-17 20:44:55 +01:00
Giuseppe Scrivano
71be2a838f
.travis.yml: add tests for installing rpm packages on fuse-overlayfs
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2019-02-17 20:44:54 +01:00
Giuseppe Scrivano
f64f652878
fuse-overlayfs: drop usage of static arrays for paths
now that we are using autocleanup macros, there are no excuses for
using static arrays.

Signed-off-by: Giuseppe Scrivano <giuseppe@scrivano.org>
2019-02-17 20:44:53 +01:00
Giuseppe Scrivano
346067ab87
fuse-overlayfs: accept option "dev"
Signed-off-by: Giuseppe Scrivano <giuseppe@scrivano.org>
2019-02-17 20:44:53 +01:00
Giuseppe Scrivano
43b6b2ecf9
fuse-overlayfs: add check to readdir for the node parent
ensure the node was not moved and that its parent is the same as the
directory we are reading.

Signed-off-by: Giuseppe Scrivano <giuseppe@scrivano.org>
2019-02-17 20:44:52 +01:00
Giuseppe Scrivano
3ff2c01cbb
main: add missing debug messages
Signed-off-by: Giuseppe Scrivano <giuseppe@scrivano.org>
2019-02-17 20:44:51 +01:00
Giuseppe Scrivano
37d91db36e
fuse-overlayfs: start using GCC autocleanup
let's start using __attribute__((cleanup)), it helps to simplify
a lot of code, and hopefully avoid some bugs.

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2019-02-17 20:44:50 +01:00
Giuseppe Scrivano
090f9e11c2
main: do the unlink only after we created the temporary file
in case of failures when we open the temporary file, we don't do any
modification to the file system.

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2019-02-15 22:13:16 +01:00
Giuseppe Scrivano
cf17de5a8a
main: fix a fd leak
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2019-02-15 22:13:12 +01:00
Daniel J Walsh
027f4e60a3
Merge pull request #46 from giuseppe/fix-unlink-while-readdir
fuse-overlays: fix interaction of unlink(2) with readdir(2)
2019-02-15 13:56:12 -05:00
Giuseppe Scrivano
bbf631d046
fuse-overlays: fix interaction of unlink(2) with readdir(2)
fix an interesting interaction between unlink(2) and readdir(2) that
can confuse the cache.

If a file is unlinked before the readdir(2) is done, it is not removed
from the list generated when the directory was first opened.  Thus the
result is that readdir(2) will return the file even if it was unlinked
and moved to the work dir until the cache is released.

The fix is to skip dentries that are hidden while iterating the list.

Closes: https://github.com/containers/libpod/issues/2342

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2019-02-15 19:19:21 +01:00
Daniel J Walsh
ff65edefc7
Merge pull request #44 from giuseppe/ignore-EINVAL-on-copy-xattr
main: ignore EINVAL when copying xattrs
2019-02-12 06:27:52 -08:00
Giuseppe Scrivano
81e220147a
main: ignore EINVAL when copying xattrs
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2019-02-12 11:33:18 +01:00
Giuseppe Scrivano
60eb3bca75
Merge pull request #42 from thiell/ftruncate_mode000
setattr: use fd from fi->fh for ftruncate()
2019-02-08 08:24:51 +01:00
Stephane Thiell
a9091e4bd8 setattr: use fd from fi->fh for ftruncate() whenever possible
When a file is created with restricted permissions (like 000), ftruncate() should
still work as long as the fd is open. If fi->fh is available, use it to fix that
and avoid the call to openat() which failed in that case.
2019-02-07 16:16:45 -08:00
Giuseppe Scrivano
abc4719464
Merge pull request #43 from thiell/create_directory_memleak
create_directory: do not redeclare variable buf
2019-02-05 09:47:05 +01:00
Stephane Thiell
f0cd15ec64 create_directory: do not redeclare variable buf 2019-02-04 14:46:29 -08:00
Giuseppe Scrivano
6d269aa28e
Merge pull request #41 from giuseppe/release-0.3
fuse-overlayfs: tag release 0.3
v0.3
2019-01-15 12:53:32 +01:00
Giuseppe Scrivano
2b6de49eed
configure.ac: release 0.3
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2019-01-15 11:09:24 +01:00
Giuseppe Scrivano
ac303e91cf
man: fix man page generation from a VPATH
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2019-01-15 11:09:23 +01:00
Giuseppe Scrivano
a80f8e027d
Makefile.am: fix building from a VPATH
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2019-01-15 11:09:22 +01:00
Daniel J Walsh
6dbbd3c712
Merge pull request #39 from giuseppe/no-allow-others-when-uid-not-zero
fuse-overlayfs: use allow_other only when running with uid=0
2019-01-12 09:19:30 -05:00
Daniel J Walsh
d909f8de0b
Merge pull request #40 from giuseppe/mkdir-umask
mkdir: honor calling process umask
2019-01-09 10:12:51 -05:00
Giuseppe Scrivano
0a3665a7a0
mkdir: honor calling process umask
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2019-01-09 16:01:25 +01:00
Giuseppe Scrivano
830d634b2d
fuse-overlayfs: use allow_other only when running with uid=0
Closes: https://github.com/containers/fuse-overlayfs/issues/35

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2019-01-09 11:37:59 +01:00
Daniel J Walsh
5c9742dca9
Merge pull request #38 from giuseppe/umask-mknod
mknod: honor umask from the calling process
2019-01-07 15:37:46 -05:00
Giuseppe Scrivano
2dbd61c52e
mknod: honor umask from the calling process
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2019-01-07 15:27:34 +01:00
Daniel J Walsh
de199ddb73
Merge pull request #37 from giuseppe/correct-owner
fuse-overlayfs: create symlinks with the correct owner
2019-01-07 08:12:19 -05:00
Giuseppe Scrivano
8935bb1d8f
fuse-overlayfs: honor process umask
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2019-01-07 10:03:45 +01:00
Giuseppe Scrivano
bbc8181f59
fuse-overlayfs: create symlinks with the correct owner
Closes: https://github.com/containers/libpod/issues/2091

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2019-01-07 09:57:20 +01:00
Daniel J Walsh
623102c62d
Merge pull request #36 from giuseppe/set-rlimits
fuse-overlays: bump max open files to hard limit
2019-01-04 09:09:18 -05:00
Giuseppe Scrivano
d3729baa93
fuse-overlays: bump max open files to hard limit
Increase the soft limit for the open files to the hard limit.

Closes: https://github.com/containers/fuse-overlayfs/issues/34

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2019-01-04 13:22:06 +01:00
Giuseppe Scrivano
b27d7ebc2c
fuse-overlayfs: print diagnostics to stderr
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2019-01-04 09:14:12 +01:00
Daniel J Walsh
91bb4019eb
Merge pull request #32 from giuseppe/suid
fuse-overlayfs: set suid when running in a user namespace
2018-12-20 04:54:51 -08:00