All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v4 1/3] hfsplus: fix to update ctime after rename
@ 2025-07-22  7:13 Yangtao Li
  2025-07-22  7:13 ` [PATCH v4 2/3] hfs: correct superblock flags Yangtao Li
                   ` (3 more replies)
  0 siblings, 4 replies; 10+ messages in thread
From: Yangtao Li @ 2025-07-22  7:13 UTC (permalink / raw)
  To: slava, glaubitz, Yangtao Li; +Cc: linux-fsdevel, linux-kernel

[BUG]
$ sudo ./check generic/003
FSTYP         -- hfsplus
PLATFORM      -- Linux/x86_64 graphic 6.8.0-58-generic #60~22.04.1-Ubuntu
MKFS_OPTIONS  -- /dev/loop29
MOUNT_OPTIONS -- /dev/loop29 /mnt/scratch

generic/003       - output mismatch
    --- tests/generic/003.out   2025-04-27 08:49:39.876945323 -0600
    +++ /home/graphic/fs/xfstests-dev/results//generic/003.out.bad

     QA output created by 003
    +ERROR: change time has not been updated after changing file1
     Silence is golden
    ...

Ran: generic/003
Failures: generic/003
Failed 1 of 1 tests

[CAUSE]
change time has not been updated after changing file1

[FIX]
Update file ctime after rename in hfsplus_rename().

Signed-off-by: Yangtao Li <frank.li@vivo.com>
Tested-by: Viacheslav Dubeyko <slava@dubeyko.com>
Reviewed-by: Viacheslav Dubeyko <slava@dubeyko.com>
---
 fs/hfsplus/dir.c | 11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

diff --git a/fs/hfsplus/dir.c b/fs/hfsplus/dir.c
index 876bbb80fb4d..e77942440240 100644
--- a/fs/hfsplus/dir.c
+++ b/fs/hfsplus/dir.c
@@ -534,6 +534,7 @@ static int hfsplus_rename(struct mnt_idmap *idmap,
 			  struct inode *new_dir, struct dentry *new_dentry,
 			  unsigned int flags)
 {
+	struct inode *inode = d_inode(old_dentry);
 	int res;
 
 	if (flags & ~RENAME_NOREPLACE)
@@ -552,9 +553,13 @@ static int hfsplus_rename(struct mnt_idmap *idmap,
 	res = hfsplus_rename_cat((u32)(unsigned long)old_dentry->d_fsdata,
 				 old_dir, &old_dentry->d_name,
 				 new_dir, &new_dentry->d_name);
-	if (!res)
-		new_dentry->d_fsdata = old_dentry->d_fsdata;
-	return res;
+	if (res)
+		return res;
+
+	new_dentry->d_fsdata = old_dentry->d_fsdata;
+	inode_set_ctime_current(inode);
+	mark_inode_dirty(inode);
+	return 0;
 }
 
 const struct inode_operations hfsplus_dir_inode_operations = {
-- 
2.48.1


^ permalink raw reply related	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2025-07-24 18:30 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-07-22  7:13 [PATCH v4 1/3] hfsplus: fix to update ctime after rename Yangtao Li
2025-07-22  7:13 ` [PATCH v4 2/3] hfs: correct superblock flags Yangtao Li
2025-07-22 19:06   ` Viacheslav Dubeyko
2025-07-22  7:13 ` [PATCH v4 3/3] hfs: fix to update ctime after rename Yangtao Li
2025-07-22 19:26   ` Viacheslav Dubeyko
2025-07-22 18:51 ` [PATCH v4 1/3] hfsplus: " Viacheslav Dubeyko
2025-07-23  2:32 ` Al Viro
2025-07-23 17:58   ` Viacheslav Dubeyko
2025-07-23 21:25     ` Al Viro
2025-07-24 18:30       ` Viacheslav Dubeyko

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.