diff --git a/hadoop-hdfs-project/hadoop-hdfs-nfs/src/main/java/org/apache/hadoop/hdfs/nfs/nfs3/RpcProgramNfs3.java b/hadoop-hdfs-project/hadoop-hdfs-nfs/src/main/java/org/apache/hadoop/hdfs/nfs/nfs3/RpcProgramNfs3.java index 3ef9240263f..0c7aebeebf9 100644 --- a/hadoop-hdfs-project/hadoop-hdfs-nfs/src/main/java/org/apache/hadoop/hdfs/nfs/nfs3/RpcProgramNfs3.java +++ b/hadoop-hdfs-project/hadoop-hdfs-nfs/src/main/java/org/apache/hadoop/hdfs/nfs/nfs3/RpcProgramNfs3.java @@ -1643,6 +1643,7 @@ READDIRPLUS3Response readdirplus(XDR xdr, SecurityHandler securityHandler, DirectoryListing dlisting = null; Nfs3FileAttributes postOpDirAttr = null; long dotdotFileId = 0; + HdfsFileStatus dotdotStatus = null; try { String dirFileIdPath = Nfs3Utils.getFileIdPath(handle); dirStatus = dfsClient.getFileInfo(dirFileIdPath); @@ -1678,7 +1679,7 @@ READDIRPLUS3Response readdirplus(XDR xdr, SecurityHandler securityHandler, if (cookie == 0) { // Get dotdot fileId String dotdotFileIdPath = dirFileIdPath + "/.."; - HdfsFileStatus dotdotStatus = dfsClient.getFileInfo(dotdotFileIdPath); + dotdotStatus = dfsClient.getFileInfo(dotdotFileIdPath); if (dotdotStatus == null) { // This should not happen @@ -1723,7 +1724,8 @@ READDIRPLUS3Response readdirplus(XDR xdr, SecurityHandler securityHandler, postOpDirAttr.getFileId(), ".", 0, postOpDirAttr, new FileHandle( postOpDirAttr.getFileId())); entries[1] = new READDIRPLUS3Response.EntryPlus3(dotdotFileId, "..", - dotdotFileId, postOpDirAttr, new FileHandle(dotdotFileId)); + dotdotFileId, Nfs3Utils.getNfs3FileAttrFromFileStatus(dotdotStatus, + iug), new FileHandle(dotdotFileId)); for (int i = 2; i < n + 2; i++) { long fileId = fstatus[i - 2].getFileId(); diff --git a/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt b/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt index 4168993f57d..70f53e23cfb 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt +++ b/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt @@ -280,6 +280,8 @@ Release 2.6.0 - UNRELEASED HDFS-6870. Blocks and INodes could leak for Rename with overwrite flag. (Yi Liu via jing9) + HDFS-6890. NFS readdirplus doesn't return dotdot attributes (brandonli) + Release 2.5.0 - 2014-08-11 INCOMPATIBLE CHANGES