Daniel J Walsh
1b4227ce66
Merge pull request #64 from giuseppe/write-use-splice-move
...
fuse-overlayfs: write uses SPLICE_MOVE|SPLICE_NONBLOCK
2019-04-08 17:33:07 -04:00
Giuseppe Scrivano
e108eee92c
fuse-overlayfs: write uses SPLICE_MOVE|SPLICE_NONBLOCK
...
don't block on writing to the pipe. It has a significant impact on
the performance.
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2019-04-08 22:12:07 +02:00
Giuseppe Scrivano
76fa1672a8
Merge pull request #63 from giuseppe/fix-ioctl
...
ioctl: return immediately with not implemented ioctls
2019-04-05 02:40:17 +02:00
Giuseppe Scrivano
e4f219a14d
ioctl: return immediately with not implemented ioctls
...
avoid to send an error response twice.
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2019-04-04 22:21:05 +02:00
Daniel J Walsh
9c7910c441
Merge pull request #61 from giuseppe/ioctl
...
fuse-overlayfs: support some ioctls
2019-04-03 17:52:11 -04:00
Giuseppe Scrivano
1f04143cdc
fuse-overlayfs: support some ioctls
...
Closes: https://github.com/containers/fuse-overlayfs/issues/59
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2019-04-03 17:58:36 +02:00
Daniel J Walsh
9b6732407c
Merge pull request #62 from giuseppe/use-sendfile-copyup
...
copyup: use sendfile(2) if available
2019-04-03 09:38:41 -04:00
Giuseppe Scrivano
65e504cda8
copyup: use sendfile(2) if available
...
attempt to use sendfile(2) before falling back to a read/write loop.
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2019-04-03 14:52:47 +02:00
Giuseppe Scrivano
eb066fba6d
Merge pull request #60 from giuseppe/use-reflinks
...
main: copyup uses reflinks if possible
2019-04-02 12:53:41 +02:00
Giuseppe Scrivano
844766d667
main: copyup uses reflinks if possible
...
Use reflinks if they are supported by the underlying file system.
On my system, using XFS and reflinks, chowning recursively a directory
passed from:
User time (seconds): 0.02
System time (seconds): 0.34
Percent of CPU this job got: 8%
Elapsed (wall clock) time (h:mm:ss or m:ss): 0:04.52
to:
User time (seconds): 0.02
System time (seconds): 0.22
Percent of CPU this job got: 17%
Elapsed (wall clock) time (h:mm:ss or m:ss): 0:01.45
the performance improvement can be higher if the directory is made of
few but bigger files.
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2019-04-02 10:19:22 +02:00
Daniel J Walsh
e79f0207a4
Merge pull request #58 from giuseppe/silent
...
fuse-overlayfs: print config settings only with --debug
2019-03-29 07:06:44 -04:00
Giuseppe Scrivano
e9ea0f758b
fuse-overlayfs.1: regenerate
...
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2019-03-29 10:23:57 +01:00
Giuseppe Scrivano
ba05f2e351
main: print configuration settings only with --debug
...
Closes: https://github.com/containers/fuse-overlayfs/issues/57
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2019-03-29 10:23:15 +01:00
Giuseppe Scrivano
a6958ce78f
Merge pull request #56 from giuseppe/uid-mapping-docs
...
docs: document the uid/gid mapping
2019-03-28 17:18:40 +01:00
Giuseppe Scrivano
597143e1f2
docs: document uidmapping and gidmapping
...
Closes: https://github.com/containers/fuse-overlayfs/issues/54
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2019-03-28 16:40:40 +01:00
Daniel J Walsh
0a9bc5b4d9
Merge pull request #55 from giuseppe/fix-rm-symlink
...
fuse-overlayfs: fix first unlink done
2019-03-28 07:03:51 -04:00
Giuseppe Scrivano
0f52165ae6
fuse-overlayfs: do not hardcode overflow ids
...
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2019-03-28 09:47:39 +01:00
Giuseppe Scrivano
3a921aa5d7
fuse-overlayfs: fix first unlink done
...
fix a regression introduced by f64f65287817fecd0 that prevents a
whiteout file to be created on the first unlink.
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2019-03-27 21:26:45 +01:00
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