mbox series

[pseudo,0/5] Fix rename/renameat w/ hardlinks

Message ID 1778624443-20857-1-git-send-email-mark.hatle@kernel.crashing.org
Headers show
Series Fix rename/renameat w/ hardlinks | expand

Message

Mark Hatle May 12, 2026, 10:20 p.m. UTC
Changqing Li found the issue related to the renaming followed by a
hardlink causing failures.  Created test case(s) based on Paul
Barker's suggestion.

The test cases check both 'mv / ln', as well as specific calls to
both rename and renameat2.

Due to these tests it was observed that rename had the same bug as
renameat2, and the fix was applied there as well.

Changqing Li (1):
  renameat2/renameat: only ignore when both old and new path are not in
    PSEUDO_INCLUDE_PATHS

Mark Hatle (4):
  run_tests.sh: Allow the user to specify specific tests to run
  tests: Add mv then hardlink testing
  rename: only ignore when both old and new path are not in
    PSEUDO_INCLUDE_PATHS
  Makefile.in: Bump version to 1.9.7

 Makefile.in                    |   2 +-
 makewrappers                   |   4 +-
 ports/unix/guts/rename.c       |  26 +++++++++--
 ports/unix/guts/renameat.c     |  32 ++++++++++---
 run_tests.sh                   |  32 +++++++++++--
 test/test-mv-hardlink.sh       |  52 +++++++++++++++++++++
 test/test-rename-hardlink.c    |  87 +++++++++++++++++++++++++++++++++++
 test/test-rename-hardlink.sh   |  14 ++++++
 test/test-renameat-hardlink.c  | 101 +++++++++++++++++++++++++++++++++++++++++
 test/test-renameat-hardlink.sh |  14 ++++++
 10 files changed, 348 insertions(+), 16 deletions(-)
 create mode 100755 test/test-mv-hardlink.sh
 create mode 100644 test/test-rename-hardlink.c
 create mode 100755 test/test-rename-hardlink.sh
 create mode 100644 test/test-renameat-hardlink.c
 create mode 100755 test/test-renameat-hardlink.sh