diff --git a/hadoop-common-project/hadoop-nfs/src/main/java/org/apache/hadoop/mount/MountdBase.java b/hadoop-common-project/hadoop-nfs/src/main/java/org/apache/hadoop/mount/MountdBase.java index 534342f33c4..8ef39c4766e 100644 --- a/hadoop-common-project/hadoop-nfs/src/main/java/org/apache/hadoop/mount/MountdBase.java +++ b/hadoop-common-project/hadoop-nfs/src/main/java/org/apache/hadoop/mount/MountdBase.java @@ -50,7 +50,6 @@ abstract public class MountdBase { /* Start UDP server */ private void startUDPServer() { - rpcProgram.register(PortmapMapping.TRANSPORT_UDP); SimpleUdpServer udpServer = new SimpleUdpServer(rpcProgram.getPort(), rpcProgram, 1); udpServer.run(); @@ -58,14 +57,17 @@ abstract public class MountdBase { /* Start TCP server */ private void startTCPServer() { - rpcProgram.register(PortmapMapping.TRANSPORT_TCP); SimpleTcpServer tcpServer = new SimpleTcpServer(rpcProgram.getPort(), rpcProgram, 1); tcpServer.run(); } - public void start() { + public void start(boolean register) { startUDPServer(); startTCPServer(); + if (register) { + rpcProgram.register(PortmapMapping.TRANSPORT_UDP); + rpcProgram.register(PortmapMapping.TRANSPORT_TCP); + } } } diff --git a/hadoop-common-project/hadoop-nfs/src/main/java/org/apache/hadoop/nfs/nfs3/Nfs3Base.java b/hadoop-common-project/hadoop-nfs/src/main/java/org/apache/hadoop/nfs/nfs3/Nfs3Base.java index 933115cf888..ec96e617585 100644 --- a/hadoop-common-project/hadoop-nfs/src/main/java/org/apache/hadoop/nfs/nfs3/Nfs3Base.java +++ b/hadoop-common-project/hadoop-nfs/src/main/java/org/apache/hadoop/nfs/nfs3/Nfs3Base.java @@ -52,10 +52,12 @@ public abstract class Nfs3Base { this.rpcProgram = program; } - public void start() { - mountd.start(); // Start mountd - rpcProgram.register(PortmapMapping.TRANSPORT_TCP); - startTCPServer(); // Start TCP server + public void start(boolean register) { + mountd.start(register); // Start mountd + startTCPServer(); // Start TCP server + if (register) { + rpcProgram.register(PortmapMapping.TRANSPORT_TCP); + } } private void startTCPServer() { diff --git a/hadoop-common-project/hadoop-nfs/src/main/java/org/apache/hadoop/nfs/nfs3/Nfs3FileAttributes.java b/hadoop-common-project/hadoop-nfs/src/main/java/org/apache/hadoop/nfs/nfs3/Nfs3FileAttributes.java index d805aad022a..1ba727b4474 100644 --- a/hadoop-common-project/hadoop-nfs/src/main/java/org/apache/hadoop/nfs/nfs3/Nfs3FileAttributes.java +++ b/hadoop-common-project/hadoop-nfs/src/main/java/org/apache/hadoop/nfs/nfs3/Nfs3FileAttributes.java @@ -96,6 +96,22 @@ public class Nfs3FileAttributes { this.ctime = this.mtime; } + public Nfs3FileAttributes(Nfs3FileAttributes other) { + this.type = other.getType(); + this.mode = other.getMode(); + this.nlink = other.getNlink(); + this.uid = other.getUid(); + this.gid = other.getGid(); + this.size = other.getSize(); + this.used = other.getUsed(); + this.rdev = new Specdata3(); + this.fsid = other.getFsid(); + this.fileid = other.getFileid(); + this.mtime = new NfsTime(other.getMtime()); + this.atime = new NfsTime(other.getAtime()); + this.ctime = new NfsTime(other.getCtime()); + } + public void serialize(XDR xdr) { xdr.writeInt(type); xdr.writeInt(mode); diff --git a/hadoop-common-project/hadoop-nfs/src/main/java/org/apache/hadoop/nfs/nfs3/response/READDIR3Response.java b/hadoop-common-project/hadoop-nfs/src/main/java/org/apache/hadoop/nfs/nfs3/response/READDIR3Response.java index 6adcd0cc23f..fa54c5459fb 100644 --- a/hadoop-common-project/hadoop-nfs/src/main/java/org/apache/hadoop/nfs/nfs3/response/READDIR3Response.java +++ b/hadoop-common-project/hadoop-nfs/src/main/java/org/apache/hadoop/nfs/nfs3/response/READDIR3Response.java @@ -61,6 +61,7 @@ public class READDIR3Response extends NFS3Response { public DirList3(Entry3[] entries, boolean eof) { this.entries = ObjectArrays.newArray(entries, entries.length); + System.arraycopy(this.entries, 0, entries, 0, entries.length); this.eof = eof; } } diff --git a/hadoop-common-project/hadoop-nfs/src/main/java/org/apache/hadoop/nfs/nfs3/response/READDIRPLUS3Response.java b/hadoop-common-project/hadoop-nfs/src/main/java/org/apache/hadoop/nfs/nfs3/response/READDIRPLUS3Response.java index 1102c30d713..77794cf48a6 100644 --- a/hadoop-common-project/hadoop-nfs/src/main/java/org/apache/hadoop/nfs/nfs3/response/READDIRPLUS3Response.java +++ b/hadoop-common-project/hadoop-nfs/src/main/java/org/apache/hadoop/nfs/nfs3/response/READDIRPLUS3Response.java @@ -65,6 +65,7 @@ public class READDIRPLUS3Response extends NFS3Response { public DirListPlus3(EntryPlus3[] entries, boolean eof) { this.entries = ObjectArrays.newArray(entries, entries.length); + System.arraycopy(this.entries, 0, entries, 0, entries.length); this.eof = eof; } diff --git a/hadoop-project/pom.xml b/hadoop-project/pom.xml index 4b914cb1cde..ae321cd1742 100644 --- a/hadoop-project/pom.xml +++ b/hadoop-project/pom.xml @@ -92,6 +92,11 @@ hadoop-auth ${project.version} + + org.apache.hadoop + hadoop-nfs + ${project.version} + org.apache.hadoop hadoop-hdfs