|
@@ -3720,8 +3720,10 @@ public class FSNamesystem implements Namesystem, FSClusterStats,
|
|
|
StandbyException, IOException {
|
|
|
FSPermissionChecker pc = getPermissionChecker();
|
|
|
checkOperation(OperationCategory.READ);
|
|
|
+ byte[][] pathComponents = FSDirectory.getPathComponentsForReservedPath(src);
|
|
|
readLock();
|
|
|
try {
|
|
|
+ src = FSDirectory.resolvePath(src, pathComponents, dir);
|
|
|
checkOperation(OperationCategory.READ);
|
|
|
if (isPermissionEnabled) {
|
|
|
checkTraverse(pc, src);
|
|
@@ -8183,9 +8185,11 @@ public class FSNamesystem implements Namesystem, FSClusterStats,
|
|
|
nnConf.checkAclsConfigFlag();
|
|
|
FSPermissionChecker pc = getPermissionChecker();
|
|
|
checkOperation(OperationCategory.READ);
|
|
|
+ byte[][] pathComponents = FSDirectory.getPathComponentsForReservedPath(src);
|
|
|
readLock();
|
|
|
try {
|
|
|
checkOperation(OperationCategory.READ);
|
|
|
+ src = FSDirectory.resolvePath(src, pathComponents, dir);
|
|
|
if (isPermissionEnabled) {
|
|
|
checkPermission(pc, src, false, null, null, null, null);
|
|
|
}
|
|
@@ -8288,8 +8292,10 @@ public class FSNamesystem implements Namesystem, FSClusterStats,
|
|
|
}
|
|
|
}
|
|
|
checkOperation(OperationCategory.READ);
|
|
|
+ byte[][] pathComponents = FSDirectory.getPathComponentsForReservedPath(src);
|
|
|
readLock();
|
|
|
try {
|
|
|
+ src = FSDirectory.resolvePath(src, pathComponents, dir);
|
|
|
checkOperation(OperationCategory.READ);
|
|
|
if (isPermissionEnabled) {
|
|
|
checkPathAccess(pc, src, FsAction.READ);
|
|
@@ -8333,8 +8339,10 @@ public class FSNamesystem implements Namesystem, FSClusterStats,
|
|
|
nnConf.checkXAttrsConfigFlag();
|
|
|
final FSPermissionChecker pc = getPermissionChecker();
|
|
|
checkOperation(OperationCategory.READ);
|
|
|
+ byte[][] pathComponents = FSDirectory.getPathComponentsForReservedPath(src);
|
|
|
readLock();
|
|
|
try {
|
|
|
+ src = FSDirectory.resolvePath(src, pathComponents, dir);
|
|
|
checkOperation(OperationCategory.READ);
|
|
|
if (isPermissionEnabled) {
|
|
|
/* To access xattr names, you need EXECUTE in the owning directory. */
|