diff options
author | Robin Appelman <robin@icewind.nl> | 2024-03-18 18:58:50 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-03-18 18:58:50 +0100 |
commit | 79e9cdc46779b5ff6ceeb89a9c681d94985b464f (patch) | |
tree | 0e38a60ca1f48bc0859d9befa7a79b72da7875e9 | |
parent | 116b1769506d910d92698be900f77195428aa60a (diff) | |
parent | afb589a69b1110aeaf8e24fa7650a6813cbe3f57 (diff) | |
download | nextcloud-server-79e9cdc46779b5ff6ceeb89a9c681d94985b464f.tar.gz nextcloud-server-79e9cdc46779b5ff6ceeb89a9c681d94985b464f.zip |
Merge pull request #44279 from nextcloud/sort-submount-view
fix: ensure nested mount points are handled in the correct order
-rw-r--r-- | lib/private/Files/View.php | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/lib/private/Files/View.php b/lib/private/Files/View.php index 36d7002a269..5ad48e26cc5 100644 --- a/lib/private/Files/View.php +++ b/lib/private/Files/View.php @@ -1481,6 +1481,13 @@ class View { //add a folder for any mountpoint in this directory and add the sizes of other mountpoints to the folders $mounts = Filesystem::getMountManager()->findIn($path); + + // make sure nested mounts are sorted after their parent mounts + // otherwise doesn't propagate the etag across storage boundaries correctly + usort($mounts, function (IMountPoint $a, IMountPoint $b) { + return $a->getMountPoint() <=> $b->getMountPoint(); + }); + $dirLength = strlen($path); foreach ($mounts as $mount) { $mountPoint = $mount->getMountPoint(); |