HDFS-6890. NFS readdirplus doesn't return dotdot attributes. Contributed by Brandon Li
git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/trunk@1619500 13f79535-47bb-0310-9956-ffa450edef68 Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/7b28f363 Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/7b28f363 Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/7b28f363 Branch: refs/heads/HDFS-6584 Commit: 7b28f363b1b3f12cecc92d0bba8eb3021b67b48e Parents: e5e9d79 Author: Brandon Li <[email protected]> Authored: Thu Aug 21 17:53:54 2014 +0000 Committer: Brandon Li <[email protected]> Committed: Thu Aug 21 17:53:54 2014 +0000 ---------------------------------------------------------------------- .../java/org/apache/hadoop/hdfs/nfs/nfs3/RpcProgramNfs3.java | 6 ++++-- hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt | 2 ++ 2 files changed, 6 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hadoop/blob/7b28f363/hadoop-hdfs-project/hadoop-hdfs-nfs/src/main/java/org/apache/hadoop/hdfs/nfs/nfs3/RpcProgramNfs3.java ---------------------------------------------------------------------- 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 3ef92402..0c7aebe 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 @@ public class RpcProgramNfs3 extends RpcProgram implements Nfs3Interface { 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 @@ public class RpcProgramNfs3 extends RpcProgram implements Nfs3Interface { 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 @@ public class RpcProgramNfs3 extends RpcProgram implements Nfs3Interface { 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(); http://git-wip-us.apache.org/repos/asf/hadoop/blob/7b28f363/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt ---------------------------------------------------------------------- diff --git a/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt b/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt index 14ef2f1..5776f89 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt +++ b/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt @@ -626,6 +626,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
