From db18c1df6214e5a91788140de4d3076949bff45c Mon Sep 17 00:00:00 2001 From: Vexatos Date: Fri, 16 Feb 2018 00:48:56 +0100 Subject: [PATCH] Only change date of directory modification if it actually changed. (cherry picked from commit c463df0) --- src/main/scala/li/cil/oc/server/fs/Buffered.scala | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/main/scala/li/cil/oc/server/fs/Buffered.scala b/src/main/scala/li/cil/oc/server/fs/Buffered.scala index 0c1ec256a..5c26bcbbd 100644 --- a/src/main/scala/li/cil/oc/server/fs/Buffered.scala +++ b/src/main/scala/li/cil/oc/server/fs/Buffered.scala @@ -88,13 +88,14 @@ trait Buffered extends OutputStreamFileSystem { } deletions.clear() - def recurse(path: String) { + def recurse(path: String):Boolean = { val directory = new io.File(fileRoot, path) directory.mkdirs() + var dirChanged = false for (child <- list(path)) { val childPath = path + child if (isDirectory(childPath)) - recurse(childPath) + dirChanged = recurse(childPath) || dirChanged else { val childFile = new io.File(fileRoot, childPath) val time = lastModified(childPath) @@ -107,10 +108,14 @@ trait Buffered extends OutputStreamFileSystem { out.close() in.close() childFile.setLastModified(time) + dirChanged = true } } } - directory.setLastModified(lastModified(path)) + if (dirChanged) { + directory.setLastModified(lastModified(path)) + true + } else false } if (list("") == null || list("").isEmpty) { fileRoot.delete()