mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-04 02:30:34 +02:00 
			
		
		
		
	btrfs: retrieve more info from FS_INFO ioctl
Provide the basic information about filesystem through the ioctl: * b-tree node size (same as leaf size) * sector size * expected alignment of CLONE_RANGE and EXTENT_SAME ioctl arguments Backward compatibility: if the values are 0, kernel does not provide this information, the applications should ignore them. Signed-off-by: David Sterba <dsterba@suse.cz> Signed-off-by: Chris Mason <clm@fb.com>
This commit is contained in:
		
							parent
							
								
									7d824b6f9c
								
							
						
					
					
						commit
						80a773fbfc
					
				
					 2 changed files with 9 additions and 1 deletions
				
			
		| 
						 | 
					@ -2574,6 +2574,10 @@ static long btrfs_ioctl_fs_info(struct btrfs_root *root, void __user *arg)
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	mutex_unlock(&fs_devices->device_list_mutex);
 | 
						mutex_unlock(&fs_devices->device_list_mutex);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						fi_args->nodesize = root->fs_info->super_copy->nodesize;
 | 
				
			||||||
 | 
						fi_args->sectorsize = root->fs_info->super_copy->sectorsize;
 | 
				
			||||||
 | 
						fi_args->clone_alignment = root->fs_info->super_copy->sectorsize;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if (copy_to_user(arg, fi_args, sizeof(*fi_args)))
 | 
						if (copy_to_user(arg, fi_args, sizeof(*fi_args)))
 | 
				
			||||||
		ret = -EFAULT;
 | 
							ret = -EFAULT;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -181,7 +181,11 @@ struct btrfs_ioctl_fs_info_args {
 | 
				
			||||||
	__u64 max_id;				/* out */
 | 
						__u64 max_id;				/* out */
 | 
				
			||||||
	__u64 num_devices;			/* out */
 | 
						__u64 num_devices;			/* out */
 | 
				
			||||||
	__u8 fsid[BTRFS_FSID_SIZE];		/* out */
 | 
						__u8 fsid[BTRFS_FSID_SIZE];		/* out */
 | 
				
			||||||
	__u64 reserved[124];			/* pad to 1k */
 | 
						__u32 nodesize;				/* out */
 | 
				
			||||||
 | 
						__u32 sectorsize;			/* out */
 | 
				
			||||||
 | 
						__u32 clone_alignment;			/* out */
 | 
				
			||||||
 | 
						__u32 reserved32;
 | 
				
			||||||
 | 
						__u64 reserved[122];			/* pad to 1k */
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
struct btrfs_ioctl_feature_flags {
 | 
					struct btrfs_ioctl_feature_flags {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in a new issue