From 1ad18d3857984898b40c55e2a40673131e50ce97 Mon Sep 17 00:00:00 2001 From: runrunya Date: Fri, 11 Aug 2023 16:03:36 +0000 Subject: [PATCH 1/3] solve the problem with rename Signed-off-by: runrunya --- fs/hmdfs/inode_local.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fs/hmdfs/inode_local.c b/fs/hmdfs/inode_local.c index aca355d33928..034b4fd89042 100644 --- a/fs/hmdfs/inode_local.c +++ b/fs/hmdfs/inode_local.c @@ -649,8 +649,8 @@ int hmdfs_rename_local_dentry(struct inode *old_dir, struct dentry *old_dentry, lower_old_dir_dentry = dget_parent(lower_old_dentry); lower_new_dir_dentry = dget_parent(lower_new_dentry); trap = lock_rename(lower_old_dir_dentry, lower_new_dir_dentry); - old_dir_uid = hmdfs_override_inode_uid(d_inode(lower_old_dir_dentry)); new_dir_uid = hmdfs_override_inode_uid(d_inode(lower_new_dir_dentry)); + old_dir_uid = hmdfs_override_inode_uid(d_inode(lower_old_dir_dentry)); /* source should not be ancestor of target */ if (trap == lower_old_dentry) { -- Gitee From 42eb01b7c2ece4be07f45f534cf4b95ff67a1ce9 Mon Sep 17 00:00:00 2001 From: runrunya Date: Fri, 11 Aug 2023 16:27:06 +0000 Subject: [PATCH 2/3] change to check_and_fixup Signed-off-by: runrunya --- fs/hmdfs/inode_merge.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/fs/hmdfs/inode_merge.c b/fs/hmdfs/inode_merge.c index 795a1a262188..e466c66aabc8 100644 --- a/fs/hmdfs/inode_merge.c +++ b/fs/hmdfs/inode_merge.c @@ -850,8 +850,8 @@ int do_mkdir_merge(struct inode *parent_inode, struct dentry *child_dentry, ret = PTR_ERR(child_inode); goto out; } - child_inode->i_uid = parent_inode->i_uid; - child_inode->i_gid = parent_inode->i_gid; + check_and_fixup_ownership_remote(parent_inode, child_inode, + child_dentry); d_add(child_dentry, child_inode); /* nlink should be increased with the joining of children */ @@ -878,8 +878,8 @@ int do_create_merge(struct inode *parent_inode, struct dentry *child_dentry, ret = PTR_ERR(child_inode); goto out; } - child_inode->i_uid = parent_inode->i_uid; - child_inode->i_gid = parent_inode->i_gid; + check_and_fixup_ownership_remote(parent_inode, child_inode, + child_dentry); d_add(child_dentry, child_inode); /* nlink should be increased with the joining of children */ -- Gitee From aee71487670bc38c298f2fab5a4b2cd288513d9f Mon Sep 17 00:00:00 2001 From: runrunya Date: Fri, 11 Aug 2023 16:31:34 +0000 Subject: [PATCH 3/3] change to fixup Signed-off-by: runrunya --- fs/hmdfs/inode_local.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fs/hmdfs/inode_local.c b/fs/hmdfs/inode_local.c index 034b4fd89042..aca355d33928 100644 --- a/fs/hmdfs/inode_local.c +++ b/fs/hmdfs/inode_local.c @@ -649,8 +649,8 @@ int hmdfs_rename_local_dentry(struct inode *old_dir, struct dentry *old_dentry, lower_old_dir_dentry = dget_parent(lower_old_dentry); lower_new_dir_dentry = dget_parent(lower_new_dentry); trap = lock_rename(lower_old_dir_dentry, lower_new_dir_dentry); - new_dir_uid = hmdfs_override_inode_uid(d_inode(lower_new_dir_dentry)); old_dir_uid = hmdfs_override_inode_uid(d_inode(lower_old_dir_dentry)); + new_dir_uid = hmdfs_override_inode_uid(d_inode(lower_new_dir_dentry)); /* source should not be ancestor of target */ if (trap == lower_old_dentry) { -- Gitee