Package: mergerfs
Version: 2.31.0-1
Severity: important
Tags: patch upstream
X-Debbugs-Cc: linu...@gmail.com
Dear Maintainer,
The https://github.com/trapexit/mergerfs/pull/878 patch released as a
part of mergerfs-2.32.3 upstream could be applied to the 2.31.0-1
version currently packaged in Debian bullseye to resolve the $subj
issue.
See https://github.com/trapexit/mergerfs/issues/877 and
https://midnight-commander.org/ticket/4226 for additional background
information.
Alternatively, please consider packaging the latest upstream release. It
contains several other fixes not related to this bug.
-- System Information:
Debian Release: 11.0
APT prefers testing-security
APT policy: (500, 'testing-security'), (500, 'testing')
Architecture: amd64 (x86_64)
Kernel: Linux 5.10.0-7-amd64 (SMP w/4 CPU threads)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8),
LANGUAGE=en_US:en
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled
Versions of packages mergerfs depends on:
ii fuse2.9.9-5
ii libc6 2.31-12
ii libfuse22.9.9-5
ii libgcc-s1 10.2.1-6
ii libstdc++6 10.2.1-6
mergerfs recommends no packages.
mergerfs suggests no packages.
-- no debconf information
Description: reset dentry buffer when rewind'ed
Merge https://github.com/trapexit/mergerfs/pull/878 from mergerfs-2.32.3
that fixes duplicate file and directory names in Midnight Commander.
Origin: upstream, https://github.com/trapexit/mergerfs/pull/878.
Bug: https://github.com/trapexit/mergerfs/issues/877.
Last-Update: 2021-06-07
--- mergerfs-2.31.0.orig/src/fuse_readdir_linux.cpp
+++ mergerfs-2.31.0/src/fuse_readdir_linux.cpp
@@ -66,6 +66,8 @@ namespace l
uint64_t namelen;
struct linux_dirent64 *d;
+fuse_dirents_reset(buf_);
+
buf = (char*)g_DENTS_BUF_POOL.alloc();
if(buf == NULL)
return -ENOMEM;
--- mergerfs-2.31.0.orig/src/fuse_readdir_plus_linux.cpp
+++ mergerfs-2.31.0/src/fuse_readdir_plus_linux.cpp
@@ -70,6 +70,8 @@ namespace l
fuse_entry_t entry;
struct linux_dirent64 *d;
+fuse_dirents_reset(buf_);
+
buf = (char*)g_DENTS_BUF_POOL.alloc();
entry.nodeid = 0;
--- mergerfs-2.31.0.orig/src/fuse_readdir_plus_posix.cpp
+++ mergerfs-2.31.0/src/fuse_readdir_plus_posix.cpp
@@ -72,6 +72,8 @@ namespace l
uint64_t namelen;
fuse_entry_t entry;
+fuse_dirents_reset(buf_);
+
entry.nodeid = 0;
entry.generation = 0;
entry.entry_valid = entry_timeout_;
--- mergerfs-2.31.0.orig/src/fuse_readdir_posix.cpp
+++ mergerfs-2.31.0/src/fuse_readdir_posix.cpp
@@ -67,6 +67,8 @@ namespace l
string fullpath;
uint64_t namelen;
+fuse_dirents_reset(buf_);
+
for(size_t i = 0, ei = branches_.size(); i != ei; i++)
{
int rv;