Skip to content

Commit 2a418dc

Browse files
committed
HDFS-17707. Optimize <op>WithExistsCheck methods in concurrent scenario.
1 parent a487209 commit 2a418dc

File tree

1 file changed

+2
-2
lines changed
  • hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode

1 file changed

+2
-2
lines changed

hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/FileIoProvider.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -243,7 +243,7 @@ public boolean deleteWithExistsCheck(@Nullable FsVolumeSpi volume, File f) {
243243
final long begin = profilingEventHook.beforeMetadataOp(volume, DELETE);
244244
try {
245245
faultInjectorEventHook.beforeMetadataOp(volume, DELETE);
246-
boolean deleted = !f.exists() || f.delete();
246+
boolean deleted = !f.exists() || f.delete() || !f.exists();
247247
profilingEventHook.afterMetadataOp(volume, DELETE, begin);
248248
if (!deleted) {
249249
LOG.warn("Failed to delete file {}", f);
@@ -686,7 +686,7 @@ public void mkdirsWithExistsCheck(
686686
boolean succeeded = false;
687687
try {
688688
faultInjectorEventHook.beforeMetadataOp(volume, MKDIRS);
689-
succeeded = dir.isDirectory() || dir.mkdirs();
689+
succeeded = dir.isDirectory() || dir.mkdirs() || dir.isDirectory();
690690
profilingEventHook.afterMetadataOp(volume, MKDIRS, begin);
691691
} catch(Exception e) {
692692
onFailure(volume, begin);

0 commit comments

Comments
 (0)