From 16a5a234c1a3a5411ef34c23be1a5719b9a766d0 Mon Sep 17 00:00:00 2001 From: Bananymous Date: Wed, 27 Aug 2025 00:21:38 +0300 Subject: [PATCH] Kernel: Cleanup hardlink creation --- kernel/kernel/FS/Ext2/Inode.cpp | 4 +--- kernel/kernel/FS/Inode.cpp | 2 ++ 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/kernel/kernel/FS/Ext2/Inode.cpp b/kernel/kernel/FS/Ext2/Inode.cpp index 0dcdf75d..3317c3c2 100644 --- a/kernel/kernel/FS/Ext2/Inode.cpp +++ b/kernel/kernel/FS/Ext2/Inode.cpp @@ -569,9 +569,7 @@ done: { ASSERT(this->mode().ifdir()); ASSERT(!inode->mode().ifdir()); - - if (&m_fs != inode->filesystem()) - return BAN::Error::from_errno(EXDEV); + ASSERT(&m_fs == inode->filesystem()); if (!find_inode_impl(name).is_error()) return BAN::Error::from_errno(EEXIST); diff --git a/kernel/kernel/FS/Inode.cpp b/kernel/kernel/FS/Inode.cpp index 05563843..250413ec 100644 --- a/kernel/kernel/FS/Inode.cpp +++ b/kernel/kernel/FS/Inode.cpp @@ -107,6 +107,8 @@ namespace Kernel return BAN::Error::from_errno(ENOTDIR); if (inode->mode().ifdir()) return BAN::Error::from_errno(EINVAL); + if (this->filesystem() != inode->filesystem()) + return BAN::Error::from_errno(EXDEV); if (auto* fs = filesystem(); fs && (fs->flag() & ST_RDONLY)) return BAN::Error::from_errno(EROFS); return link_inode_impl(name, inode);