mirror_zfs/module/os/linux/zfs
Aleksa Sarai e015d6cc0b zfs_rename: restructure to have cleaner fallbacks
This is in preparation for RENAME_EXCHANGE and RENAME_WHITEOUT support
for ZoL, but the changes here allow for far nicer fallbacks than the
previous implementation (the source and target are re-linked in case of
the final link failing).

In addition, a small cleanup was done for the "target exists but is a
different type" codepath so that it's more understandable.

Reviewed-by: Ryan Moeller <ryan@iXsystems.com>
Reviewed-by: Alexander Motin <mav@FreeBSD.org>
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Aleksa Sarai <cyphar@cyphar.com>
Closes #12209
Closes #14070
2022-10-28 09:48:58 -07:00
..
abd_os.c Aligned free for aligned alloc 2022-10-26 15:08:31 -07:00
arc_os.c Cleanup: 64-bit kernel module parameters should use fixed width types 2022-10-13 10:03:29 -07:00
mmp_os.c Cleanup: 64-bit kernel module parameters should use fixed width types 2022-10-13 10:03:29 -07:00
policy.c Support idmapped mount 2022-10-19 11:17:09 -07:00
qat_compress.c Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
qat_crypt.c Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
qat.c Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
spa_misc_os.c Cleanup: 64-bit kernel module parameters should use fixed width types 2022-10-13 10:03:29 -07:00
trace.c Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
vdev_disk.c Convert enum zio_flag to uint64_t 2022-10-27 09:54:54 -07:00
vdev_file.c Cleanup: 64-bit kernel module parameters should use fixed width types 2022-10-13 10:03:29 -07:00
zfs_acl.c Support idmapped mount 2022-10-19 11:17:09 -07:00
zfs_ctldir.c Remove zpl_revalidate: fix snapshot rollback 2022-10-28 09:47:19 -07:00
zfs_debug.c Fix declarations of non-global variables 2022-10-18 11:05:32 -07:00
zfs_dir.c zfs_rename: restructure to have cleaner fallbacks 2022-10-28 09:48:58 -07:00
zfs_file_os.c Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
zfs_ioctl_os.c Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
zfs_racct.c module: zfs: fix unused, remove argsused 2021-12-23 09:42:47 -08:00
zfs_sysfs.c Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
zfs_uio.c Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
zfs_vfsops.c Remove zpl_revalidate: fix snapshot rollback 2022-10-28 09:47:19 -07:00
zfs_vnops_os.c zfs_rename: restructure to have cleaner fallbacks 2022-10-28 09:48:58 -07:00
zfs_znode.c Remove zpl_revalidate: fix snapshot rollback 2022-10-28 09:47:19 -07:00
zio_crypt.c Cleanup: Address Clang's static analyzer's unused code complaints 2022-10-14 13:37:54 -07:00
zpl_ctldir.c Support idmapped mount 2022-10-19 11:17:09 -07:00
zpl_export.c Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
zpl_file.c Support idmapped mount 2022-10-19 11:17:09 -07:00
zpl_inode.c Remove zpl_revalidate: fix snapshot rollback 2022-10-28 09:47:19 -07:00
zpl_super.c Support idmapped mount 2022-10-19 11:17:09 -07:00
zpl_xattr.c Support idmapped mount 2022-10-19 11:17:09 -07:00
zvol_os.c Fix declarations of non-global variables 2022-10-18 11:05:32 -07:00