Skip to content

Commit bf5f6ab

Browse files
committed
Fix review comments.
1 parent 540e3d3 commit bf5f6ab

File tree

3 files changed

+19
-18
lines changed

3 files changed

+19
-18
lines changed

hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/KeyManagerImpl.java

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1360,8 +1360,8 @@ public OzoneFileStatus getFileStatus(OmKeyArgs args) throws IOException {
13601360
String bucketName = args.getBucketName();
13611361
String keyName = args.getKeyName();
13621362

1363+
metadataManager.getLock().acquireBucketLock(volumeName, bucketName);
13631364
try {
1364-
metadataManager.getLock().acquireBucketLock(volumeName, bucketName);
13651365
// Check if this is the root of the filesystem.
13661366
if (keyName.length() == 0) {
13671367
validateBucket(volumeName, bucketName);
@@ -1418,8 +1418,8 @@ public void createDirectory(OmKeyArgs args) throws IOException {
14181418
String bucketName = args.getBucketName();
14191419
String keyName = args.getKeyName();
14201420

1421+
metadataManager.getLock().acquireBucketLock(volumeName, bucketName);
14211422
try {
1422-
metadataManager.getLock().acquireBucketLock(volumeName, bucketName);
14231423

14241424
// Check if this is the root of the filesystem.
14251425
if (keyName.length() == 0) {
@@ -1430,7 +1430,7 @@ public void createDirectory(OmKeyArgs args) throws IOException {
14301430
OzoneFileStatus status =
14311431
verifyNoFilesInPath(volumeName, bucketName, keyPath, false);
14321432
if (status != null && OzoneFSUtils.pathToKey(status.getPath())
1433-
.equals(keyPath.toString())) {
1433+
.equals(keyName)) {
14341434
// if directory already exists
14351435
return;
14361436
}
@@ -1490,9 +1490,8 @@ public OpenKeySession createFile(OmKeyArgs args, boolean isOverWrite,
14901490
String keyName = args.getKeyName();
14911491
OpenKeySession keySession;
14921492

1493+
metadataManager.getLock().acquireBucketLock(volumeName, bucketName);
14931494
try {
1494-
metadataManager.getLock().acquireBucketLock(volumeName, bucketName);
1495-
14961495
OzoneFileStatus fileStatus;
14971496
try {
14981497
fileStatus = getFileStatus(args);
@@ -1539,8 +1538,8 @@ public OmKeyInfo lookupFile(OmKeyArgs args) throws IOException {
15391538
String bucketName = args.getBucketName();
15401539
String keyName = args.getKeyName();
15411540

1541+
metadataManager.getLock().acquireBucketLock(volumeName, bucketName);
15421542
try {
1543-
metadataManager.getLock().acquireBucketLock(volumeName, bucketName);
15441543
OzoneFileStatus fileStatus = getFileStatus(args);
15451544
if (fileStatus.isFile()) {
15461545
return fileStatus.getKeyInfo();
@@ -1573,8 +1572,8 @@ public List<OzoneFileStatus> listStatus(OmKeyArgs args, boolean recursive,
15731572
String keyName = args.getKeyName();
15741573

15751574
List<OzoneFileStatus> fileStatusList = new ArrayList<>();
1575+
metadataManager.getLock().acquireBucketLock(volumeName, bucketName);
15761576
try {
1577-
metadataManager.getLock().acquireBucketLock(volumeName, bucketName);
15781577
if (Strings.isNullOrEmpty(startKey)) {
15791578
OzoneFileStatus fileStatus = getFileStatus(args);
15801579
if (fileStatus.isFile()) {

hadoop-ozone/ozonefs/src/main/java/org/apache/hadoop/fs/ozone/BasicOzoneFileSystem.java

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -498,20 +498,24 @@ public FileStatus[] listStatus(Path f) throws IOException {
498498
LOG.trace("listStatus() path:{}", f);
499499
int numEntries = LISTING_PAGE_SIZE;
500500
LinkedList<OzoneFileStatus> statuses = new LinkedList<>();
501-
List<OzoneFileStatus> tmpStatus;
501+
List<OzoneFileStatus> tmpStatusList;
502502
String startKey = "";
503503

504504
do {
505-
tmpStatus = adapter.listStatus(pathToKey(f), false, startKey, numEntries);
506-
if (!tmpStatus.isEmpty()) {
505+
tmpStatusList =
506+
adapter.listStatus(pathToKey(f), false, startKey, numEntries);
507+
if (!tmpStatusList.isEmpty()) {
507508
if (startKey.isEmpty()) {
508-
statuses.addAll(tmpStatus);
509+
statuses.addAll(tmpStatusList);
509510
} else {
510-
statuses.addAll(tmpStatus.subList(1, tmpStatus.size()));
511+
statuses.addAll(tmpStatusList.subList(1, tmpStatusList.size()));
511512
}
512513
startKey = pathToKey(statuses.getLast().getPath());
513514
}
514-
} while (tmpStatus.size() == numEntries);
515+
// listStatus returns entries numEntries in size if available.
516+
// Any lesser number of entries indicate that the required entries have
517+
// exhausted.
518+
} while (tmpStatusList.size() == numEntries);
515519

516520
for (OzoneFileStatus status : statuses) {
517521
status.makeQualified(uri, status.getPath().makeQualified(uri, workingDir),

hadoop-ozone/ozonefs/src/test/java/org/apache/hadoop/fs/ozone/TestOzoneFileSystem.java

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -236,12 +236,10 @@ public void testListStatusOnLargeDirectory() throws Exception {
236236
paths.add(p.getName());
237237
}
238238

239-
// ListStatus on root should return dir1 (even though /dir1 key does not
240-
// exist) and dir2 only. dir12 is not an immediate child of root and
241-
// hence should not be listed.
242239
FileStatus[] fileStatuses = o3fs.listStatus(root);
243-
assertEquals("FileStatus should return only the immediate children", numDirs,
244-
fileStatuses.length);
240+
assertEquals(
241+
"Total directories listed do not match the existing directories",
242+
numDirs, fileStatuses.length);
245243

246244
for (int i=0; i < numDirs; i++) {
247245
assertTrue(paths.contains(fileStatuses[i].getPath().getName()));

0 commit comments

Comments
 (0)