HDFS-6749. Merging change r1613561 from trunk to branch-2.
git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/branches/branch-2@1613562 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
c2b0f62155
commit
f1d0db87cd
|
@ -128,6 +128,9 @@ Release 2.6.0 - UNRELEASED
|
||||||
HDFS-6752. Avoid Address bind errors in TestDatanodeConfig#testMemlockLimit
|
HDFS-6752. Avoid Address bind errors in TestDatanodeConfig#testMemlockLimit
|
||||||
(vinayakumarb)
|
(vinayakumarb)
|
||||||
|
|
||||||
|
HDFS-6749. FSNamesystem methods should call resolvePath.
|
||||||
|
(Charles Lamb via cnauroth)
|
||||||
|
|
||||||
Release 2.5.0 - UNRELEASED
|
Release 2.5.0 - UNRELEASED
|
||||||
|
|
||||||
INCOMPATIBLE CHANGES
|
INCOMPATIBLE CHANGES
|
||||||
|
|
|
@ -3720,8 +3720,10 @@ public class FSNamesystem implements Namesystem, FSClusterStats,
|
||||||
StandbyException, IOException {
|
StandbyException, IOException {
|
||||||
FSPermissionChecker pc = getPermissionChecker();
|
FSPermissionChecker pc = getPermissionChecker();
|
||||||
checkOperation(OperationCategory.READ);
|
checkOperation(OperationCategory.READ);
|
||||||
|
byte[][] pathComponents = FSDirectory.getPathComponentsForReservedPath(src);
|
||||||
readLock();
|
readLock();
|
||||||
try {
|
try {
|
||||||
|
src = FSDirectory.resolvePath(src, pathComponents, dir);
|
||||||
checkOperation(OperationCategory.READ);
|
checkOperation(OperationCategory.READ);
|
||||||
if (isPermissionEnabled) {
|
if (isPermissionEnabled) {
|
||||||
checkTraverse(pc, src);
|
checkTraverse(pc, src);
|
||||||
|
@ -8183,9 +8185,11 @@ public class FSNamesystem implements Namesystem, FSClusterStats,
|
||||||
nnConf.checkAclsConfigFlag();
|
nnConf.checkAclsConfigFlag();
|
||||||
FSPermissionChecker pc = getPermissionChecker();
|
FSPermissionChecker pc = getPermissionChecker();
|
||||||
checkOperation(OperationCategory.READ);
|
checkOperation(OperationCategory.READ);
|
||||||
|
byte[][] pathComponents = FSDirectory.getPathComponentsForReservedPath(src);
|
||||||
readLock();
|
readLock();
|
||||||
try {
|
try {
|
||||||
checkOperation(OperationCategory.READ);
|
checkOperation(OperationCategory.READ);
|
||||||
|
src = FSDirectory.resolvePath(src, pathComponents, dir);
|
||||||
if (isPermissionEnabled) {
|
if (isPermissionEnabled) {
|
||||||
checkPermission(pc, src, false, null, null, null, null);
|
checkPermission(pc, src, false, null, null, null, null);
|
||||||
}
|
}
|
||||||
|
@ -8288,8 +8292,10 @@ public class FSNamesystem implements Namesystem, FSClusterStats,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
checkOperation(OperationCategory.READ);
|
checkOperation(OperationCategory.READ);
|
||||||
|
byte[][] pathComponents = FSDirectory.getPathComponentsForReservedPath(src);
|
||||||
readLock();
|
readLock();
|
||||||
try {
|
try {
|
||||||
|
src = FSDirectory.resolvePath(src, pathComponents, dir);
|
||||||
checkOperation(OperationCategory.READ);
|
checkOperation(OperationCategory.READ);
|
||||||
if (isPermissionEnabled) {
|
if (isPermissionEnabled) {
|
||||||
checkPathAccess(pc, src, FsAction.READ);
|
checkPathAccess(pc, src, FsAction.READ);
|
||||||
|
@ -8333,8 +8339,10 @@ public class FSNamesystem implements Namesystem, FSClusterStats,
|
||||||
nnConf.checkXAttrsConfigFlag();
|
nnConf.checkXAttrsConfigFlag();
|
||||||
final FSPermissionChecker pc = getPermissionChecker();
|
final FSPermissionChecker pc = getPermissionChecker();
|
||||||
checkOperation(OperationCategory.READ);
|
checkOperation(OperationCategory.READ);
|
||||||
|
byte[][] pathComponents = FSDirectory.getPathComponentsForReservedPath(src);
|
||||||
readLock();
|
readLock();
|
||||||
try {
|
try {
|
||||||
|
src = FSDirectory.resolvePath(src, pathComponents, dir);
|
||||||
checkOperation(OperationCategory.READ);
|
checkOperation(OperationCategory.READ);
|
||||||
if (isPermissionEnabled) {
|
if (isPermissionEnabled) {
|
||||||
/* To access xattr names, you need EXECUTE in the owning directory. */
|
/* To access xattr names, you need EXECUTE in the owning directory. */
|
||||||
|
|
|
@ -524,6 +524,7 @@ public class TestINodeFile {
|
||||||
Configuration conf = new Configuration();
|
Configuration conf = new Configuration();
|
||||||
conf.setInt(DFSConfigKeys.DFS_BLOCK_SIZE_KEY,
|
conf.setInt(DFSConfigKeys.DFS_BLOCK_SIZE_KEY,
|
||||||
DFSConfigKeys.DFS_BYTES_PER_CHECKSUM_DEFAULT);
|
DFSConfigKeys.DFS_BYTES_PER_CHECKSUM_DEFAULT);
|
||||||
|
conf.setBoolean(DFSConfigKeys.DFS_NAMENODE_ACLS_ENABLED_KEY, true);
|
||||||
MiniDFSCluster cluster = null;
|
MiniDFSCluster cluster = null;
|
||||||
try {
|
try {
|
||||||
cluster = new MiniDFSCluster.Builder(conf).numDataNodes(1).build();
|
cluster = new MiniDFSCluster.Builder(conf).numDataNodes(1).build();
|
||||||
|
@ -571,6 +572,19 @@ public class TestINodeFile {
|
||||||
// ClientProtocol#getPreferredBlockSize
|
// ClientProtocol#getPreferredBlockSize
|
||||||
assertEquals(testFileBlockSize,
|
assertEquals(testFileBlockSize,
|
||||||
nnRpc.getPreferredBlockSize(testFileInodePath.toString()));
|
nnRpc.getPreferredBlockSize(testFileInodePath.toString()));
|
||||||
|
|
||||||
|
/*
|
||||||
|
* HDFS-6749 added missing calls to FSDirectory.resolvePath in the
|
||||||
|
* following four methods. The calls below ensure that
|
||||||
|
* /.reserved/.inodes paths work properly. No need to check return
|
||||||
|
* values as these methods are tested elsewhere.
|
||||||
|
*/
|
||||||
|
{
|
||||||
|
fs.isFileClosed(testFileInodePath);
|
||||||
|
fs.getAclStatus(testFileInodePath);
|
||||||
|
fs.getXAttrs(testFileInodePath);
|
||||||
|
fs.listXAttrs(testFileInodePath);
|
||||||
|
}
|
||||||
|
|
||||||
// symbolic link related tests
|
// symbolic link related tests
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue