Hello community,

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

Package is "fuse-overlayfs"

Thu Mar 19 19:45:45 2020 rev:10 rq:785987 version:0.7.8

Changes:
--------
--- /work/SRC/openSUSE:Factory/fuse-overlayfs/fuse-overlayfs.changes    
2020-03-06 21:26:06.437509434 +0100
+++ /work/SRC/openSUSE:Factory/.fuse-overlayfs.new.3160/fuse-overlayfs.changes  
2020-03-19 19:49:25.792153998 +0100
@@ -1,0 +2,9 @@
+Tue Mar 17 16:04:37 UTC 2020 - Sascha Grunert <[email protected]>
+
+- Update to v0.7.8
+  - report correctly the number of links for a directory also for
+    subsequent stat calls
+  - stop looking up the ino in the lower layers if the file could
+    not be opened
+
+-------------------------------------------------------------------

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

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

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

Other differences:
------------------
++++++ fuse-overlayfs.spec ++++++
--- /var/tmp/diff_new_pack.9xBiDI/_old  2020-03-19 19:49:27.656155074 +0100
+++ /var/tmp/diff_new_pack.9xBiDI/_new  2020-03-19 19:49:27.696155097 +0100
@@ -17,7 +17,7 @@
 
 
 Name:           fuse-overlayfs
-Version:        0.7.7
+Version:        0.7.8
 Release:        0
 Summary:        FUSE implementation for overlayfs
 License:        GPL-3.0-only

++++++ _service ++++++
--- /var/tmp/diff_new_pack.9xBiDI/_old  2020-03-19 19:49:28.076155316 +0100
+++ /var/tmp/diff_new_pack.9xBiDI/_new  2020-03-19 19:49:28.112155337 +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.7</param>
-    <param name="revision">v0.7.7</param>
+    <param name="versionformat">0.7.8</param>
+    <param name="revision">v0.7.8</param>
   </service>
   <service name="set_version" mode="disabled">
     <param name="basename">fuse-overlayfs</param>

++++++ fuse-overlayfs-0.7.7.tar.xz -> fuse-overlayfs-0.7.8.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fuse-overlayfs-0.7.7/NEWS 
new/fuse-overlayfs-0.7.8/NEWS
--- old/fuse-overlayfs-0.7.7/NEWS       2020-03-03 16:50:17.000000000 +0100
+++ new/fuse-overlayfs-0.7.8/NEWS       2020-03-17 12:27:58.000000000 +0100
@@ -1,3 +1,8 @@
+* fuse-overlayfs-0.7.8
+
+- report correctly the number of links for a directory also for subsequent 
stat calls.
+- stop looking up the ino in the lower layers if the file could not be opened.
+
 * fuse-overlayfs-0.7.7
 
 - make sure the destination is deleted before doing a rename(2).  It prevents 
a left
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fuse-overlayfs-0.7.7/configure.ac 
new/fuse-overlayfs-0.7.8/configure.ac
--- old/fuse-overlayfs-0.7.7/configure.ac       2020-03-03 16:50:17.000000000 
+0100
+++ new/fuse-overlayfs-0.7.8/configure.ac       2020-03-17 12:27:58.000000000 
+0100
@@ -1,5 +1,5 @@
 AC_PREREQ([2.69])
-AC_INIT([fuse-overlayfs], [0.7.7], [[email protected]])
+AC_INIT([fuse-overlayfs], [0.7.8], [[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.7/fuse-overlayfs.h 
new/fuse-overlayfs-0.7.8/fuse-overlayfs.h
--- old/fuse-overlayfs-0.7.7/fuse-overlayfs.h   2020-03-03 16:50:17.000000000 
+0100
+++ new/fuse-overlayfs-0.7.8/fuse-overlayfs.h   2020-03-17 12:27:58.000000000 
+0100
@@ -33,7 +33,6 @@
   dev_t dev;
   int lookups;
   mode_t mode;
-  int nlinks;
 };
 
 struct ovl_node
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fuse-overlayfs-0.7.7/main.c 
new/fuse-overlayfs-0.7.8/main.c
--- old/fuse-overlayfs-0.7.7/main.c     2020-03-03 16:50:17.000000000 +0100
+++ new/fuse-overlayfs-0.7.8/main.c     2020-03-17 12:27:58.000000000 +0100
@@ -690,8 +690,8 @@
     ret = stat (path, st);
   else if (node->hidden)
     ret = fstatat (node_dirfd (node), node->path, st, AT_SYMLINK_NOFOLLOW);
-    else
-      ret = l->ds->statat (l, node->path, st, AT_SYMLINK_NOFOLLOW, 
STATX_BASIC_STATS);
+  else
+    ret = l->ds->statat (l, node->path, st, AT_SYMLINK_NOFOLLOW, 
STATX_BASIC_STATS);
 
   if (ret < 0)
     return ret;
@@ -701,7 +701,7 @@
 
   st->st_ino = node->tmp_ino;
   st->st_dev = node->tmp_dev;
-  if (ret == 0 && node_dirp (node) && node->ino->nlinks <= 0)
+  if (ret == 0 && node_dirp (node))
     {
       struct ovl_node *it;
 
@@ -712,7 +712,6 @@
           if (node_dirp (it))
             st->st_nlink++;
         }
-      node->ino->nlinks = st->st_nlink;
     }
 
   return ret;
@@ -1259,7 +1258,8 @@
                     }
                   ret->last_layer = it;
                 }
-                goto no_fd;
+              has_origin = false;
+              goto no_fd;
             }
 
           /* It is an open FD, stat the file and read the origin xattrs.  */
@@ -1276,7 +1276,10 @@
             }
 
           if (stat_only)
-            goto no_fd;
+            {
+              has_origin = false;
+              goto no_fd;
+            }
 
           s = safe_read_xattr (&val, fd, PRIVILEGED_ORIGIN_XATTR, PATH_MAX);
           if (s > 0)
@@ -1347,19 +1350,13 @@
     {
       if (hash_lookup (prev_parent->children, item) == item)
         hash_delete (prev_parent->children, item);
-      if (is_dir)
-        prev_parent->ino->nlinks--;
     }
 
   if (replace)
     {
       old = hash_delete (parent->children, item);
       if (old)
-        {
-          if (node_dirp (old))
-            parent->ino->nlinks--;
-          node_free (old);
-        }
+        node_free (old);
     }
 
   ret = hash_insert_if_absent (parent->children, item, (const void **) &old);
@@ -1376,8 +1373,6 @@
     }
 
   item->parent = parent;
-  if (is_dir)
-    parent->ino->nlinks++;
 
   return item;
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fuse-overlayfs-0.7.7/tests/fedora-installs.sh 
new/fuse-overlayfs-0.7.8/tests/fedora-installs.sh
--- old/fuse-overlayfs-0.7.7/tests/fedora-installs.sh   2020-03-03 
16:50:17.000000000 +0100
+++ new/fuse-overlayfs-0.7.8/tests/fedora-installs.sh   2020-03-17 
12:27:58.000000000 +0100
@@ -145,3 +145,27 @@
 ls -l merged/b
 
 test -e merged/b/test
+
+#### Correct number of directory nlink
+
+umount merged
+
+rm -rf lower upper workdir merged
+mkdir lower upper workdir merged
+mkdir lower/a lower/a/1 lower/a/2 lower/a/3
+
+fuse-overlayfs -o lowerdir=lower,upperdir=upper,workdir=workdir merged
+
+test $(stat -c %h merged/a) = 5
+
+mkdir merged/a/4
+
+test $(stat -c %h merged/a) = 6
+
+rm -rf merged/a/4
+
+test $(stat -c %h merged/a) = 5
+
+rm -rf merged/a/3
+
+test $(stat -c %h merged/a) = 4


Reply via email to