Kernel: Inode::create_file() now takes uid and gid as parameters
This commit is contained in:
		
							parent
							
								
									f1089e2b8a
								
							
						
					
					
						commit
						3b5bc63d1b
					
				|  | @ -146,7 +146,7 @@ namespace Kernel | |||
| 
 | ||||
| 		virtual BAN::ErrorOr<size_t> read(size_t, void*, size_t) override; | ||||
| 
 | ||||
| 		virtual BAN::ErrorOr<void> create_file(BAN::StringView, mode_t) override; | ||||
| 		virtual BAN::ErrorOr<void> create_file(BAN::StringView, mode_t, uid_t, gid_t) override; | ||||
| 
 | ||||
| 	private: | ||||
| 		BAN::ErrorOr<uint32_t> data_block_index(uint32_t); | ||||
|  |  | |||
|  | @ -88,7 +88,7 @@ namespace Kernel | |||
| 		virtual BAN::ErrorOr<size_t> read(size_t, void*, size_t)		{ if (mode().ifdir()) return BAN::Error::from_errno(EISDIR); ASSERT_NOT_REACHED(); } | ||||
| 		virtual BAN::ErrorOr<size_t> write(size_t, const void*, size_t)	{ if (mode().ifdir()) return BAN::Error::from_errno(EISDIR); ASSERT_NOT_REACHED(); } | ||||
| 
 | ||||
| 		virtual BAN::ErrorOr<void> create_file(BAN::StringView, mode_t)	{ if (!mode().ifdir()) return BAN::Error::from_errno(ENOTDIR); ASSERT_NOT_REACHED(); } | ||||
| 		virtual BAN::ErrorOr<void> create_file(BAN::StringView, mode_t, uid_t, gid_t) { if (!mode().ifdir()) return BAN::Error::from_errno(ENOTDIR); ASSERT_NOT_REACHED(); } | ||||
| 	}; | ||||
| 
 | ||||
| } | ||||
|  | @ -70,7 +70,7 @@ namespace Kernel | |||
| 
 | ||||
| 		virtual BAN::ErrorOr<BAN::RefPtr<Inode>> directory_find_inode(BAN::StringView) override; | ||||
| 		virtual BAN::ErrorOr<void> directory_read_next_entries(off_t, DirectoryEntryList*, size_t) override; | ||||
| 		virtual BAN::ErrorOr<void> create_file(BAN::StringView, mode_t)	override; | ||||
| 		virtual BAN::ErrorOr<void> create_file(BAN::StringView, mode_t, uid_t, gid_t) override; | ||||
| 
 | ||||
| 	private: | ||||
| 		RamDirectoryInode(RamFileSystem&, ino_t parent, mode_t, uid_t, gid_t); | ||||
|  |  | |||
|  | @ -356,7 +356,7 @@ namespace Kernel | |||
| 		return {}; | ||||
| 	} | ||||
| 
 | ||||
| 	BAN::ErrorOr<void> Ext2Inode::create_file(BAN::StringView name, mode_t mode) | ||||
| 	BAN::ErrorOr<void> Ext2Inode::create_file(BAN::StringView name, mode_t mode, uid_t uid, gid_t gid) | ||||
| 	{ | ||||
| 		if (!this->mode().ifdir()) | ||||
| 			return BAN::Error::from_errno(ENOTDIR); | ||||
|  | @ -378,13 +378,13 @@ namespace Kernel | |||
| 
 | ||||
| 		Ext2::Inode ext2_inode; | ||||
| 		ext2_inode.mode			= mode; | ||||
| 		ext2_inode.uid			= 0; | ||||
| 		ext2_inode.uid			= uid; | ||||
| 		ext2_inode.size			= 0; | ||||
| 		ext2_inode.atime 		= current_time; | ||||
| 		ext2_inode.ctime 		= current_time; | ||||
| 		ext2_inode.mtime 		= current_time; | ||||
| 		ext2_inode.dtime 		= current_time; | ||||
| 		ext2_inode.gid			= 0; | ||||
| 		ext2_inode.gid			= gid; | ||||
| 		ext2_inode.links_count	= 1; | ||||
| 		ext2_inode.blocks		= 0; | ||||
| 		ext2_inode.flags		= 0; | ||||
|  |  | |||
|  | @ -153,8 +153,12 @@ namespace Kernel | |||
| 		return {}; | ||||
| 	} | ||||
| 
 | ||||
| 	BAN::ErrorOr<void> RamDirectoryInode::create_file(BAN::StringView, mode_t) | ||||
| 	BAN::ErrorOr<void> RamDirectoryInode::create_file(BAN::StringView name, mode_t mode, uid_t uid, gid_t gid) | ||||
| 	{ | ||||
| 		(void)name; | ||||
| 		(void)mode; | ||||
| 		(void)uid; | ||||
| 		(void)gid; | ||||
| 		ASSERT_NOT_REACHED(); | ||||
| 	} | ||||
| 
 | ||||
|  |  | |||
|  | @ -567,7 +567,7 @@ namespace Kernel | |||
| 		auto file_name = absolute_path.sv().substring(index); | ||||
| 
 | ||||
| 		auto parent_file = TRY(VirtualFileSystem::get().file_from_absolute_path(m_credentials, directory, O_WRONLY)); | ||||
| 		TRY(parent_file.inode->create_file(file_name, mode)); | ||||
| 		TRY(parent_file.inode->create_file(file_name, mode, m_credentials.euid(), m_credentials.egid())); | ||||
| 
 | ||||
| 		return 0; | ||||
| 	} | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue