From ea5491bc89fabb6f3282a0ba0cf8a5b62c20b8f2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=AB=E5=BF=B5?= Date: Wed, 20 Aug 2025 15:31:21 +0800 Subject: [PATCH 1/8] dashuju MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 别念 --- services/cloudfiledaemon/src/fuse_manager/fuse_manager.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/cloudfiledaemon/src/fuse_manager/fuse_manager.cpp b/services/cloudfiledaemon/src/fuse_manager/fuse_manager.cpp index 4f9785444..08e32ca8f 100644 --- a/services/cloudfiledaemon/src/fuse_manager/fuse_manager.cpp +++ b/services/cloudfiledaemon/src/fuse_manager/fuse_manager.cpp @@ -530,7 +530,7 @@ static int CloudDoLookupHelper(fuse_ino_t parent, const char *name, struct fuse_ LOGW("invalidate %s", GetAnonyString(childName).c_str()); child->mBase = make_shared(mBase); } - if (child->path != childName) { + if (child->path != childName && !create) { CLOUD_FILE_FAULT_REPORT(CloudFileFaultInfo{PHOTOS_BUNDLE_NAME, FaultOperation::LOOKUP, FaultType::INODE_FILE, ENOMEM, "hash collision"}); } -- Gitee From d8c1a338ad0b7cb05b2746a940d97c140a8df609 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=AB=E5=BF=B5?= Date: Fri, 22 Aug 2025 17:08:58 +0800 Subject: [PATCH 2/8] 1 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 别念 --- services/cloudfiledaemon/src/fuse_manager/fuse_manager.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/services/cloudfiledaemon/src/fuse_manager/fuse_manager.cpp b/services/cloudfiledaemon/src/fuse_manager/fuse_manager.cpp index 08e32ca8f..21f81fff0 100644 --- a/services/cloudfiledaemon/src/fuse_manager/fuse_manager.cpp +++ b/services/cloudfiledaemon/src/fuse_manager/fuse_manager.cpp @@ -532,7 +532,8 @@ static int CloudDoLookupHelper(fuse_ino_t parent, const char *name, struct fuse_ } if (child->path != childName && !create) { CLOUD_FILE_FAULT_REPORT(CloudFileFaultInfo{PHOTOS_BUNDLE_NAME, FaultOperation::LOOKUP, - FaultType::INODE_FILE, ENOMEM, "hash collision"}); + FaultType::INODE_FILE, ENOMEM, "hash collision: childName:" + GetAnonyString(childName) + + ",path:" + GetAnonyString(child->path)}); } child->path = childName; child->parent = parent; -- Gitee From 450daec9f6e81801a0a6ba6f8e120c61020271de Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=AB=E5=BF=B5?= Date: Sat, 23 Aug 2025 16:59:33 +0800 Subject: [PATCH 3/8] 1 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 别念 --- .../src/fuse_manager/fuse_manager.cpp | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/services/cloudfiledaemon/src/fuse_manager/fuse_manager.cpp b/services/cloudfiledaemon/src/fuse_manager/fuse_manager.cpp index 21f81fff0..770d1e6f8 100644 --- a/services/cloudfiledaemon/src/fuse_manager/fuse_manager.cpp +++ b/services/cloudfiledaemon/src/fuse_manager/fuse_manager.cpp @@ -488,6 +488,15 @@ static void GetMetaAttr(struct FuseData *data, shared_ptr ino, struc } } +static void CheckAndReport(const string &path, const string &childName, bool create) +{ + if (path != childName && !create) { + CLOUD_FILE_FAULT_REPORT(CloudFileFaultInfo{PHOTOS_BUNDLE_NAME, FaultOperation::LOOKUP, + FaultType::INODE_FILE, ENOMEM, "hash collision: childName:" + GetAnonyString(childName) + + ",path:" + GetAnonyString(path)}); + } +} + static int CloudDoLookupHelper(fuse_ino_t parent, const char *name, struct fuse_entry_param *e, FuseData *data, string& parentName) { @@ -530,11 +539,7 @@ static int CloudDoLookupHelper(fuse_ino_t parent, const char *name, struct fuse_ LOGW("invalidate %s", GetAnonyString(childName).c_str()); child->mBase = make_shared(mBase); } - if (child->path != childName && !create) { - CLOUD_FILE_FAULT_REPORT(CloudFileFaultInfo{PHOTOS_BUNDLE_NAME, FaultOperation::LOOKUP, - FaultType::INODE_FILE, ENOMEM, "hash collision: childName:" + GetAnonyString(childName) + - ",path:" + GetAnonyString(child->path)}); - } + CheckAndReport(child->path, childName, create); child->path = childName; child->parent = parent; LOGD("lookup success, child: %{private}s, refCount: %lld", GetAnonyString(child->path).c_str(), -- Gitee From 108b564b3c94a7fa8cfd80a95406fa3bdd9718e1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=AB=E5=BF=B5?= Date: Sat, 23 Aug 2025 17:06:35 +0800 Subject: [PATCH 4/8] 1 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 别念 --- .../fuse_manager_static_test.cpp | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/test/unittests/services_daemon/fuse_manager_static_test.cpp b/test/unittests/services_daemon/fuse_manager_static_test.cpp index a7c718843..3e8a178bc 100644 --- a/test/unittests/services_daemon/fuse_manager_static_test.cpp +++ b/test/unittests/services_daemon/fuse_manager_static_test.cpp @@ -414,4 +414,24 @@ HWTEST_F(FuseManagerStaticTest, IsHdc002, TestSize.Level1) } GTEST_LOG_(INFO) << "IsHdc002 End"; } + +/** + * @tc.name: CheckAndReport001 + * @tc.desc: Verify the IsHdc function + * @tc.type: FUNC + */ +HWTEST_F(FuseManagerStaticTest, CheckAndReport001, TestSize.Level1) +{ + GTEST_LOG_(INFO) << "CheckAndReport001 Begin"; + try { + string path = "/mnt/data/100/cloud_fuse/1"; + string child = "/mnt/data/100/cloud_fuse/2"; + bool create = false; + CheckAndReport(path, childName, create); + } catch (...) { + EXPECT_TRUE(false); + GTEST_LOG_(INFO) << "CheckAndReport001 Error"; + } + GTEST_LOG_(INFO) << "CheckAndReport001 End"; +} } // namespace OHOS::FileManagement::CloudSync::Test \ No newline at end of file -- Gitee From 1ec8de570b8b9dd992518cd151b1233237bc1c7a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=AB=E5=BF=B5?= Date: Sat, 23 Aug 2025 17:08:26 +0800 Subject: [PATCH 5/8] 1 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 别念 --- .../fuse_manager_static_test.cpp | 39 ++++++++++--------- 1 file changed, 20 insertions(+), 19 deletions(-) diff --git a/test/unittests/services_daemon/fuse_manager_static_test.cpp b/test/unittests/services_daemon/fuse_manager_static_test.cpp index 3e8a178bc..4d3c5d72b 100644 --- a/test/unittests/services_daemon/fuse_manager_static_test.cpp +++ b/test/unittests/services_daemon/fuse_manager_static_test.cpp @@ -64,6 +64,26 @@ void FuseManagerStaticTest::TearDown(void) GTEST_LOG_(INFO) << "TearDown"; } +/** + * @tc.name: CheckAndReport001 + * @tc.desc: Verify the IsHdc function + * @tc.type: FUNC + */ +HWTEST_F(FuseManagerStaticTest, CheckAndReport001, TestSize.Level1) +{ + GTEST_LOG_(INFO) << "CheckAndReport001 Begin"; + try { + string path = "/mnt/data/100/cloud_fuse/1"; + string child = "/mnt/data/100/cloud_fuse/2"; + bool create = false; + CheckAndReport(path, childName, create); + } catch (...) { + EXPECT_TRUE(false); + GTEST_LOG_(INFO) << "CheckAndReport001 Error"; + } + GTEST_LOG_(INFO) << "CheckAndReport001 End"; +} + /** * @tc.name: IsValidCachePathTest001 * @tc.desc: Verify the IsValidCachePath function @@ -415,23 +435,4 @@ HWTEST_F(FuseManagerStaticTest, IsHdc002, TestSize.Level1) GTEST_LOG_(INFO) << "IsHdc002 End"; } -/** - * @tc.name: CheckAndReport001 - * @tc.desc: Verify the IsHdc function - * @tc.type: FUNC - */ -HWTEST_F(FuseManagerStaticTest, CheckAndReport001, TestSize.Level1) -{ - GTEST_LOG_(INFO) << "CheckAndReport001 Begin"; - try { - string path = "/mnt/data/100/cloud_fuse/1"; - string child = "/mnt/data/100/cloud_fuse/2"; - bool create = false; - CheckAndReport(path, childName, create); - } catch (...) { - EXPECT_TRUE(false); - GTEST_LOG_(INFO) << "CheckAndReport001 Error"; - } - GTEST_LOG_(INFO) << "CheckAndReport001 End"; -} } // namespace OHOS::FileManagement::CloudSync::Test \ No newline at end of file -- Gitee From b182634775e261d42704a6b420bd6f5ff2da28f3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=AB=E5=BF=B5?= Date: Mon, 25 Aug 2025 11:18:01 +0800 Subject: [PATCH 6/8] 1 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 别念 --- test/unittests/services_daemon/fuse_manager_static_test.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/unittests/services_daemon/fuse_manager_static_test.cpp b/test/unittests/services_daemon/fuse_manager_static_test.cpp index 4d3c5d72b..80d1aa16d 100644 --- a/test/unittests/services_daemon/fuse_manager_static_test.cpp +++ b/test/unittests/services_daemon/fuse_manager_static_test.cpp @@ -74,7 +74,7 @@ HWTEST_F(FuseManagerStaticTest, CheckAndReport001, TestSize.Level1) GTEST_LOG_(INFO) << "CheckAndReport001 Begin"; try { string path = "/mnt/data/100/cloud_fuse/1"; - string child = "/mnt/data/100/cloud_fuse/2"; + string childName = "/mnt/data/100/cloud_fuse/2"; bool create = false; CheckAndReport(path, childName, create); } catch (...) { -- Gitee From 637208c366daddbf1306c5cf73f90604e36b9a5c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=AB=E5=BF=B5?= Date: Mon, 25 Aug 2025 11:19:58 +0800 Subject: [PATCH 7/8] 1 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 别念 --- test/unittests/services_daemon/fuse_manager_static_test.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/test/unittests/services_daemon/fuse_manager_static_test.cpp b/test/unittests/services_daemon/fuse_manager_static_test.cpp index 80d1aa16d..28f0f0976 100644 --- a/test/unittests/services_daemon/fuse_manager_static_test.cpp +++ b/test/unittests/services_daemon/fuse_manager_static_test.cpp @@ -434,5 +434,4 @@ HWTEST_F(FuseManagerStaticTest, IsHdc002, TestSize.Level1) } GTEST_LOG_(INFO) << "IsHdc002 End"; } - } // namespace OHOS::FileManagement::CloudSync::Test \ No newline at end of file -- Gitee From 8b6dd4691fb43ccd8a753696c058701c7b86d883 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=AB=E5=BF=B5?= Date: Mon, 25 Aug 2025 19:58:42 +0800 Subject: [PATCH 8/8] 1 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 别念 --- services/cloudfiledaemon/src/fuse_manager/fuse_manager.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/cloudfiledaemon/src/fuse_manager/fuse_manager.cpp b/services/cloudfiledaemon/src/fuse_manager/fuse_manager.cpp index 770d1e6f8..b96197d43 100644 --- a/services/cloudfiledaemon/src/fuse_manager/fuse_manager.cpp +++ b/services/cloudfiledaemon/src/fuse_manager/fuse_manager.cpp @@ -490,7 +490,7 @@ static void GetMetaAttr(struct FuseData *data, shared_ptr ino, struc static void CheckAndReport(const string &path, const string &childName, bool create) { - if (path != childName && !create) { + if (!create && path != childName) { CLOUD_FILE_FAULT_REPORT(CloudFileFaultInfo{PHOTOS_BUNDLE_NAME, FaultOperation::LOOKUP, FaultType::INODE_FILE, ENOMEM, "hash collision: childName:" + GetAnonyString(childName) + ",path:" + GetAnonyString(path)}); -- Gitee