mirror of
https://github.com/lkl/linux.git
synced 2025-12-19 16:13:19 +09:00
fs: introduce a wrapper uuid_to_fsid()
Some filesystem's use a digest of their uuid for f_fsid. Create a simple wrapper for this open coded folding. Filesystems that have a non null uuid but use the block device number for f_fsid may also consider using this helper. [JK: Added missing asm/byteorder.h include] Link: https://lore.kernel.org/r/20210322173944.449469-2-amir73il@gmail.com Acked-by: Damien Le Moal <damien.lemoal@wdc.com> Reviewed-by: Christian Brauner <christian.brauner@ubuntu.com> Signed-off-by: Amir Goldstein <amir73il@gmail.com> Signed-off-by: Jan Kara <jack@suse.cz>
This commit is contained in:
@@ -4,6 +4,7 @@
|
||||
|
||||
#include <linux/types.h>
|
||||
#include <asm/statfs.h>
|
||||
#include <asm/byteorder.h>
|
||||
|
||||
struct kstatfs {
|
||||
long f_type;
|
||||
@@ -50,4 +51,11 @@ static inline __kernel_fsid_t u64_to_fsid(u64 v)
|
||||
return (__kernel_fsid_t){.val = {(u32)v, (u32)(v>>32)}};
|
||||
}
|
||||
|
||||
/* Fold 16 bytes uuid to 64 bit fsid */
|
||||
static inline __kernel_fsid_t uuid_to_fsid(__u8 *uuid)
|
||||
{
|
||||
return u64_to_fsid(le64_to_cpup((void *)uuid) ^
|
||||
le64_to_cpup((void *)(uuid + sizeof(u64))));
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user