From nobody Mon Sep 28 05:45:30 2026 Received: from smtpbguseast1.qq.com (smtpbguseast1.qq.com [54.204.34.129]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 942DE1DD0EF for ; Wed, 26 Aug 2026 02:36:54 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=54.204.34.129 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787711822; cv=none; b=Zv949qi1D8ct26I1/uI26SsCzZ6sL4cDBhXELBb/bfrEUtcLXPxHHmfo/AVs6BrgOYHEXE+924S05klOJLNHMWmacwZT9hOhD59Yjinif3zmUuymkaZf2pbb88jkgc1DviMjf7okWia+USNr5YJXF5pw3gc1AK5J7v6GJIfT/7I= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787711822; c=relaxed/simple; bh=gzvbsV6zjd7vOoDqvLUBb8wyJ/rm8KTfZY0lwgnbYpk=; h=From:To:Cc:Subject:Date:Message-Id:MIME-Version; b=ai164EMs75xDUXd9JNnF6FLZyT9e/P7HiI401EsELro5+RgkZ5yHR4N+cBDlQ/JNBp7n0vgpC9zISIOncJufvAgVQb47+BLoY2qvUqF4ssEyfOR3coYoQZ0Ke7DKFXiLZBHbaY5vqo6V3DIU5WOpJ5lW+WcEdgL0BzFBSIImfLA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=uniontech.com; spf=pass smtp.mailfrom=uniontech.com; dkim=pass (1024-bit key) header.d=uniontech.com header.i=@uniontech.com header.b=qJyHbevf; arc=none smtp.client-ip=54.204.34.129 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=uniontech.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=uniontech.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=uniontech.com header.i=@uniontech.com header.b="qJyHbevf" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=uniontech.com; s=onoh2408; t=1787711795; bh=w6hgunlWTYnLun/PbUuuqwc81InCJDGNJsGiFN+QeyU=; h=From:To:Subject:Date:Message-Id:MIME-Version; b=qJyHbevfgW8VnQg4tKOV1APpr3bLqQuJNFshrQhdMsrTVW81WAiSRrmB8qwvVmxkt 3ErQnADXmnajl3nnPW0LDX+f96CN1gHFiUQwUNN0kafMXgqMDBloKWhO6rP6h8D4FJ KD2j7yYodomz+JOH6wQht8kwHvpUEBWAWSJ+moFg= X-QQ-mid: esmtpgz15t1787711790td84087fd X-QQ-Originating-IP: GlUARXpA+GHXhFp1OR3tUj3VNFOWwH0mNjLDEJ5YM0M= Received: from uniontech.com ( [113.57.152.160]) by bizesmtp.qq.com (ESMTP) with id ; Wed, 26 Aug 2026 10:36:29 +0800 (CST) X-QQ-SSF: 0000000000000000000000000000000 X-QQ-GoodBg: 1 X-BIZMAIL-ID: 10514486910135528409 EX-QQ-RecipientCnt: 3 From: Yichong Chen To: aivazian.tigran@gmail.com Cc: linux-kernel@vger.kernel.org, Yichong Chen Subject: [PATCH] bfs: update target dirent when overwriting rename Date: Wed, 26 Aug 2026 10:36:26 +0800 Message-Id: <20260826023626.2326924-1-chenyichong@uniontech.com> X-Mailer: git-send-email 2.20.1 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-QQ-SENDSIZE: 520 Feedback-ID: esmtpgz:uniontech.com:qybglogicsvrgz:qybglogicsvrgz3a-0 X-QQ-XMAILINFO: NofCpF43UNElrupDyOvrO5gp5jPEfuUIL9DKy1ax5Nc76S4dQ0Ykmii6 FySS3xf4Jh+DChHN//9zfgev3FKWbyRgRYFQ86/UnEaXR/nIAAokduO59OKjDIC3Fptq6vX 6Nf5AOBh4jMp+sOU/VzoMbD5K7R6++MN5sgBDCxtMONK3Uqqdk1qWHmyewpLbdWpqJCA8qk Y+96KZxJvze/PBSM8/13ysedEVWYGw0jovJWi2+rLdiBvk9lNNHlf9AwLgSZc8r2dq9HWEr 1GuBMzENJhZmMuzJtQUmdhts3yS2u/PLNOCrkZ9I5b11EQllZ9vEzlgIWkaB/oRea5p+pEG k3a5BQE537/35katzcPdniLIXoSM4dn6v5LkjFJTvIlKhCoyWe9CkKVZE7pJIfCXWcjvAsY bWVyzoTHpRUD/VfUDQ7+bNC2O99FLHWnHDC0uwL8xvUqkP5eh+n9mR9fPcO90TH6kGvmB2J W3EjT9DhFUWFWVc3RPHRHD1R0SGfnMid93puS2YnaAhHI91OYGT02XD3+xv24dUllJHmoMq TXoKra3GrRuYq5c6gTPPPqi+/nWtVpszC7GPkhqh9dJzdMNai3PKoNb0dfZAJvonWfrm+1o ANeMhjp/Lm//H4ve8CwMhEJ63mMQEq2NVaAoBbR1NB1TR5RmwV4S8uG3m7oLAX9rvDexyN5 79CA3lv5MjrP2cem/posdkdqbGSwzA4HeRV9S5Bjfs1uw7wIUxj1x2qrsb4fVfw9y/YQ/XO 6WXJdSNjK9sCMIslT9JL/3Ai9Y8+4wuYQWN9k6u9t9fhtE7AyE7Z4hKqkkFs/8nJg8GFVlG In8uQYAo2vv623h/6W5i60BJli25FAG2sm15kbSGM9wRCoXcs8Rk6nGqRRJqSl1uZfn/icC Hnn0lFS3zfYz8fqzbfLYQw6VBoccpegz2TpjHCJUuAschy3uRSCw2D92QsQrhr6nQMjIO1k ROmMzp0h2sWCYU4nr+FHBD4NUR8rHoAkkH8wQIxbVLc1itqFwk2YgkZJ9yQS5MluarmYxN1 DJtvZyCzH0GiGuxAvk X-QQ-XMRINFO: OWPUhxQsoeAVwkVaQIEGSKwwgKCxK/fD5g== X-QQ-RECHKSPAM: 0 Content-Type: text/plain; charset="utf-8" When bfs_rename() overwrites an existing target, it drops the link count of the target inode but does not update the target directory entry to point to the source inode. The in-memory dentry state looks correct until the filesystem is remounted. After remount, the target name still points to the old inode number, which has already been dropped. Update the existing target directory entry with the source inode number and mark its metadata buffer dirty. Also update the target directory timestamp when the rename crosses directories. Signed-off-by: Yichong Chen --- fs/bfs/dir.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/fs/bfs/dir.c b/fs/bfs/dir.c index 91a4871fa051..199564270e6c 100644 --- a/fs/bfs/dir.c +++ b/fs/bfs/dir.c @@ -238,6 +238,14 @@ static int bfs_rename(struct mnt_idmap *idmap, struct = inode *old_dir, old_inode->i_ino); if (error) goto end_rename; + } else { + new_de->ino =3D cpu_to_le16((u16)old_inode->i_ino); + mmb_mark_buffer_dirty(new_bh, &BFS_I(new_dir)->i_metadata_bhs); + if (new_dir !=3D old_dir) { + inode_set_mtime_to_ts(new_dir, + inode_set_ctime_current(new_dir)); + mark_inode_dirty(new_dir); + } } old_de->ino =3D 0; inode_set_mtime_to_ts(old_dir, inode_set_ctime_current(old_dir)); --=20 2.51.0