mirror of
				https://github.com/torvalds/linux.git
				synced 2025-10-31 16:48:26 +02:00 
			
		
		
		
	btrfs: start deprecation of mount option inode_cache
Estimated time of removal of the functionality is 5.11, the option will
be still parsed but will have no effect.
Reasons for deprecation and removal:
- very poor naming choice of the mount option, it's supposed to cache
  and reuse the inode _numbers_, but it sounds a some generic cache for
  inodes
- the only known usecase where this option would make sense is on a
  32bit architecture where inode numbers in one subvolume would be
  exhausted due to 32bit inode::i_ino
- the cache is stored on disk, consumes space, needs to be loaded and
  written back
- new inode number allocation is slower due to lookups into the cache
  (compared to a simple increment which is the default)
- uses the free-space-cache code that is going to be deprecated as well
  in the future
Known problems:
- since 2011, returning EEXIST when there's not enough space in a page
  to store all checksums, see commit 4b9465cb9e ("Btrfs: add mount -o
  inode_cache")
Remaining issues:
- if the option was enabled, new inodes created, the option disabled
  again, the cache is still stored on the devices and there's currently
  no way to remove it
Signed-off-by: David Sterba <dsterba@suse.com>
			
			
This commit is contained in:
		
							parent
							
								
									a2570ef330
								
							
						
					
					
						commit
						b547a88ea5
					
				
					 1 changed files with 2 additions and 0 deletions
				
			
		|  | @ -821,6 +821,8 @@ int btrfs_parse_options(struct btrfs_fs_info *info, char *options, | |||
| 			} | ||||
| 			break; | ||||
| 		case Opt_inode_cache: | ||||
| 			btrfs_warn(info, | ||||
| 	"the 'inode_cache' option is deprecated and will have no effect from 5.11"); | ||||
| 			btrfs_set_pending_and_info(info, INODE_MAP_CACHE, | ||||
| 					   "enabling inode map caching"); | ||||
| 			break; | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue
	
	 David Sterba
						David Sterba