mirror of
				https://github.com/torvalds/linux.git
				synced 2025-10-31 16:48:26 +02:00 
			
		
		
		
	ceph: cleanup hardcoded constants of file handle size
The ceph/export.c contains very confusing logic of file handle size calculation based on hardcoded values. This patch makes the cleanup of this logic by means of introduction the named constants. Signed-off-by: Viacheslav Dubeyko <Slava.Dubeyko@ibm.com> Reviewed-by: Alex Markuze <amarkuze@redhat.com> Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
This commit is contained in:
		
							parent
							
								
									0abd87942e
								
							
						
					
					
						commit
						d50eb28f2d
					
				
					 1 changed files with 13 additions and 8 deletions
				
			
		|  | @ -33,12 +33,19 @@ struct ceph_nfs_snapfh { | ||||||
| 	u32 hash; | 	u32 hash; | ||||||
| } __attribute__ ((packed)); | } __attribute__ ((packed)); | ||||||
| 
 | 
 | ||||||
|  | #define BYTES_PER_U32		(sizeof(u32)) | ||||||
|  | #define CEPH_FH_BASIC_SIZE \ | ||||||
|  | 	(sizeof(struct ceph_nfs_fh) / BYTES_PER_U32) | ||||||
|  | #define CEPH_FH_WITH_PARENT_SIZE \ | ||||||
|  | 	(sizeof(struct ceph_nfs_confh) / BYTES_PER_U32) | ||||||
|  | #define CEPH_FH_SNAPPED_INODE_SIZE \ | ||||||
|  | 	(sizeof(struct ceph_nfs_snapfh) / BYTES_PER_U32) | ||||||
|  | 
 | ||||||
| static int ceph_encode_snapfh(struct inode *inode, u32 *rawfh, int *max_len, | static int ceph_encode_snapfh(struct inode *inode, u32 *rawfh, int *max_len, | ||||||
| 			      struct inode *parent_inode) | 			      struct inode *parent_inode) | ||||||
| { | { | ||||||
| 	struct ceph_client *cl = ceph_inode_to_client(inode); | 	struct ceph_client *cl = ceph_inode_to_client(inode); | ||||||
| 	static const int snap_handle_length = | 	static const int snap_handle_length = CEPH_FH_SNAPPED_INODE_SIZE; | ||||||
| 		sizeof(struct ceph_nfs_snapfh) >> 2; |  | ||||||
| 	struct ceph_nfs_snapfh *sfh = (void *)rawfh; | 	struct ceph_nfs_snapfh *sfh = (void *)rawfh; | ||||||
| 	u64 snapid = ceph_snap(inode); | 	u64 snapid = ceph_snap(inode); | ||||||
| 	int ret; | 	int ret; | ||||||
|  | @ -88,10 +95,8 @@ static int ceph_encode_fh(struct inode *inode, u32 *rawfh, int *max_len, | ||||||
| 			  struct inode *parent_inode) | 			  struct inode *parent_inode) | ||||||
| { | { | ||||||
| 	struct ceph_client *cl = ceph_inode_to_client(inode); | 	struct ceph_client *cl = ceph_inode_to_client(inode); | ||||||
| 	static const int handle_length = | 	static const int handle_length = CEPH_FH_BASIC_SIZE; | ||||||
| 		sizeof(struct ceph_nfs_fh) >> 2; | 	static const int connected_handle_length = CEPH_FH_WITH_PARENT_SIZE; | ||||||
| 	static const int connected_handle_length = |  | ||||||
| 		sizeof(struct ceph_nfs_confh) >> 2; |  | ||||||
| 	int type; | 	int type; | ||||||
| 
 | 
 | ||||||
| 	if (ceph_snap(inode) != CEPH_NOSNAP) | 	if (ceph_snap(inode) != CEPH_NOSNAP) | ||||||
|  | @ -308,7 +313,7 @@ static struct dentry *ceph_fh_to_dentry(struct super_block *sb, | ||||||
| 	if (fh_type != FILEID_INO32_GEN  && | 	if (fh_type != FILEID_INO32_GEN  && | ||||||
| 	    fh_type != FILEID_INO32_GEN_PARENT) | 	    fh_type != FILEID_INO32_GEN_PARENT) | ||||||
| 		return NULL; | 		return NULL; | ||||||
| 	if (fh_len < sizeof(*fh) / 4) | 	if (fh_len < sizeof(*fh) / BYTES_PER_U32) | ||||||
| 		return NULL; | 		return NULL; | ||||||
| 
 | 
 | ||||||
| 	doutc(fsc->client, "%llx\n", fh->ino); | 	doutc(fsc->client, "%llx\n", fh->ino); | ||||||
|  | @ -427,7 +432,7 @@ static struct dentry *ceph_fh_to_parent(struct super_block *sb, | ||||||
| 
 | 
 | ||||||
| 	if (fh_type != FILEID_INO32_GEN_PARENT) | 	if (fh_type != FILEID_INO32_GEN_PARENT) | ||||||
| 		return NULL; | 		return NULL; | ||||||
| 	if (fh_len < sizeof(*cfh) / 4) | 	if (fh_len < sizeof(*cfh) / BYTES_PER_U32) | ||||||
| 		return NULL; | 		return NULL; | ||||||
| 
 | 
 | ||||||
| 	doutc(fsc->client, "%llx\n", cfh->parent_ino); | 	doutc(fsc->client, "%llx\n", cfh->parent_ino); | ||||||
|  |  | ||||||
		Loading…
	
		Reference in a new issue
	
	 Viacheslav Dubeyko
						Viacheslav Dubeyko