mirror of
				https://github.com/RGBCube/serenity
				synced 2025-10-31 21:22:46 +00:00 
			
		
		
		
	Kernel/FileSystem: Remove disk cache only after ext2 superblock flush
We first must flush the superblock through the BlockBasedFileSystem methods properly and only then clear the DiskCache pointer, to prevent a possible kernel panic due to nullptr dereference.
This commit is contained in:
		
							parent
							
								
									abf7941bb9
								
							
						
					
					
						commit
						dbab4d34d7
					
				
					 1 changed files with 1 additions and 1 deletions
				
			
		|  | @ -589,7 +589,6 @@ ErrorOr<void> Ext2FS::prepare_to_clear_last_mount(Inode& mount_guest_inode) | ||||||
|     if (any_inode_busy) |     if (any_inode_busy) | ||||||
|         return EBUSY; |         return EBUSY; | ||||||
| 
 | 
 | ||||||
|     BlockBasedFileSystem::remove_disk_cache_before_last_unmount(); |  | ||||||
|     m_inode_cache.clear(); |     m_inode_cache.clear(); | ||||||
|     m_root_inode = nullptr; |     m_root_inode = nullptr; | ||||||
| 
 | 
 | ||||||
|  | @ -597,6 +596,7 @@ ErrorOr<void> Ext2FS::prepare_to_clear_last_mount(Inode& mount_guest_inode) | ||||||
|     dmesgln("Ext2FS: Clean unmount, setting superblock to valid state"); |     dmesgln("Ext2FS: Clean unmount, setting superblock to valid state"); | ||||||
|     m_super_block.s_state = EXT2_VALID_FS; |     m_super_block.s_state = EXT2_VALID_FS; | ||||||
|     TRY(flush_super_block()); |     TRY(flush_super_block()); | ||||||
|  |     BlockBasedFileSystem::remove_disk_cache_before_last_unmount(); | ||||||
| 
 | 
 | ||||||
|     return {}; |     return {}; | ||||||
| } | } | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Liav A
						Liav A