You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-commits@hadoop.apache.org by cm...@apache.org on 2014/10/02 21:42:36 UTC
git commit: HDFS-7162. Wrong path when deleting through fuse-dfs a
file which already exists in trash (cmccabe)
Repository: hadoop
Updated Branches:
refs/heads/trunk 29f520052 -> 03db9cc83
HDFS-7162. Wrong path when deleting through fuse-dfs a file which already exists in trash (cmccabe)
Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo
Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/03db9cc8
Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/03db9cc8
Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/03db9cc8
Branch: refs/heads/trunk
Commit: 03db9cc839663cad387db7df8e4f60b312058f18
Parents: 29f5200
Author: Colin Patrick Mccabe <cm...@cloudera.com>
Authored: Thu Oct 2 12:42:19 2014 -0700
Committer: Colin Patrick Mccabe <cm...@cloudera.com>
Committed: Thu Oct 2 12:42:19 2014 -0700
----------------------------------------------------------------------
hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt | 3 +++
.../hadoop-hdfs/src/main/native/fuse-dfs/fuse_trash.c | 7 ++++---
2 files changed, 7 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hadoop/blob/03db9cc8/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt
----------------------------------------------------------------------
diff --git a/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt b/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt
index c8a8c5e..ccb7179 100644
--- a/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt
+++ b/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt
@@ -897,6 +897,9 @@ Release 2.6.0 - UNRELEASED
HDFS-7178. Additional unit test for replica write with full disk.
(Arpit Agarwal)
+ HDFS-7162. Wrong path when deleting through fuse-dfs a file which already
+ exists in trash (cmccabe)
+
BREAKDOWN OF HDFS-6134 AND HADOOP-10150 SUBTASKS AND RELATED JIRAS
HDFS-6387. HDFS CLI admin tool for creating & deleting an
http://git-wip-us.apache.org/repos/asf/hadoop/blob/03db9cc8/hadoop-hdfs-project/hadoop-hdfs/src/main/native/fuse-dfs/fuse_trash.c
----------------------------------------------------------------------
diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/native/fuse-dfs/fuse_trash.c b/hadoop-hdfs-project/hadoop-hdfs/src/main/native/fuse-dfs/fuse_trash.c
index 688eae8..5e58087 100644
--- a/hadoop-hdfs-project/hadoop-hdfs/src/main/native/fuse-dfs/fuse_trash.c
+++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/native/fuse-dfs/fuse_trash.c
@@ -150,13 +150,14 @@ int move_to_trash(const char *abs_path, hdfsFS userFS)
if (ret) {
goto done;
}
- if (!strncmp(trash_base, abs_path, strlen(trash_base))) {
+ int trash_base_len = strlen(trash_base);
+ if (!strncmp(trash_base, abs_path, trash_base_len)
+ && (strlen(abs_path) == trash_base_len || abs_path[trash_base_len] == '/')) {
INFO("move_to_trash(%s): file is already in the trash; deleting.",
abs_path);
ret = ALREADY_IN_TRASH_ERR;
goto done;
}
- fprintf(stderr, "trash_base='%s'\n", trash_base);
if (asprintf(&target_dir, "%s%s", trash_base, parent_dir) < 0) {
ret = ENOMEM;
target_dir = NULL;
@@ -182,7 +183,7 @@ int move_to_trash(const char *abs_path, hdfsFS userFS)
int idx;
for (idx = 1; idx < TRASH_RENAME_TRIES; idx++) {
free(target);
- if (asprintf(&target, "%s%s.%d", target_dir, pcomp, idx) < 0) {
+ if (asprintf(&target, "%s/%s.%d", target_dir, pcomp, idx) < 0) {
target = NULL;
ret = ENOMEM;
goto done;