Hello community,

here is the log from the commit of package fuse-overlayfs for openSUSE:Factory 
checked in at 2020-02-06 13:19:14
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/fuse-overlayfs (Old)
 and      /work/SRC/openSUSE:Factory/.fuse-overlayfs.new.26092 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "fuse-overlayfs"

Thu Feb  6 13:19:14 2020 rev:7 rq:769897 version:0.7.6

Changes:
--------
--- /work/SRC/openSUSE:Factory/fuse-overlayfs/fuse-overlayfs.changes    
2020-01-23 16:10:04.091605765 +0100
+++ /work/SRC/openSUSE:Factory/.fuse-overlayfs.new.26092/fuse-overlayfs.changes 
2020-02-06 13:19:19.584675216 +0100
@@ -1,0 +2,9 @@
+Tue Feb  4 08:12:04 UTC 2020 - Sascha Grunert <[email protected]>
+
+- Update to v0.7.6
+  - do not look in lower layers for the ino if there is no origin
+    xattr set
+  - attempt to use the file path if the operation on the fd fails
+    with ENXIO
+
+-------------------------------------------------------------------

Old:
----
  fuse-overlayfs-0.7.5.tar.xz

New:
----
  fuse-overlayfs-0.7.6.tar.xz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ fuse-overlayfs.spec ++++++
--- /var/tmp/diff_new_pack.joN77G/_old  2020-02-06 13:19:20.104675471 +0100
+++ /var/tmp/diff_new_pack.joN77G/_new  2020-02-06 13:19:20.108675473 +0100
@@ -17,7 +17,7 @@
 
 
 Name:           fuse-overlayfs
-Version:        0.7.5
+Version:        0.7.6
 Release:        0
 Summary:        FUSE implementation for overlayfs
 License:        GPL-3.0-only

++++++ _service ++++++
--- /var/tmp/diff_new_pack.joN77G/_old  2020-02-06 13:19:20.124675480 +0100
+++ /var/tmp/diff_new_pack.joN77G/_new  2020-02-06 13:19:20.124675480 +0100
@@ -3,8 +3,8 @@
     <param name="url">https://github.com/containers/fuse-overlayfs.git</param>
     <param name="scm">git</param>
     <param name="filename">fuse-overlayfs</param>
-    <param name="versionformat">0.7.5</param>
-    <param name="revision">v0.7.5</param>
+    <param name="versionformat">0.7.6</param>
+    <param name="revision">v0.7.6</param>
   </service>
   <service name="set_version" mode="disabled">
     <param name="basename">fuse-overlayfs</param>

++++++ fuse-overlayfs-0.7.5.tar.xz -> fuse-overlayfs-0.7.6.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fuse-overlayfs-0.7.5/.travis.yml 
new/fuse-overlayfs-0.7.6/.travis.yml
--- old/fuse-overlayfs-0.7.5/.travis.yml        2020-01-17 22:02:54.000000000 
+0100
+++ new/fuse-overlayfs-0.7.6/.travis.yml        2020-02-03 15:23:46.000000000 
+0100
@@ -1,7 +1,7 @@
 services:
   - docker
 env:
-  - GOPATH=$HOME/go GOROOT=/usr/local/go GO=/usr/local/go/bin/go
+  - GOPATH=$HOME/go GOROOT=/usr/local/go GO=/usr/local/go/bin/go 
PATH=/usr/local/go/bin:$PATH
 language: c
 sudo: required
 dist: xenial
@@ -26,13 +26,13 @@
 before_install:
   - docker pull fedora &
   - docker build -t alpine-build -f Dockerfile.alpine .
-  - (wget https://dl.google.com/go/go1.10.8.linux-amd64.tar.gz && tar xf 
go1.10.8.linux-amd64.tar.gz && sudo mv go /usr/local)
+  - (wget https://dl.google.com/go/go1.13.7.linux-amd64.tar.gz && tar xf 
go1.13.7.linux-amd64.tar.gz && sudo mv go /usr/local)
   - sudo mkdir -p /lower /upper /mnt
   - (cd /; sudo git clone https://github.com/amir73il/unionmount-testsuite.git)
   - (git clone --depth 1 git://github.com/ninja-build/ninja.git && cd ninja && 
python3.5 ./bootstrap.py && sudo cp ninja /usr/bin)
   - (git clone --depth 1 -b 0.51.1 https://github.com/mesonbuild/meson.git; cd 
meson; sudo python3.5 ./setup.py install)
   - (git clone --depth 1 https://github.com/sstephenson/bats.git; cd bats; 
sudo ./install.sh /usr/local)
-  - (go get github.com/containers/storage; cd 
$GOPATH/src/github.com/containers/storage; sed -i -e 's|^AUTOTAGS.*$|AUTOTAGS 
:= exclude_graphdriver_devicemapper exclude_graphdriver_btrfs|' Makefile; make 
GO=$GO containers-storage)
+  - ($GO get github.com/containers/storage; cd 
$GOPATH/src/github.com/containers/storage; sed -i -e 's|^AUTOTAGS.*$|AUTOTAGS 
:= exclude_graphdriver_devicemapper exclude_graphdriver_btrfs|' Makefile; make 
GO=$GO containers-storage)
   - (wget 
https://github.com/libfuse/libfuse/releases/download/fuse-3.6.2/fuse-3.6.2.tar.xz;
 tar xf fuse-3.6.2.tar.xz; cd fuse-3.6.2; mkdir build; cd build; meson .. 
--prefix /usr && ninja && sudo ninja install)
 script:
   - ./autogen.sh || travis_terminate 1;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fuse-overlayfs-0.7.5/NEWS 
new/fuse-overlayfs-0.7.6/NEWS
--- old/fuse-overlayfs-0.7.5/NEWS       2020-01-17 22:02:54.000000000 +0100
+++ new/fuse-overlayfs-0.7.6/NEWS       2020-02-03 15:23:46.000000000 +0100
@@ -1,3 +1,8 @@
+* fuse-overlayfs-0.7.6
+
+- do not look in lower layers for the ino if there is no origin xattr set.
+- attempt to use the file path if the operation on the fd fails with ENXIO.
+
 * fuse-overlayfs-0.7.5
 
 - do not expose internal xattrs through listxattr and getxattr.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fuse-overlayfs-0.7.5/configure.ac 
new/fuse-overlayfs-0.7.6/configure.ac
--- old/fuse-overlayfs-0.7.5/configure.ac       2020-01-17 22:02:54.000000000 
+0100
+++ new/fuse-overlayfs-0.7.6/configure.ac       2020-02-03 15:23:46.000000000 
+0100
@@ -1,5 +1,5 @@
 AC_PREREQ([2.69])
-AC_INIT([fuse-overlayfs], [0.7.5], [[email protected]])
+AC_INIT([fuse-overlayfs], [0.7.6], [[email protected]])
 AC_CONFIG_SRCDIR([main.c])
 AC_CONFIG_HEADERS([config.h])
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fuse-overlayfs-0.7.5/main.c 
new/fuse-overlayfs-0.7.6/main.c
--- old/fuse-overlayfs-0.7.5/main.c     2020-01-17 22:02:54.000000000 +0100
+++ new/fuse-overlayfs-0.7.6/main.c     2020-02-03 15:23:46.000000000 +0100
@@ -1,7 +1,7 @@
 /* fuse-overlayfs: Overlay Filesystem in Userspace
 
    Copyright (C) 2018 Giuseppe Scrivano <[email protected]>
-   Copyright (C) 2018-2019 Red Hat Inc.
+   Copyright (C) 2018-2020 Red Hat Inc.
    Copyright (C) 2001-2007  Miklos Szeredi <[email protected]>
 
    This program is free software: you can redistribute it and/or modify
@@ -464,6 +464,22 @@
 }
 
 static int
+set_fd_origin (int fd, const char *origin)
+{
+  cleanup_close int opq_whiteout_fd = -1;
+  size_t len = strlen (origin) + 1;
+  int ret;
+
+  ret = fsetxattr (fd, ORIGIN_XATTR, origin, len, 0);
+  if (ret < 0)
+    {
+      if (errno == ENOTSUP)
+        return 0;
+    }
+  return ret;
+}
+
+static int
 set_fd_opaque (int fd)
 {
   cleanup_close int opq_whiteout_fd = -1;
@@ -1153,6 +1169,7 @@
   mode_t mode = 0;
   char *new_name;
   struct ovl_node *ret_xchg;
+  bool has_origin = true;
   cleanup_node_init struct ovl_node *ret = NULL;
 
   ret = calloc (1, sizeof (*ret));
@@ -1233,10 +1250,13 @@
             {
               if (it->ds->statat (it, npath, &st, AT_SYMLINK_NOFOLLOW, 
STATX_TYPE|STATX_MODE|STATX_INO) == 0)
                 {
-                  ret->tmp_ino = st.st_ino;
-                  ret->tmp_dev = st.st_dev;
-                  if (mode == 0)
-                    mode = st.st_mode;
+                  if (has_origin)
+                    {
+                      ret->tmp_ino = st.st_ino;
+                      ret->tmp_dev = st.st_dev;
+                      if (mode == 0)
+                        mode = st.st_mode;
+                    }
                   ret->last_layer = it;
                 }
                 goto no_fd;
@@ -1245,10 +1265,13 @@
           /* It is an open FD, stat the file and read the origin xattrs.  */
           if (it->ds->fstat (it, fd, npath, STATX_TYPE|STATX_MODE|STATX_INO, 
&st) == 0)
             {
-              ret->tmp_ino = st.st_ino;
-              ret->tmp_dev = st.st_dev;
-              if (mode == 0)
-                mode = st.st_mode;
+              if (has_origin)
+                {
+                  ret->tmp_ino = st.st_ino;
+                  ret->tmp_dev = st.st_dev;
+                  if (mode == 0)
+                    mode = st.st_mode;
+                }
               ret->last_layer = it;
             }
 
@@ -1292,7 +1315,9 @@
 
           /* If an origin is specified, use it for the next layer lookup.  */
           s = safe_read_xattr (&origin, fd, ORIGIN_XATTR, PATH_MAX);
-          if (s > 0)
+          if (s <= 0)
+            has_origin = false;
+          else
             {
               free (npath);
               npath = origin;
@@ -2692,6 +2717,9 @@
   if (ret < 0)
     goto exit;
 
+  if (set_fd_origin (dfd, node->path) < 0)
+    goto exit;
+
   /* Finally, move the file to its destination.  */
   ret = renameat (lo->workdir_fd, wd_tmp_file_name, get_upper_layer (lo)->fd, 
node->path);
   if (ret < 0)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fuse-overlayfs-0.7.5/utils.c 
new/fuse-overlayfs-0.7.6/utils.c
--- old/fuse-overlayfs-0.7.5/utils.c    2020-01-17 22:02:54.000000000 +0100
+++ new/fuse-overlayfs-0.7.6/utils.c    2020-02-03 15:23:46.000000000 +0100
@@ -146,7 +146,7 @@
   out[0] = '\0';
 
   *fd = l->ds->openat (l, path, O_NONBLOCK|O_NOFOLLOW|flags, 0755);
-  if (*fd < 0 && (errno == ELOOP || errno == EISDIR))
+  if (*fd < 0 && (errno == ELOOP || errno == EISDIR || errno == ENXIO))
     {
       strconcat3 (out, PATH_MAX, l->path, "/", path);
       return 0;


Reply via email to