You are viewing a plain text version of this content. The canonical link for it is here.
Posted to hdfs-commits@hadoop.apache.org by ki...@apache.org on 2013/07/15 22:30:58 UTC
svn commit: r1503461 - in
/hadoop/common/branches/branch-0.23/hadoop-hdfs-project/hadoop-hdfs:
CHANGES.txt
src/main/java/org/apache/hadoop/hdfs/server/namenode/FSNamesystem.java
Author: kihwal
Date: Mon Jul 15 20:30:57 2013
New Revision: 1503461
URL: http://svn.apache.org/r1503461
Log:
HDFS-4972. Permission check and operation are done in a separate lock for getBlockLocations(). Contributed by Kihwal Lee.
Modified:
hadoop/common/branches/branch-0.23/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt
hadoop/common/branches/branch-0.23/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSNamesystem.java
Modified: hadoop/common/branches/branch-0.23/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt
URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-0.23/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt?rev=1503461&r1=1503460&r2=1503461&view=diff
==============================================================================
--- hadoop/common/branches/branch-0.23/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt (original)
+++ hadoop/common/branches/branch-0.23/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt Mon Jul 15 20:30:57 2013
@@ -11,8 +11,12 @@ Release 0.23.10 - UNRELEASED
OPTIMIZATIONS
BUG FIXES
+
HDFS-4984. Incorrect Quota counting in INodeFile. (jing9 via kihwal)
+ HDFS-4972. Permission check and operation are done in a separate lock for
+ getBlockLocations(). (kihwal)
+
Release 0.23.9 - 2013-07-08
INCOMPATIBLE CHANGES
Modified: hadoop/common/branches/branch-0.23/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSNamesystem.java
URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-0.23/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSNamesystem.java?rev=1503461&r1=1503460&r2=1503461&view=diff
==============================================================================
--- hadoop/common/branches/branch-0.23/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSNamesystem.java (original)
+++ hadoop/common/branches/branch-0.23/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSNamesystem.java Mon Jul 15 20:30:57 2013
@@ -733,11 +733,6 @@ public class FSNamesystem implements Nam
LocatedBlocks getBlockLocations(String src, long offset, long length,
boolean doAccessTime, boolean needBlockToken) throws FileNotFoundException,
UnresolvedLinkException, IOException {
- FSPermissionChecker pc = getPermissionChecker();
- if (isPermissionEnabled) {
- checkPathAccess(pc, src, FsAction.READ);
- }
-
if (offset < 0) {
throw new HadoopIllegalArgumentException(
"Negative offset is not supported. File: " + src);
@@ -762,7 +757,7 @@ public class FSNamesystem implements Nam
boolean doAccessTime,
boolean needBlockToken)
throws FileNotFoundException, UnresolvedLinkException, IOException {
-
+ FSPermissionChecker pc = getPermissionChecker();
for (int attempt = 0; attempt < 2; attempt++) {
if (attempt == 0) { // first attempt is with readlock
readLock();
@@ -770,12 +765,16 @@ public class FSNamesystem implements Nam
writeLock(); // writelock is needed to set accesstime
}
- // if the namenode is in safemode, then do not update access time
- if (isInSafeMode()) {
- doAccessTime = false;
- }
-
try {
+ if (isPermissionEnabled) {
+ checkPathAccess(pc, src, FsAction.READ);
+ }
+
+ // if the namenode is in safemode, then do not update access time
+ if (isInSafeMode()) {
+ doAccessTime = false;
+ }
+
long now = now();
INodeFile inode = dir.getFileINode(src);
if (inode == null) {