WorkingTreeIterator should pass FS to submodules

Change-Id: I4b7bc6bab449b9e3aebba8170788ff9e4a04195a
Signed-off-by: Marc Strapetz <marc.strapetz@syntevo.com>
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/submodule/SubmoduleWalk.java b/org.eclipse.jgit/src/org/eclipse/jgit/submodule/SubmoduleWalk.java
index 0e4cd90..2314cf1 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/submodule/SubmoduleWalk.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/submodule/SubmoduleWalk.java
@@ -223,7 +223,8 @@
 	 */
 	public static Repository getSubmoduleRepository(final Repository parent,
 			final String path) throws IOException {
-		return getSubmoduleRepository(parent.getWorkTree(), path);
+		return getSubmoduleRepository(parent.getWorkTree(), path,
+				parent.getFS());
 	}
 
 	/**
@@ -238,6 +239,23 @@
 	 */
 	public static Repository getSubmoduleRepository(final File parent,
 			final String path) throws IOException {
+		return getSubmoduleRepository(parent, path, FS.DETECTED);
+	}
+
+	/**
+	 * Get submodule repository at path, using the specified file system
+	 * abstraction
+	 *
+	 * @param parent
+	 * @param path
+	 * @param fs
+	 *            the file system abstraction to be used
+	 * @return repository or null if repository doesn't exist
+	 * @throws IOException
+	 * @since 4.10
+	 */
+	public static Repository getSubmoduleRepository(final File parent,
+			final String path, FS fs) throws IOException {
 		File subWorkTree = new File(parent, path);
 		if (!subWorkTree.isDirectory())
 			return null;
@@ -245,7 +263,7 @@
 		try {
 			return new RepositoryBuilder() //
 					.setMustExist(true) //
-					.setFS(FS.DETECTED) //
+					.setFS(fs) //
 					.setWorkTree(workTree) //
 					.build();
 		} catch (RepositoryNotFoundException e) {
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/treewalk/WorkingTreeIterator.java b/org.eclipse.jgit/src/org/eclipse/jgit/treewalk/WorkingTreeIterator.java
index 6ad0554..8d02f90 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/treewalk/WorkingTreeIterator.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/treewalk/WorkingTreeIterator.java
@@ -341,7 +341,8 @@
 		final Repository submoduleRepo;
 		try {
 			submoduleRepo = SubmoduleWalk.getSubmoduleRepository(directory,
-					e.getName());
+					e.getName(),
+					repository != null ? repository.getFS() : FS.DETECTED);
 		} catch (IOException exception) {
 			return zeroid;
 		}