forked from mirrors/linux
		
	NFS: refactor code for calculating the crc32 hash of a filehandle
We want to be able to display the crc32 hash of the filehandle in tracepoints. Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
This commit is contained in:
		
							parent
							
								
									c2dd1378fa
								
							
						
					
					
						commit
						1264a2f053
					
				
					 2 changed files with 21 additions and 2 deletions
				
			
		|  | @ -38,7 +38,6 @@ | |||
| #include <linux/slab.h> | ||||
| #include <linux/compat.h> | ||||
| #include <linux/freezer.h> | ||||
| #include <linux/crc32.h> | ||||
| 
 | ||||
| #include <asm/uaccess.h> | ||||
| 
 | ||||
|  | @ -1190,7 +1189,7 @@ u32 _nfs_display_fhandle_hash(const struct nfs_fh *fh) | |||
| { | ||||
| 	/* wireshark uses 32-bit AUTODIN crc and does a bitwise
 | ||||
| 	 * not on the result */ | ||||
| 	return ~crc32(0xFFFFFFFF, &fh->data[0], fh->size); | ||||
| 	return nfs_fhandle_hash(fh); | ||||
| } | ||||
| 
 | ||||
| /*
 | ||||
|  |  | |||
|  | @ -5,6 +5,7 @@ | |||
| #include "nfs4_fs.h" | ||||
| #include <linux/mount.h> | ||||
| #include <linux/security.h> | ||||
| #include <linux/crc32.h> | ||||
| 
 | ||||
| #define NFS_MS_MASK (MS_RDONLY|MS_NOSUID|MS_NODEV|MS_NOEXEC|MS_SYNCHRONOUS) | ||||
| 
 | ||||
|  | @ -574,3 +575,22 @@ u64 nfs_timespec_to_change_attr(const struct timespec *ts) | |||
| { | ||||
| 	return ((u64)ts->tv_sec << 30) + ts->tv_nsec; | ||||
| } | ||||
| 
 | ||||
| #ifdef CONFIG_CRC32 | ||||
| /**
 | ||||
|  * nfs_fhandle_hash - calculate the crc32 hash for the filehandle | ||||
|  * @fh - pointer to filehandle | ||||
|  * | ||||
|  * returns a crc32 hash for the filehandle that is compatible with | ||||
|  * the one displayed by "wireshark". | ||||
|  */ | ||||
| static inline u32 nfs_fhandle_hash(const struct nfs_fh *fh) | ||||
| { | ||||
| 	return ~crc32_le(0xFFFFFFFF, &fh->data[0], fh->size); | ||||
| } | ||||
| #else | ||||
| static inline u32 nfs_fhandle_hash(const struct nfs_fh *fh) | ||||
| { | ||||
| 	return 0; | ||||
| } | ||||
| #endif | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue
	
	 Trond Myklebust
						Trond Myklebust