Rename FilesystemUtils to NativePosixFiles.

This helps avoid confusion with File*S*ystemUtils, which differs in only the case of a character but is a completely different class.

--
MOS_MIGRATED_REVID=113054116
diff --git a/src/main/java/com/google/devtools/build/lib/sandbox/LinuxSandboxedStrategy.java b/src/main/java/com/google/devtools/build/lib/sandbox/LinuxSandboxedStrategy.java
index 132b457..b157449 100644
--- a/src/main/java/com/google/devtools/build/lib/sandbox/LinuxSandboxedStrategy.java
+++ b/src/main/java/com/google/devtools/build/lib/sandbox/LinuxSandboxedStrategy.java
@@ -38,7 +38,7 @@
 import com.google.devtools.build.lib.rules.fileset.FilesetActionContext;
 import com.google.devtools.build.lib.rules.test.TestRunnerAction;
 import com.google.devtools.build.lib.standalone.StandaloneSpawnStrategy;
-import com.google.devtools.build.lib.unix.FilesystemUtils;
+import com.google.devtools.build.lib.unix.NativePosixFiles;
 import com.google.devtools.build.lib.util.Preconditions;
 import com.google.devtools.build.lib.util.io.FileOutErr;
 import com.google.devtools.build.lib.vfs.FileSystem;
@@ -300,13 +300,13 @@
     mounts.put(fs.getPath("/bin"), fs.getPath("/bin"));
     mounts.put(fs.getPath("/sbin"), fs.getPath("/sbin"));
     mounts.put(fs.getPath("/etc"), fs.getPath("/etc"));
-    for (String entry : FilesystemUtils.readdir("/")) {
+    for (String entry : NativePosixFiles.readdir("/")) {
       if (entry.startsWith("lib")) {
         Path libDir = fs.getRootDirectory().getRelative(entry);
         mounts.put(libDir, libDir);
       }
     }
-    for (String entry : FilesystemUtils.readdir("/usr")) {
+    for (String entry : NativePosixFiles.readdir("/usr")) {
       if (!entry.equals("local")) {
         Path usrDir = fs.getPath("/usr").getRelative(entry);
         mounts.put(usrDir, usrDir);
diff --git a/src/main/java/com/google/devtools/build/lib/server/RPCServer.java b/src/main/java/com/google/devtools/build/lib/server/RPCServer.java
index c929118..36119c6 100644
--- a/src/main/java/com/google/devtools/build/lib/server/RPCServer.java
+++ b/src/main/java/com/google/devtools/build/lib/server/RPCServer.java
@@ -21,10 +21,10 @@
 import com.google.common.io.ByteStreams;
 import com.google.devtools.build.lib.server.RPCService.UnknownCommandException;
 import com.google.devtools.build.lib.server.signal.InterruptSignalHandler;
-import com.google.devtools.build.lib.unix.FilesystemUtils;
 import com.google.devtools.build.lib.unix.LocalClientSocket;
 import com.google.devtools.build.lib.unix.LocalServerSocket;
 import com.google.devtools.build.lib.unix.LocalSocketAddress;
+import com.google.devtools.build.lib.unix.NativePosixFiles;
 import com.google.devtools.build.lib.util.Clock;
 import com.google.devtools.build.lib.util.OsUtils;
 import com.google.devtools.build.lib.util.ThreadUtils;
@@ -381,7 +381,7 @@
 
     LocalServerSocket serverSocket = new LocalServerSocket();
     serverSocket.bind(new LocalSocketAddress(socketFile.getPathFile()));
-    FilesystemUtils.chmod(socketFile.getPathFile(), 0600);  // Lock it down.
+    NativePosixFiles.chmod(socketFile.getPathFile(), 0600);  // Lock it down.
     serverSocket.listen(/*backlog=*/50);
     return serverSocket;
   }
diff --git a/src/main/java/com/google/devtools/build/lib/unix/FilesystemUtils.java b/src/main/java/com/google/devtools/build/lib/unix/NativePosixFiles.java
similarity index 97%
rename from src/main/java/com/google/devtools/build/lib/unix/FilesystemUtils.java
rename to src/main/java/com/google/devtools/build/lib/unix/NativePosixFiles.java
index 55653e5..215be3b 100644
--- a/src/main/java/com/google/devtools/build/lib/unix/FilesystemUtils.java
+++ b/src/main/java/com/google/devtools/build/lib/unix/NativePosixFiles.java
@@ -30,9 +30,9 @@
  * SDK. Exception messages are selected to be consistent with those generated
  * by the java.io package where appropriate--see package javadoc for details.
  */
-public final class FilesystemUtils {
+public final class NativePosixFiles {
 
-  private FilesystemUtils() {}
+  private NativePosixFiles() {}
 
   /**
    * Returns true iff the file identified by 'path' is a symbolic link. Has
@@ -107,10 +107,10 @@
    * @throws IOException if the chmod() syscall failed.
    */
   public static void chmod(File path, int mode) throws IOException {
-    int mask = FileStatus.S_ISUID |
-               FileStatus.S_ISGID |
-               FileStatus.S_ISVTX |
-               FileStatus.S_IRWXA;
+    int mask = FileStatus.S_ISUID
+               | FileStatus.S_ISGID
+               | FileStatus.S_ISVTX
+               | FileStatus.S_IRWXA;
     chmod(path.toString(), mode & mask);
   }
 
@@ -128,9 +128,9 @@
           // wait (if necessary) until the logging system is initialized
           synchronized (LogManager.getLogManager()) {}
           Logger.getLogger("com.google.devtools.build.lib.unix.FilesystemUtils").log(Level.FINE,
-              "WARNING: Default character set is not latin1; java.io.File and " +
-              "com.google.devtools.build.lib.unix.FilesystemUtils will represent some filenames " +
-              "differently.");
+              "WARNING: Default character set is not latin1; java.io.File and "
+              + "com.google.devtools.build.lib.unix.FilesystemUtils will represent some filenames "
+              + "differently.");
         }
       }.start();
     }
diff --git a/src/main/java/com/google/devtools/build/lib/vfs/UnixFileSystem.java b/src/main/java/com/google/devtools/build/lib/vfs/UnixFileSystem.java
index bc27e2b..c8854db 100644
--- a/src/main/java/com/google/devtools/build/lib/vfs/UnixFileSystem.java
+++ b/src/main/java/com/google/devtools/build/lib/vfs/UnixFileSystem.java
@@ -21,9 +21,9 @@
 import com.google.devtools.build.lib.profiler.Profiler;
 import com.google.devtools.build.lib.profiler.ProfilerTask;
 import com.google.devtools.build.lib.unix.ErrnoFileStatus;
-import com.google.devtools.build.lib.unix.FilesystemUtils;
-import com.google.devtools.build.lib.unix.FilesystemUtils.Dirents;
-import com.google.devtools.build.lib.unix.FilesystemUtils.ReadTypes;
+import com.google.devtools.build.lib.unix.NativePosixFiles;
+import com.google.devtools.build.lib.unix.NativePosixFiles.Dirents;
+import com.google.devtools.build.lib.unix.NativePosixFiles.ReadTypes;
 import com.google.devtools.build.lib.util.Preconditions;
 
 import java.io.IOException;
@@ -160,7 +160,7 @@
     String[] entries;
     long startTime = Profiler.nanoTimeMaybe();
     try {
-      entries = FilesystemUtils.readdir(name);
+      entries = NativePosixFiles.readdir(name);
     } finally {
       profiler.logSimpleTask(startTime, ProfilerTask.VFS_DIR, name);
     }
@@ -181,7 +181,7 @@
   }
 
   /**
-   * Converts from {@link com.google.devtools.build.lib.unix.FilesystemUtils.Dirents.Type} to
+   * Converts from {@link NativePosixFiles.Dirents.Type} to
    * {@link com.google.devtools.build.lib.vfs.Dirent.Type}.
    */
   private static Dirent.Type convertToDirentType(Dirents.Type type) {
@@ -204,7 +204,7 @@
     String name = path.getPathString();
     long startTime = Profiler.nanoTimeMaybe();
     try {
-      Dirents unixDirents = FilesystemUtils.readdir(name,
+      Dirents unixDirents = NativePosixFiles.readdir(name,
           followSymlinks ? ReadTypes.FOLLOW : ReadTypes.NOFOLLOW);
       Preconditions.checkState(unixDirents.hasTypes());
       List<Dirent> dirents = Lists.newArrayListWithCapacity(unixDirents.size());
@@ -229,8 +229,8 @@
     long startTime = Profiler.nanoTimeMaybe();
     try {
       return new UnixFileStatus(followSymlinks
-                                      ? FilesystemUtils.stat(name)
-                                      : FilesystemUtils.lstat(name));
+                                      ? NativePosixFiles.stat(name)
+                                      : NativePosixFiles.lstat(name));
     } finally {
       profiler.logSimpleTask(startTime, ProfilerTask.VFS_STAT, name);
     }
@@ -245,8 +245,8 @@
     long startTime = Profiler.nanoTimeMaybe();
     try {
       ErrnoFileStatus stat = followSymlinks
-          ? FilesystemUtils.errnoStat(name)
-          : FilesystemUtils.errnoLstat(name);
+          ? NativePosixFiles.errnoStat(name)
+          : NativePosixFiles.errnoLstat(name);
       return stat.hasError() ? null : new UnixFileStatus(stat);
     } finally {
       profiler.logSimpleTask(startTime, ProfilerTask.VFS_STAT, name);
@@ -268,8 +268,8 @@
     long startTime = Profiler.nanoTimeMaybe();
     try {
       ErrnoFileStatus stat = followSymlinks
-          ? FilesystemUtils.errnoStat(name)
-          : FilesystemUtils.errnoLstat(name);
+          ? NativePosixFiles.errnoStat(name)
+          : NativePosixFiles.errnoLstat(name);
       if (!stat.hasError()) {
         return new UnixFileStatus(stat);
       }
@@ -315,7 +315,7 @@
     synchronized (path) {
       int oldMode = statInternal(path, true).getPermissions();
       int newMode = add ? (oldMode | permissionBits) : (oldMode & ~permissionBits);
-      FilesystemUtils.chmod(path.toString(), newMode);
+      NativePosixFiles.chmod(path.toString(), newMode);
     }
   }
 
@@ -337,7 +337,7 @@
   @Override
   protected void chmod(Path path, int mode) throws IOException {
     synchronized (path) {
-      FilesystemUtils.chmod(path.toString(), mode);
+      NativePosixFiles.chmod(path.toString(), mode);
     }
   }
 
@@ -356,7 +356,7 @@
     synchronized (path) {
       // Note: UNIX mkdir(2), FilesystemUtils.mkdir() and createDirectory all
       // have different ways of representing failure!
-      if (FilesystemUtils.mkdir(path.toString(), 0777)) {
+      if (NativePosixFiles.mkdir(path.toString(), 0777)) {
         return true; // successfully created
       }
 
@@ -375,13 +375,13 @@
     SymlinkImplementation strategy = computeSymlinkImplementation(linkPath, targetFragment);
     switch (strategy) {
       case HARDLINK:
-        FilesystemUtils.link(targetFragment.toString(), linkPath.toString());
+        NativePosixFiles.link(targetFragment.toString(), linkPath.toString());
         break;
 
       case JUNCTION:  // Junctions are emulated on Linux with symlinks, fall through
       case SYMLINK:
         synchronized (linkPath) {
-          FilesystemUtils.symlink(targetFragment.toString(), linkPath.toString());
+          NativePosixFiles.symlink(targetFragment.toString(), linkPath.toString());
         }
         break;
 
@@ -506,7 +506,7 @@
     String name = path.toString();
     long startTime = Profiler.nanoTimeMaybe();
     try {
-      return new PathFragment(FilesystemUtils.readlink(name));
+      return new PathFragment(NativePosixFiles.readlink(name));
     } catch (IOException e) {
       // EINVAL => not a symbolic link.  Anything else is a real error.
       throw e.getMessage().endsWith("(Invalid argument)") ? new NotASymlinkException(path) : e;
@@ -518,7 +518,7 @@
   @Override
   protected void renameTo(Path sourcePath, Path targetPath) throws IOException {
     synchronized (sourcePath) {
-      FilesystemUtils.rename(sourcePath.toString(), targetPath.toString());
+      NativePosixFiles.rename(sourcePath.toString(), targetPath.toString());
     }
   }
 
@@ -533,7 +533,7 @@
     long startTime = Profiler.nanoTimeMaybe();
     synchronized (path) {
       try {
-        return FilesystemUtils.remove(name);
+        return NativePosixFiles.remove(name);
       } finally {
         profiler.logSimpleTask(startTime, ProfilerTask.VFS_DELETE, name);
       }
@@ -549,11 +549,11 @@
   protected void setLastModifiedTime(Path path, long newTime) throws IOException {
     synchronized (path) {
       if (newTime == -1L) { // "now"
-        FilesystemUtils.utime(path.toString(), true, 0);
+        NativePosixFiles.utime(path.toString(), true, 0);
       } else {
         // newTime > MAX_INT => -ve unixTime
         int unixTime = (int) (newTime / 1000);
-        FilesystemUtils.utime(path.toString(), false, unixTime);
+        NativePosixFiles.utime(path.toString(), false, unixTime);
       }
     }
   }
@@ -563,7 +563,7 @@
     String pathName = path.toString();
     long startTime = Profiler.nanoTimeMaybe();
     try {
-      return FilesystemUtils.getxattr(pathName, name);
+      return NativePosixFiles.getxattr(pathName, name);
     } catch (UnsupportedOperationException e) {
       // getxattr() syscall is not supported by the underlying filesystem (it returned ENOTSUP).
       // Per method contract, treat this as ENODATA.
@@ -578,7 +578,7 @@
     String name = path.toString();
     long startTime = Profiler.nanoTimeMaybe();
     try {
-      return FilesystemUtils.md5sum(name).asBytes();
+      return NativePosixFiles.md5sum(name).asBytes();
     } finally {
       profiler.logSimpleTask(startTime, ProfilerTask.VFS_MD5, name);
     }
diff --git a/src/main/native/unix_jni.cc b/src/main/native/unix_jni.cc
index b59afa4..fb70370 100644
--- a/src/main/native/unix_jni.cc
+++ b/src/main/native/unix_jni.cc
@@ -236,7 +236,7 @@
 // into a separate source file, fsutils.cc.
 
 extern "C" JNIEXPORT jstring JNICALL
-Java_com_google_devtools_build_lib_unix_FilesystemUtils_readlink(JNIEnv *env,
+Java_com_google_devtools_build_lib_unix_NativePosixFiles_readlink(JNIEnv *env,
                                                      jclass clazz,
                                                      jstring path) {
   const char *path_chars = GetStringLatin1Chars(env, path);
@@ -252,7 +252,7 @@
 }
 
 extern "C" JNIEXPORT void JNICALL
-Java_com_google_devtools_build_lib_unix_FilesystemUtils_chmod(JNIEnv *env,
+Java_com_google_devtools_build_lib_unix_NativePosixFiles_chmod(JNIEnv *env,
                                                   jclass clazz,
                                                   jstring path,
                                                   jint mode) {
@@ -277,7 +277,7 @@
 }
 
 extern "C" JNIEXPORT void JNICALL
-Java_com_google_devtools_build_lib_unix_FilesystemUtils_link(JNIEnv *env,
+Java_com_google_devtools_build_lib_unix_NativePosixFiles_link(JNIEnv *env,
                                                  jclass clazz,
                                                  jstring oldpath,
                                                  jstring newpath) {
@@ -285,7 +285,7 @@
 }
 
 extern "C" JNIEXPORT void JNICALL
-Java_com_google_devtools_build_lib_unix_FilesystemUtils_symlink(JNIEnv *env,
+Java_com_google_devtools_build_lib_unix_NativePosixFiles_symlink(JNIEnv *env,
                                                     jclass clazz,
                                                     jstring oldpath,
                                                     jstring newpath) {
@@ -405,63 +405,63 @@
 }
 
 /*
- * Class:     com.google.devtools.build.lib.unix.FilesystemUtils
+ * Class:     com.google.devtools.build.lib.unix.NativePosixFiles
  * Method:    stat
  * Signature: (Ljava/lang/String;)Lcom/google/devtools/build/lib/unix/FileStatus;
  * Throws:    java.io.IOException
  */
 extern "C" JNIEXPORT jobject JNICALL
-Java_com_google_devtools_build_lib_unix_FilesystemUtils_stat(JNIEnv *env,
+Java_com_google_devtools_build_lib_unix_NativePosixFiles_stat(JNIEnv *env,
                                                  jclass clazz,
                                                  jstring path) {
   return ::StatCommon(env, path, portable_stat, true);
 }
 
 /*
- * Class:     com.google.devtools.build.lib.unix.FilesystemUtils
+ * Class:     com.google.devtools.build.lib.unix.NativePosixFiles
  * Method:    lstat
  * Signature: (Ljava/lang/String;)Lcom/google/devtools/build/lib/unix/FileStatus;
  * Throws:    java.io.IOException
  */
 extern "C" JNIEXPORT jobject JNICALL
-Java_com_google_devtools_build_lib_unix_FilesystemUtils_lstat(JNIEnv *env,
+Java_com_google_devtools_build_lib_unix_NativePosixFiles_lstat(JNIEnv *env,
                                                   jclass clazz,
                                                   jstring path) {
   return ::StatCommon(env, path, portable_lstat, true);
 }
 
 /*
- * Class:     com.google.devtools.build.lib.unix.FilesystemUtils
+ * Class:     com.google.devtools.build.lib.unix.NativePosixFiles
  * Method:    statNullable
  * Signature: (Ljava/lang/String;)Lcom/google/devtools/build/lib/unix/FileStatus;
  */
 extern "C" JNIEXPORT jobject JNICALL
-Java_com_google_devtools_build_lib_unix_FilesystemUtils_errnoStat(JNIEnv *env,
+Java_com_google_devtools_build_lib_unix_NativePosixFiles_errnoStat(JNIEnv *env,
                                                       jclass clazz,
                                                       jstring path) {
   return ::StatCommon(env, path, portable_stat, false);
 }
 
 /*
- * Class:     com.google.devtools.build.lib.unix.FilesystemUtils
+ * Class:     com.google.devtools.build.lib.unix.NativePosixFiles
  * Method:    lstatNullable
  * Signature: (Ljava/lang/String;)Lcom/google/devtools/build/lib/unix/FileStatus;
  */
 extern "C" JNIEXPORT jobject JNICALL
-Java_com_google_devtools_build_lib_unix_FilesystemUtils_errnoLstat(JNIEnv *env,
+Java_com_google_devtools_build_lib_unix_NativePosixFiles_errnoLstat(JNIEnv *env,
                                                        jclass clazz,
                                                        jstring path) {
   return ::StatCommon(env, path, portable_lstat, false);
 }
 
 /*
- * Class:     com.google.devtools.build.lib.unix.FilesystemUtils
+ * Class:     com.google.devtools.build.lib.unix.NativePosixFiles
  * Method:    utime
  * Signature: (Ljava/lang/String;ZII)V
  * Throws:    java.io.IOException
  */
 extern "C" JNIEXPORT void JNICALL
-Java_com_google_devtools_build_lib_unix_FilesystemUtils_utime(JNIEnv *env,
+Java_com_google_devtools_build_lib_unix_NativePosixFiles_utime(JNIEnv *env,
                                                   jclass clazz,
                                                   jstring path,
                                                   jboolean now,
@@ -486,25 +486,25 @@
 }
 
 /*
- * Class:     com.google.devtools.build.lib.unix.FilesystemUtils
+ * Class:     com.google.devtools.build.lib.unix.NativePosixFiles
  * Method:    umask
  * Signature: (I)I
  */
 extern "C" JNIEXPORT jint JNICALL
-Java_com_google_devtools_build_lib_unix_FilesystemUtils_umask(JNIEnv *env,
+Java_com_google_devtools_build_lib_unix_NativePosixFiles_umask(JNIEnv *env,
                                                   jclass clazz,
                                                   jint new_umask) {
   return ::umask(new_umask);
 }
 
 /*
- * Class:     com.google.devtools.build.lib.unix.FilesystemUtils
+ * Class:     com.google.devtools.build.lib.unix.NativePosixFiles
  * Method:    mkdir
  * Signature: (Ljava/lang/String;I)Z
  * Throws:    java.io.IOException
  */
 extern "C" JNIEXPORT jboolean JNICALL
-Java_com_google_devtools_build_lib_unix_FilesystemUtils_mkdir(JNIEnv *env,
+Java_com_google_devtools_build_lib_unix_NativePosixFiles_mkdir(JNIEnv *env,
                                                   jclass clazz,
                                                   jstring path,
                                                   jint mode) {
@@ -532,7 +532,7 @@
   // See http://java.sun.com/docs/books/jni/html/fldmeth.html#26855
   static jclass dirents_class = NULL;
   if (dirents_class == NULL) {  // note: harmless race condition
-    jclass local = env->FindClass("com/google/devtools/build/lib/unix/FilesystemUtils$Dirents");
+    jclass local = env->FindClass("com/google/devtools/build/lib/unix/NativePosixFiles$Dirents");
     CHECK(local != NULL);
     dirents_class = static_cast<jclass>(env->NewGlobalRef(local));
   }
@@ -573,13 +573,13 @@
 }
 
 /*
- * Class:     com.google.devtools.build.lib.unix.FilesystemUtils
+ * Class:     com.google.devtools.build.lib.unix.NativePosixFiles
  * Method:    readdir
  * Signature: (Ljava/lang/String;Z)Lcom/google/devtools/build/lib/unix/Dirents;
  * Throws:    java.io.IOException
  */
 extern "C" JNIEXPORT jobject JNICALL
-Java_com_google_devtools_build_lib_unix_FilesystemUtils_readdir(JNIEnv *env,
+Java_com_google_devtools_build_lib_unix_NativePosixFiles_readdir(JNIEnv *env,
                                                     jclass clazz,
                                                     jstring path,
                                                     jchar read_types) {
@@ -660,13 +660,13 @@
 }
 
 /*
- * Class:     com.google.devtools.build.lib.unix.FilesystemUtils
+ * Class:     com.google.devtools.build.lib.unix.NativePosixFiles
  * Method:    rename
  * Signature: (Ljava/lang/String;Ljava/lang/String;)V
  * Throws:    java.io.IOException
  */
 extern "C" JNIEXPORT void JNICALL
-Java_com_google_devtools_build_lib_unix_FilesystemUtils_rename(JNIEnv *env,
+Java_com_google_devtools_build_lib_unix_NativePosixFiles_rename(JNIEnv *env,
                                                    jclass clazz,
                                                    jstring oldpath,
                                                    jstring newpath) {
@@ -707,39 +707,39 @@
 static bool remove_err(int err) { return err == ENOENT || err == ENOTDIR; }
 
 /*
- * Class:     com.google.devtools.build.lib.unix.FilesystemUtils
+ * Class:     com.google.devtools.build.lib.unix.NativePosixFiles
  * Method:    unlink
  * Signature: (Ljava/lang/String;)V
  * Throws:    java.io.IOException
  */
 extern "C" JNIEXPORT bool JNICALL
-Java_com_google_devtools_build_lib_unix_FilesystemUtils_unlink(JNIEnv *env,
+Java_com_google_devtools_build_lib_unix_NativePosixFiles_unlink(JNIEnv *env,
                                                    jclass clazz,
                                                    jstring path) {
   return ::delete_common(env, path, ::unlink, ::unlink_err);
 }
 
 /*
- * Class:     com.google.devtools.build.lib.unix.FilesystemUtils
+ * Class:     com.google.devtools.build.lib.unix.NativePosixFiles
  * Method:    remove
  * Signature: (Ljava/lang/String;)V
  * Throws:    java.io.IOException
  */
 extern "C" JNIEXPORT bool JNICALL
-Java_com_google_devtools_build_lib_unix_FilesystemUtils_remove(JNIEnv *env,
+Java_com_google_devtools_build_lib_unix_NativePosixFiles_remove(JNIEnv *env,
                                                    jclass clazz,
                                                    jstring path) {
   return ::delete_common(env, path, ::remove, ::remove_err);
 }
 
 /*
- * Class:     com.google.devtools.build.lib.unix.FilesystemUtils
+ * Class:     com.google.devtools.build.lib.unix.NativePosixFiles
  * Method:    mkfifo
  * Signature: (Ljava/lang/String;I)V
  * Throws:    java.io.IOException
  */
 extern "C" JNIEXPORT void JNICALL
-Java_com_google_devtools_build_lib_unix_FilesystemUtils_mkfifo(JNIEnv *env,
+Java_com_google_devtools_build_lib_unix_NativePosixFiles_mkfifo(JNIEnv *env,
                                                    jclass clazz,
                                                    jstring path,
                                                    jint mode) {
@@ -781,7 +781,7 @@
 }
 
 extern "C" JNIEXPORT jbyteArray JNICALL
-Java_com_google_devtools_build_lib_unix_FilesystemUtils_getxattr(JNIEnv *env,
+Java_com_google_devtools_build_lib_unix_NativePosixFiles_getxattr(JNIEnv *env,
                                                      jclass clazz,
                                                      jstring path,
                                                      jstring name) {
@@ -789,7 +789,7 @@
 }
 
 extern "C" JNIEXPORT jbyteArray JNICALL
-Java_com_google_devtools_build_lib_unix_FilesystemUtils_lgetxattr(JNIEnv *env,
+Java_com_google_devtools_build_lib_unix_NativePosixFiles_lgetxattr(JNIEnv *env,
                                                       jclass clazz,
                                                       jstring path,
                                                       jstring name) {
@@ -835,7 +835,7 @@
 
 
 extern "C" JNIEXPORT jbyteArray JNICALL
-Java_com_google_devtools_build_lib_unix_FilesystemUtils_md5sumAsBytes(
+Java_com_google_devtools_build_lib_unix_NativePosixFiles_md5sumAsBytes(
     JNIEnv *env, jclass clazz, jstring path) {
   const char *path_chars = GetStringLatin1Chars(env, path);
   jbyte value[Md5Digest::kDigestLength];
diff --git a/src/test/java/com/google/devtools/build/lib/unix/FilesystemUtilsTest.java b/src/test/java/com/google/devtools/build/lib/unix/NativePosixFilesTest.java
similarity index 91%
rename from src/test/java/com/google/devtools/build/lib/unix/FilesystemUtilsTest.java
rename to src/test/java/com/google/devtools/build/lib/unix/NativePosixFilesTest.java
index dafcb1c..46522a7 100644
--- a/src/test/java/com/google/devtools/build/lib/unix/FilesystemUtilsTest.java
+++ b/src/test/java/com/google/devtools/build/lib/unix/NativePosixFilesTest.java
@@ -36,7 +36,7 @@
  * This class tests the FilesystemUtils class.
  */
 @RunWith(JUnit4.class)
-public class FilesystemUtilsTest {
+public class NativePosixFilesTest {
   private FileSystem testFS;
   private Path workingDir;
   private Path testFile;
@@ -71,7 +71,7 @@
 
     for (String testInput : testVectors.keySet()) {
       FileSystemUtils.writeContentAsLatin1(testFile, testInput);
-      HashCode result = FilesystemUtils.md5sum(testFile.getPathString());
+      HashCode result = NativePosixFiles.md5sum(testFile.getPathString());
       assertThat(testVectors).containsEntry(testInput, result.toString());
     }
   }
@@ -79,10 +79,10 @@
   @Test
   public void throwsFileAccessException() throws Exception {
     FileSystemUtils.createEmptyFile(testFile);
-    FilesystemUtils.chmod(testFile.getPathString(), 0200);
+    NativePosixFiles.chmod(testFile.getPathString(), 0200);
 
     try {
-      FilesystemUtils.md5sum(testFile.getPathString());
+      NativePosixFiles.md5sum(testFile.getPathString());
       fail("Expected FileAccessException, but wasn't thrown.");
     } catch (FileAccessException e) {
       assertThat(e).hasMessage(testFile + " (Permission denied)");
@@ -92,7 +92,7 @@
   @Test
   public void throwsFileNotFoundException() throws Exception {
     try {
-      FilesystemUtils.md5sum(testFile.getPathString());
+      NativePosixFiles.md5sum(testFile.getPathString());
       fail("Expected FileNotFoundException, but wasn't thrown.");
     } catch (FileNotFoundException e) {
       assertThat(e).hasMessage(testFile + " (No such file or directory)");
@@ -103,7 +103,7 @@
   public void throwsFilePermissionException() throws Exception {
     File foo = new File("/bin");
     try {
-      FilesystemUtils.setWritable(foo);
+      NativePosixFiles.setWritable(foo);
       fail("Expected FilePermissionException, but wasn't thrown.");
     } catch (FilePermissionException e) {
       assertThat(e).hasMessage(foo + " (Operation not permitted)");
diff --git a/src/test/java/com/google/devtools/build/lib/vfs/FileSystemTest.java b/src/test/java/com/google/devtools/build/lib/vfs/FileSystemTest.java
index 920e330..aba8611 100644
--- a/src/test/java/com/google/devtools/build/lib/vfs/FileSystemTest.java
+++ b/src/test/java/com/google/devtools/build/lib/vfs/FileSystemTest.java
@@ -23,6 +23,7 @@
 
 import com.google.common.io.BaseEncoding;
 import com.google.devtools.build.lib.testutil.TestUtils;
+import com.google.devtools.build.lib.unix.NativePosixFiles;
 import com.google.devtools.build.lib.util.Fingerprint;
 import com.google.devtools.build.lib.util.Preconditions;
 
@@ -102,15 +103,15 @@
   protected abstract FileSystem getFreshFileSystem() throws IOException;
 
   protected boolean isSymbolicLink(File file) {
-    return com.google.devtools.build.lib.unix.FilesystemUtils.isSymbolicLink(file);
+    return NativePosixFiles.isSymbolicLink(file);
   }
 
   protected void setWritable(File file) throws IOException {
-    com.google.devtools.build.lib.unix.FilesystemUtils.setWritable(file);
+    NativePosixFiles.setWritable(file);
   }
 
   protected void setExecutable(File file) throws IOException {
-    com.google.devtools.build.lib.unix.FilesystemUtils.setExecutable(file);
+    NativePosixFiles.setExecutable(file);
   }
 
   private static final Pattern STAT_SUBDIR_ERROR = Pattern.compile("(.*) \\(Not a directory\\)");
diff --git a/src/test/java/com/google/devtools/build/lib/vfs/UnixFileSystemTest.java b/src/test/java/com/google/devtools/build/lib/vfs/UnixFileSystemTest.java
index 40ace2b..46b200b 100644
--- a/src/test/java/com/google/devtools/build/lib/vfs/UnixFileSystemTest.java
+++ b/src/test/java/com/google/devtools/build/lib/vfs/UnixFileSystemTest.java
@@ -18,7 +18,8 @@
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
 
-import com.google.devtools.build.lib.unix.FilesystemUtils;
+import com.google.devtools.build.lib.unix.NativePosixFiles;
+
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.junit.runners.JUnit4;
@@ -68,7 +69,7 @@
     Path regular = absolutize("regular");
     Path fifo = absolutize("fifo");
     FileSystemUtils.createEmptyFile(regular);
-    FilesystemUtils.mkfifo(fifo.toString(), 0777);
+    NativePosixFiles.mkfifo(fifo.toString(), 0777);
     assertTrue(regular.isFile());
     assertFalse(regular.isSpecialFile());
     assertTrue(regular.stat().isFile());