diff --git a/Documentation/config-gerrit.txt b/Documentation/config-gerrit.txt
index 97bc661..acad5e2 100644
--- a/Documentation/config-gerrit.txt
+++ b/Documentation/config-gerrit.txt
@@ -6463,10 +6463,19 @@
 system-wide and user-global Git configuration for its runtime JGit
 configuration.
 
+[NOTE]
+When using a shared filesystem, such as NFS, the JGit settings need
+to be adjusted for being tolerant to the filesystem attributes caching.
+The example below shows a typical setting with an NFS v4 mount
+with default caching settings.
+
 Sample `etc/jgit.config` file:
 ----
 [core]
-  trustFolderStat = false
+    supportsAtomicFileCreation = false
+    trustFolderStat = false
+    trustLooseRefStat = after_open
+    trustPackedRefsStat = after_open
 ----
 
 [[jgit-gc]]
diff --git a/java/com/google/gerrit/server/git/GarbageCollectionLogFile.java b/java/com/google/gerrit/server/git/GarbageCollectionLogFile.java
index b711708..19f7965 100644
--- a/java/com/google/gerrit/server/git/GarbageCollectionLogFile.java
+++ b/java/com/google/gerrit/server/git/GarbageCollectionLogFile.java
@@ -21,6 +21,7 @@
 import com.google.gerrit.server.util.SystemLog;
 import com.google.inject.Inject;
 import java.nio.file.Path;
+import org.apache.log4j.Appender;
 import org.apache.log4j.LogManager;
 import org.apache.log4j.Logger;
 import org.apache.log4j.PatternLayout;
@@ -46,19 +47,19 @@
   }
 
   private static void initLogSystem(Path logdir, boolean rotate) {
-    initGcLogger(logdir, rotate, getLogger(GarbageCollection.class));
-    initGcLogger(logdir, rotate, getLogger(GarbageCollectionRunner.class));
+    Appender appender =
+        SystemLog.createAppender(logdir, LOG_NAME, new PatternLayout("[%d] %-5p %x: %m%n"), rotate);
+    initGcLogger(getLogger(GarbageCollection.class), appender);
+    initGcLogger(getLogger(GarbageCollectionRunner.class), appender);
   }
 
   private static Logger getLogger(Class<?> clazz) {
     return LogManager.getLogger(Platform.getBackend(clazz.getName()).getLoggerName());
   }
 
-  private static void initGcLogger(Path logdir, boolean rotate, Logger gcLogger) {
+  private static void initGcLogger(Logger gcLogger, Appender appender) {
     gcLogger.removeAllAppenders();
-    gcLogger.addAppender(
-        SystemLog.createAppender(
-            logdir, LOG_NAME, new PatternLayout("[%d] %-5p %x: %m%n"), rotate));
+    gcLogger.addAppender(appender);
     gcLogger.setAdditivity(false);
   }
 }
