summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--fs/exfat/dir.c3
-rw-r--r--fs/exfat/namei.c5
2 files changed, 3 insertions, 5 deletions
diff --git a/fs/exfat/dir.c b/fs/exfat/dir.c
index 599dc81c9a08..0008d4681d29 100644
--- a/fs/exfat/dir.c
+++ b/fs/exfat/dir.c
@@ -564,9 +564,6 @@ int exfat_init_ext_entry(struct inode *inode, struct exfat_chain *p_dir,
if (!ep)
return -EIO;
- if (exfat_get_entry_type(ep) & TYPE_BENIGN_SEC)
- exfat_free_benign_secondary_clusters(inode, ep);
-
exfat_init_name_entry(ep, uniname);
exfat_update_bh(bh, sync);
brelse(bh);
diff --git a/fs/exfat/namei.c b/fs/exfat/namei.c
index f56e223b9b8f..be6760297e8f 100644
--- a/fs/exfat/namei.c
+++ b/fs/exfat/namei.c
@@ -1082,12 +1082,13 @@ static int exfat_rename_file(struct inode *inode, struct exfat_chain *p_dir,
epold->dentry.file.attr |= cpu_to_le16(EXFAT_ATTR_ARCHIVE);
ei->attr |= EXFAT_ATTR_ARCHIVE;
}
+
+ exfat_remove_entries(inode, &old_es, ES_IDX_FIRST_FILENAME + 1);
+
ret = exfat_init_ext_entry(inode, p_dir, oldentry,
num_new_entries, p_uniname);
if (ret)
goto put_old_es;
-
- exfat_remove_entries(inode, &old_es, num_new_entries);
}
return exfat_put_dentry_set(&old_es, sync);