Messages in this thread Patch in this message | | | From | "" <> | Subject | [PATCH 1/2] exfat: fix referencing wrong parent directory information after renaming | Date | Fri, 25 Mar 2022 09:42:08 +0000 |
| |
During renaming, the parent directory information maybe updated. But the file/directory still references to the old parent directory information.
This bug will cause 2 problems.
(1) The renamed file can not be written.
[10768.175172] exFAT-fs (sda1): error, failed to bmap (inode : 7afd50e4 iblock : 0, err : -5) [10768.184285] exFAT-fs (sda1): Filesystem has been set read-only ash: write error: Input/output error
(2) Some dentries of the renamed file/directory are not set to deleted after removing the file/directory.
fixes: 5f2aa075070c ("exfat: add inode operations")
Signed-off-by: Yuezhang Mo <Yuezhang.Mo@sony.com> Reviewed-by: Andy Wu <Andy.Wu@sony.com> Reviewed-by: Aoyama Wataru <wataru.aoyama@sony.com> Reviewed-by: Daniel Palmer <daniel.palmer@sony.com> --- fs/exfat/namei.c | 1 + 1 file changed, 1 insertion(+)
diff --git a/fs/exfat/namei.c b/fs/exfat/namei.c index a02a04a993bf..e7adb6bfd9d5 100644 --- a/fs/exfat/namei.c +++ b/fs/exfat/namei.c @@ -1080,6 +1080,7 @@ static int exfat_rename_file(struct inode *inode, struct exfat_chain *p_dir, exfat_remove_entries(inode, p_dir, oldentry, 0, num_old_entries); + ei->dir = *p_dir; ei->entry = newentry; } else { if (exfat_get_entry_type(epold) == TYPE_FILE) { -- 2.25.1[unhandled content-type:application/octet-stream] | |