* [PATCH 01/16] xfs: use uuid_copy() helper to abstract uuid_t
2017-05-10 18:01 cleanup UUID types Christoph Hellwig
@ 2017-05-10 18:01 ` Christoph Hellwig
2017-05-10 18:02 ` [PATCH 02/16] xfs: use uuid_be to implement the uuid_t type Christoph Hellwig
` (17 subsequent siblings)
18 siblings, 0 replies; 29+ messages in thread
From: Christoph Hellwig @ 2017-05-10 18:01 UTC (permalink / raw)
To: Andy Shevchenko, Amir Goldstein, linux-fsdevel
Cc: Shaohua Li, Dan Williams, David Howells, Steven Whitehouse,
Mimi Zohar, linux-xfs, linux-raid, linux-nvdimm, linux-kernel
From: Amir Goldstein <amir73il@gmail.com>
uuid_t definition is about to change.
Signed-off-by: Amir Goldstein <amir73il@gmail.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
---
fs/xfs/xfs_inode_item.c | 8 ++------
1 file changed, 2 insertions(+), 6 deletions(-)
diff --git a/fs/xfs/xfs_inode_item.c b/fs/xfs/xfs_inode_item.c
index 08cb7d1a4a3a..013cc78d7daf 100644
--- a/fs/xfs/xfs_inode_item.c
+++ b/fs/xfs/xfs_inode_item.c
@@ -834,9 +834,7 @@ xfs_inode_item_format_convert(
in_f->ilf_dsize = in_f32->ilf_dsize;
in_f->ilf_ino = in_f32->ilf_ino;
/* copy biggest field of ilf_u */
- memcpy(in_f->ilf_u.ilfu_uuid.__u_bits,
- in_f32->ilf_u.ilfu_uuid.__u_bits,
- sizeof(uuid_t));
+ uuid_copy(&in_f->ilf_u.ilfu_uuid, &in_f32->ilf_u.ilfu_uuid);
in_f->ilf_blkno = in_f32->ilf_blkno;
in_f->ilf_len = in_f32->ilf_len;
in_f->ilf_boffset = in_f32->ilf_boffset;
@@ -851,9 +849,7 @@ xfs_inode_item_format_convert(
in_f->ilf_dsize = in_f64->ilf_dsize;
in_f->ilf_ino = in_f64->ilf_ino;
/* copy biggest field of ilf_u */
- memcpy(in_f->ilf_u.ilfu_uuid.__u_bits,
- in_f64->ilf_u.ilfu_uuid.__u_bits,
- sizeof(uuid_t));
+ uuid_copy(&in_f->ilf_u.ilfu_uuid, &in_f64->ilf_u.ilfu_uuid);
in_f->ilf_blkno = in_f64->ilf_blkno;
in_f->ilf_len = in_f64->ilf_len;
in_f->ilf_boffset = in_f64->ilf_boffset;
--
2.11.0
^ permalink raw reply related [flat|nested] 29+ messages in thread
* [PATCH 02/16] xfs: use uuid_be to implement the uuid_t type
2017-05-10 18:01 cleanup UUID types Christoph Hellwig
2017-05-10 18:01 ` [PATCH 01/16] xfs: use uuid_copy() helper to abstract uuid_t Christoph Hellwig
@ 2017-05-10 18:02 ` Christoph Hellwig
2017-05-10 18:02 ` [PATCH 03/16] uuid: rename uuid types Christoph Hellwig
` (16 subsequent siblings)
18 siblings, 0 replies; 29+ messages in thread
From: Christoph Hellwig @ 2017-05-10 18:02 UTC (permalink / raw)
To: Andy Shevchenko, Amir Goldstein, linux-fsdevel
Cc: Shaohua Li, Dan Williams, David Howells, Steven Whitehouse,
Mimi Zohar, linux-xfs, linux-raid, linux-nvdimm, linux-kernel
Use the generic Linux definition to implement our UUID type, this will
allow using more generic infrastructure in the future.
Signed-off-by: Christoph Hellwig <hch@lst.de>
---
fs/xfs/uuid.h | 4 ----
fs/xfs/xfs_linux.h | 3 +++
2 files changed, 3 insertions(+), 4 deletions(-)
diff --git a/fs/xfs/uuid.h b/fs/xfs/uuid.h
index 104db0f3bed6..4f1441ba4fa5 100644
--- a/fs/xfs/uuid.h
+++ b/fs/xfs/uuid.h
@@ -18,10 +18,6 @@
#ifndef __XFS_SUPPORT_UUID_H__
#define __XFS_SUPPORT_UUID_H__
-typedef struct {
- unsigned char __u_bits[16];
-} uuid_t;
-
extern int uuid_is_nil(uuid_t *uuid);
extern int uuid_equal(uuid_t *uuid1, uuid_t *uuid2);
extern void uuid_getnodeuniq(uuid_t *uuid, int fsid [2]);
diff --git a/fs/xfs/xfs_linux.h b/fs/xfs/xfs_linux.h
index 044fb0e15390..89ee5ec66837 100644
--- a/fs/xfs/xfs_linux.h
+++ b/fs/xfs/xfs_linux.h
@@ -19,6 +19,7 @@
#define __XFS_LINUX__
#include <linux/types.h>
+#include <linux/uuid.h>
/*
* Kernel specific type declarations for XFS
@@ -38,6 +39,8 @@ typedef __s64 xfs_daddr_t; /* <disk address> type */
typedef __u32 xfs_dev_t;
typedef __u32 xfs_nlink_t;
+typedef uuid_be uuid_t;
+
#include "xfs_types.h"
#include "kmem.h"
--
2.11.0
^ permalink raw reply related [flat|nested] 29+ messages in thread
* [PATCH 03/16] uuid: rename uuid types
2017-05-10 18:01 cleanup UUID types Christoph Hellwig
2017-05-10 18:01 ` [PATCH 01/16] xfs: use uuid_copy() helper to abstract uuid_t Christoph Hellwig
2017-05-10 18:02 ` [PATCH 02/16] xfs: use uuid_be to implement the uuid_t type Christoph Hellwig
@ 2017-05-10 18:02 ` Christoph Hellwig
2017-05-10 19:15 ` Amir Goldstein
2017-05-10 18:02 ` [PATCH 04/16] uuid: don't export guid_index and uuid_index Christoph Hellwig
` (15 subsequent siblings)
18 siblings, 1 reply; 29+ messages in thread
From: Christoph Hellwig @ 2017-05-10 18:02 UTC (permalink / raw)
To: Andy Shevchenko, Amir Goldstein, linux-fsdevel
Cc: Shaohua Li, Dan Williams, David Howells, Steven Whitehouse,
Mimi Zohar, linux-xfs, linux-raid, linux-nvdimm, linux-kernel
Our "little endian" UUID really is a Wintel GUID, so rename it and its
helpers such (guid_t). The big endian UUID is the only true one, so
give it the name uuid_t. The uuid_le and uuid_be names are retained for,
but will hopefully go away soon.
Also remove the existing typedef in XFS that's now been superceeded by
the generic type name.
Signed-off-by: Christoph Hellwig <hch@lst.de>
[andy: also updated the UUID_LE/UUID_BE macros including fallout]
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
---
fs/jfs/jfs_logmgr.h | 4 ++--
fs/xfs/xfs_linux.h | 2 --
include/linux/efi.h | 3 +--
include/linux/uuid.h | 28 ++++++++++++++++++----------
include/uapi/linux/uuid.h | 27 +++++++++++++++------------
lib/test_uuid.c | 12 ++++++------
lib/uuid.c | 28 ++++++++++++++--------------
lib/vsprintf.c | 4 ++--
8 files changed, 58 insertions(+), 50 deletions(-)
diff --git a/fs/jfs/jfs_logmgr.h b/fs/jfs/jfs_logmgr.h
index e38c21598850..0b9efddeb9f5 100644
--- a/fs/jfs/jfs_logmgr.h
+++ b/fs/jfs/jfs_logmgr.h
@@ -19,6 +19,8 @@
#ifndef _H_JFS_LOGMGR
#define _H_JFS_LOGMGR
+#include <linux/uuid.h>
+
#include "jfs_filsys.h"
#include "jfs_lock.h"
@@ -80,8 +82,6 @@ struct logsuper {
} active[MAX_ACTIVE]; /* 2048: active file systems list */
};
-#define NULL_UUID "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
-
/* log flag: commit option (see jfs_filsys.h) */
/* log state */
diff --git a/fs/xfs/xfs_linux.h b/fs/xfs/xfs_linux.h
index 89ee5ec66837..2c33d915e550 100644
--- a/fs/xfs/xfs_linux.h
+++ b/fs/xfs/xfs_linux.h
@@ -39,8 +39,6 @@ typedef __s64 xfs_daddr_t; /* <disk address> type */
typedef __u32 xfs_dev_t;
typedef __u32 xfs_nlink_t;
-typedef uuid_be uuid_t;
-
#include "xfs_types.h"
#include "kmem.h"
diff --git a/include/linux/efi.h b/include/linux/efi.h
index ec36f42a2add..cbd4d00e62c5 100644
--- a/include/linux/efi.h
+++ b/include/linux/efi.h
@@ -50,7 +50,7 @@ typedef void *efi_handle_t;
typedef uuid_le efi_guid_t;
#define EFI_GUID(a,b,c,d0,d1,d2,d3,d4,d5,d6,d7) \
- UUID_LE(a, b, c, d0, d1, d2, d3, d4, d5, d6, d7)
+ GUID(a, b, c, d0, d1, d2, d3, d4, d5, d6, d7)
/*
* Generic EFI table header
@@ -584,7 +584,6 @@ void efi_native_runtime_setup(void);
* Note that the 'extra space' separates the values at the same place
* where the UEFI SPEC breaks the line.
*/
-#define NULL_GUID EFI_GUID(0x00000000, 0x0000, 0x0000, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)
#define MPS_TABLE_GUID EFI_GUID(0xeb9d2d2f, 0x2d88, 0x11d3, 0x9a, 0x16, 0x00, 0x90, 0x27, 0x3f, 0xc1, 0x4d)
#define ACPI_TABLE_GUID EFI_GUID(0xeb9d2d30, 0x2d88, 0x11d3, 0x9a, 0x16, 0x00, 0x90, 0x27, 0x3f, 0xc1, 0x4d)
#define ACPI_20_TABLE_GUID EFI_GUID(0x8868e871, 0xe4f1, 0x11d3, 0xbc, 0x22, 0x00, 0x80, 0xc7, 0x3c, 0x88, 0x81)
diff --git a/include/linux/uuid.h b/include/linux/uuid.h
index 4dff73a89758..af669f317780 100644
--- a/include/linux/uuid.h
+++ b/include/linux/uuid.h
@@ -48,27 +48,35 @@ struct uuid_v1 {
*/
#define UUID_STRING_LEN 36
-static inline int uuid_le_cmp(const uuid_le u1, const uuid_le u2)
+static inline int guid_cmp(const guid_t u1, const guid_t u2)
{
- return memcmp(&u1, &u2, sizeof(uuid_le));
+ return memcmp(&u1, &u2, sizeof(guid_t));
}
-static inline int uuid_be_cmp(const uuid_be u1, const uuid_be u2)
+static inline int uuid_cmp(const uuid_t u1, const uuid_t u2)
{
- return memcmp(&u1, &u2, sizeof(uuid_be));
+ return memcmp(&u1, &u2, sizeof(uuid_t));
}
void generate_random_uuid(unsigned char uuid[16]);
-extern void uuid_le_gen(uuid_le *u);
-extern void uuid_be_gen(uuid_be *u);
+extern void guid_gen(guid_t *u);
+extern void uuid_gen(uuid_t *u);
bool __must_check uuid_is_valid(const char *uuid);
-extern const u8 uuid_le_index[16];
-extern const u8 uuid_be_index[16];
+extern const u8 guid_index[16];
+extern const u8 uuid_index[16];
-int uuid_le_to_bin(const char *uuid, uuid_le *u);
-int uuid_be_to_bin(const char *uuid, uuid_be *u);
+int guid_to_bin(const char *uuid, guid_t *u);
+int uuid_to_bin(const char *uuid, uuid_t *u);
+
+/* backwards compatibility, don't use in new code */
+#define uuid_le_cmp(u1, u2) guid_cmp(u1, u2)
+#define uuid_be_cmp(u1, u2) uuid_cmp(u1, u2)
+#define uuid_le_gen(u) guid_gen(u)
+#define uuid_be_gen(u) uuid_gen(u)
+#define uuid_le_to_bin(guid, u) guid_to_bin(guid, u)
+#define uuid_be_to_bin(uuid, u) uuid_to_bin(uuid, u)
#endif
diff --git a/include/uapi/linux/uuid.h b/include/uapi/linux/uuid.h
index 3738e5fb6a4d..1a2914d8b225 100644
--- a/include/uapi/linux/uuid.h
+++ b/include/uapi/linux/uuid.h
@@ -22,33 +22,36 @@
typedef struct {
__u8 b[16];
-} uuid_le;
+} guid_t;
typedef struct {
__u8 b[16];
-} uuid_be;
+} uuid_t;
-#define UUID_LE(a, b, c, d0, d1, d2, d3, d4, d5, d6, d7) \
-((uuid_le) \
+#define GUID(a, b, c, d0, d1, d2, d3, d4, d5, d6, d7) \
+((guid_t) \
{{ (a) & 0xff, ((a) >> 8) & 0xff, ((a) >> 16) & 0xff, ((a) >> 24) & 0xff, \
(b) & 0xff, ((b) >> 8) & 0xff, \
(c) & 0xff, ((c) >> 8) & 0xff, \
(d0), (d1), (d2), (d3), (d4), (d5), (d6), (d7) }})
-#define UUID_BE(a, b, c, d0, d1, d2, d3, d4, d5, d6, d7) \
-((uuid_be) \
+#define UUID(a, b, c, d0, d1, d2, d3, d4, d5, d6, d7) \
+((uuid_t) \
{{ ((a) >> 24) & 0xff, ((a) >> 16) & 0xff, ((a) >> 8) & 0xff, (a) & 0xff, \
((b) >> 8) & 0xff, (b) & 0xff, \
((c) >> 8) & 0xff, (c) & 0xff, \
(d0), (d1), (d2), (d3), (d4), (d5), (d6), (d7) }})
-#define NULL_UUID_LE \
- UUID_LE(0x00000000, 0x0000, 0x0000, 0x00, 0x00, 0x00, 0x00, \
- 0x00, 0x00, 0x00, 0x00)
+#define NULL_GUID \
+ GUID(0x00000000, 0x0000, 0x0000, 0x00, 0x00, 0x00, 0x00, \
+ 0x00, 0x00, 0x00, 0x00)
-#define NULL_UUID_BE \
- UUID_BE(0x00000000, 0x0000, 0x0000, 0x00, 0x00, 0x00, 0x00, \
- 0x00, 0x00, 0x00, 0x00)
+#define NULL_UUID \
+ UUID(0x00000000, 0x0000, 0x0000, 0x00, 0x00, 0x00, 0x00, \
+ 0x00, 0x00, 0x00, 0x00)
+/* backwards compatibility, don't use in new code */
+typedef guid_t uuid_le;
+typedef uuid_t uuid_be;
#endif /* _UAPI_LINUX_UUID_H_ */
diff --git a/lib/test_uuid.c b/lib/test_uuid.c
index 547d3127a3cf..7e05c1565dcc 100644
--- a/lib/test_uuid.c
+++ b/lib/test_uuid.c
@@ -18,18 +18,18 @@ struct test_uuid_data {
static const struct test_uuid_data test_uuid_test_data[] = {
{
.uuid = "c33f4995-3701-450e-9fbf-206a2e98e576",
- .le = UUID_LE(0xc33f4995, 0x3701, 0x450e, 0x9f, 0xbf, 0x20, 0x6a, 0x2e, 0x98, 0xe5, 0x76),
- .be = UUID_BE(0xc33f4995, 0x3701, 0x450e, 0x9f, 0xbf, 0x20, 0x6a, 0x2e, 0x98, 0xe5, 0x76),
+ .le = GUID(0xc33f4995, 0x3701, 0x450e, 0x9f, 0xbf, 0x20, 0x6a, 0x2e, 0x98, 0xe5, 0x76),
+ .be = UUID(0xc33f4995, 0x3701, 0x450e, 0x9f, 0xbf, 0x20, 0x6a, 0x2e, 0x98, 0xe5, 0x76),
},
{
.uuid = "64b4371c-77c1-48f9-8221-29f054fc023b",
- .le = UUID_LE(0x64b4371c, 0x77c1, 0x48f9, 0x82, 0x21, 0x29, 0xf0, 0x54, 0xfc, 0x02, 0x3b),
- .be = UUID_BE(0x64b4371c, 0x77c1, 0x48f9, 0x82, 0x21, 0x29, 0xf0, 0x54, 0xfc, 0x02, 0x3b),
+ .le = GUID(0x64b4371c, 0x77c1, 0x48f9, 0x82, 0x21, 0x29, 0xf0, 0x54, 0xfc, 0x02, 0x3b),
+ .be = UUID(0x64b4371c, 0x77c1, 0x48f9, 0x82, 0x21, 0x29, 0xf0, 0x54, 0xfc, 0x02, 0x3b),
},
{
.uuid = "0cb4ddff-a545-4401-9d06-688af53e7f84",
- .le = UUID_LE(0x0cb4ddff, 0xa545, 0x4401, 0x9d, 0x06, 0x68, 0x8a, 0xf5, 0x3e, 0x7f, 0x84),
- .be = UUID_BE(0x0cb4ddff, 0xa545, 0x4401, 0x9d, 0x06, 0x68, 0x8a, 0xf5, 0x3e, 0x7f, 0x84),
+ .le = GUID(0x0cb4ddff, 0xa545, 0x4401, 0x9d, 0x06, 0x68, 0x8a, 0xf5, 0x3e, 0x7f, 0x84),
+ .be = UUID(0x0cb4ddff, 0xa545, 0x4401, 0x9d, 0x06, 0x68, 0x8a, 0xf5, 0x3e, 0x7f, 0x84),
},
};
diff --git a/lib/uuid.c b/lib/uuid.c
index 37687af77ff8..f80dc63f6ca8 100644
--- a/lib/uuid.c
+++ b/lib/uuid.c
@@ -21,10 +21,10 @@
#include <linux/uuid.h>
#include <linux/random.h>
-const u8 uuid_le_index[16] = {3,2,1,0,5,4,7,6,8,9,10,11,12,13,14,15};
-EXPORT_SYMBOL(uuid_le_index);
-const u8 uuid_be_index[16] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};
-EXPORT_SYMBOL(uuid_be_index);
+const u8 guid_index[16] = {3,2,1,0,5,4,7,6,8,9,10,11,12,13,14,15};
+EXPORT_SYMBOL(guid_index);
+const u8 uuid_index[16] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};
+EXPORT_SYMBOL(uuid_index);
/***************************************************************
* Random UUID interface
@@ -53,21 +53,21 @@ static void __uuid_gen_common(__u8 b[16])
b[8] = (b[8] & 0x3F) | 0x80;
}
-void uuid_le_gen(uuid_le *lu)
+void guid_gen(guid_t *lu)
{
__uuid_gen_common(lu->b);
/* version 4 : random generation */
lu->b[7] = (lu->b[7] & 0x0F) | 0x40;
}
-EXPORT_SYMBOL_GPL(uuid_le_gen);
+EXPORT_SYMBOL_GPL(guid_gen);
-void uuid_be_gen(uuid_be *bu)
+void uuid_gen(uuid_t *bu)
{
__uuid_gen_common(bu->b);
/* version 4 : random generation */
bu->b[6] = (bu->b[6] & 0x0F) | 0x40;
}
-EXPORT_SYMBOL_GPL(uuid_be_gen);
+EXPORT_SYMBOL_GPL(uuid_gen);
/**
* uuid_is_valid - checks if UUID string valid
@@ -115,14 +115,14 @@ static int __uuid_to_bin(const char *uuid, __u8 b[16], const u8 ei[16])
return 0;
}
-int uuid_le_to_bin(const char *uuid, uuid_le *u)
+int guid_to_bin(const char *uuid, guid_t *u)
{
- return __uuid_to_bin(uuid, u->b, uuid_le_index);
+ return __uuid_to_bin(uuid, u->b, guid_index);
}
-EXPORT_SYMBOL(uuid_le_to_bin);
+EXPORT_SYMBOL(guid_to_bin);
-int uuid_be_to_bin(const char *uuid, uuid_be *u)
+int uuid_to_bin(const char *uuid, uuid_t *u)
{
- return __uuid_to_bin(uuid, u->b, uuid_be_index);
+ return __uuid_to_bin(uuid, u->b, uuid_index);
}
-EXPORT_SYMBOL(uuid_be_to_bin);
+EXPORT_SYMBOL(uuid_to_bin);
diff --git a/lib/vsprintf.c b/lib/vsprintf.c
index 2d41de3f98a1..9f37d6208e99 100644
--- a/lib/vsprintf.c
+++ b/lib/vsprintf.c
@@ -1308,14 +1308,14 @@ char *uuid_string(char *buf, char *end, const u8 *addr,
char uuid[UUID_STRING_LEN + 1];
char *p = uuid;
int i;
- const u8 *index = uuid_be_index;
+ const u8 *index = uuid_index;
bool uc = false;
switch (*(++fmt)) {
case 'L':
uc = true; /* fall-through */
case 'l':
- index = uuid_le_index;
+ index = guid_index;
break;
case 'B':
uc = true;
--
2.11.0
^ permalink raw reply related [flat|nested] 29+ messages in thread
* Re: [PATCH 03/16] uuid: rename uuid types
2017-05-10 18:02 ` [PATCH 03/16] uuid: rename uuid types Christoph Hellwig
@ 2017-05-10 19:15 ` Amir Goldstein
2017-05-11 7:59 ` Christoph Hellwig
0 siblings, 1 reply; 29+ messages in thread
From: Amir Goldstein @ 2017-05-10 19:15 UTC (permalink / raw)
To: Christoph Hellwig
Cc: Andy Shevchenko, linux-fsdevel, Shaohua Li, Dan Williams,
David Howells, Steven Whitehouse, Mimi Zohar, linux-xfs,
linux-raid, linux-nvdimm, linux-kernel
On Wed, May 10, 2017 at 9:02 PM, Christoph Hellwig <hch@lst.de> wrote:
> Our "little endian" UUID really is a Wintel GUID, so rename it and its
> helpers such (guid_t). The big endian UUID is the only true one, so
> give it the name uuid_t. The uuid_le and uuid_be names are retained for,
> but will hopefully go away soon.
>
> Also remove the existing typedef in XFS that's now been superceeded by
> the generic type name.
>
> Signed-off-by: Christoph Hellwig <hch@lst.de>
> [andy: also updated the UUID_LE/UUID_BE macros including fallout]
> Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
> ---
[...]
>
> -static inline int uuid_le_cmp(const uuid_le u1, const uuid_le u2)
> +static inline int guid_cmp(const guid_t u1, const guid_t u2)
> {
> - return memcmp(&u1, &u2, sizeof(uuid_le));
> + return memcmp(&u1, &u2, sizeof(guid_t));
> }
>
> -static inline int uuid_be_cmp(const uuid_be u1, const uuid_be u2)
> +static inline int uuid_cmp(const uuid_t u1, const uuid_t u2)
> {
> - return memcmp(&u1, &u2, sizeof(uuid_be));
> + return memcmp(&u1, &u2, sizeof(uuid_t));
> }
>
I think we should use this opportunity to change these to (uuid_t *, uuid_t *)
which is more in line with the rest of the helpers including the new helpers
hoisted from xfs.
[...]
> +/* backwards compatibility, don't use in new code */
> +#define uuid_le_cmp(u1, u2) guid_cmp(u1, u2)
> +#define uuid_be_cmp(u1, u2) uuid_cmp(u1, u2)
Therefore:
#define uuid_le_cmp(u1, u2) guid_cmp(&(u1), &(u2))
#define uuid_be_cmp(u1, u2) uuid_cmp(&(u1), &(u2))
^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [PATCH 03/16] uuid: rename uuid types
2017-05-10 19:15 ` Amir Goldstein
@ 2017-05-11 7:59 ` Christoph Hellwig
2017-05-11 8:31 ` Amir Goldstein
0 siblings, 1 reply; 29+ messages in thread
From: Christoph Hellwig @ 2017-05-11 7:59 UTC (permalink / raw)
To: Amir Goldstein
Cc: Christoph Hellwig, Andy Shevchenko, linux-fsdevel, Shaohua Li,
Dan Williams, David Howells, Steven Whitehouse, Mimi Zohar,
linux-xfs, linux-raid, linux-nvdimm, linux-kernel
On Wed, May 10, 2017 at 10:15:51PM +0300, Amir Goldstein wrote:
> > +static inline int uuid_cmp(const uuid_t u1, const uuid_t u2)
> > {
> > - return memcmp(&u1, &u2, sizeof(uuid_be));
> > + return memcmp(&u1, &u2, sizeof(uuid_t));
> > }
> >
>
>
> I think we should use this opportunity to change these to (uuid_t *, uuid_t *)
> which is more in line with the rest of the helpers including the new helpers
> hoisted from xfs.
Or just kill them off - uuid/guid_equals is the better interface for all
existing users as far as I can tell. My updated series already kills
off the be/uuid one, the le/guid one will need a bit more work, though.
^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [PATCH 03/16] uuid: rename uuid types
2017-05-11 7:59 ` Christoph Hellwig
@ 2017-05-11 8:31 ` Amir Goldstein
0 siblings, 0 replies; 29+ messages in thread
From: Amir Goldstein @ 2017-05-11 8:31 UTC (permalink / raw)
To: Christoph Hellwig
Cc: Andy Shevchenko, linux-fsdevel, Shaohua Li, Dan Williams,
David Howells, Steven Whitehouse, Mimi Zohar, linux-xfs,
linux-raid, linux-nvdimm, linux-kernel
On Thu, May 11, 2017 at 10:59 AM, Christoph Hellwig <hch@lst.de> wrote:
> On Wed, May 10, 2017 at 10:15:51PM +0300, Amir Goldstein wrote:
>> > +static inline int uuid_cmp(const uuid_t u1, const uuid_t u2)
>> > {
>> > - return memcmp(&u1, &u2, sizeof(uuid_be));
>> > + return memcmp(&u1, &u2, sizeof(uuid_t));
>> > }
>> >
>>
>>
>> I think we should use this opportunity to change these to (uuid_t *, uuid_t *)
>> which is more in line with the rest of the helpers including the new helpers
>> hoisted from xfs.
>
> Or just kill them off - uuid/guid_equals is the better interface for all
> existing users as far as I can tell. My updated series already kills
> off the be/uuid one, the le/guid one will need a bit more work, though.
That works too. and for another argument, why need a helper uuid/guid_cmp
when one can use C comparison (i.e. u1 != u2) ? assuming that we have no
reason to abstract that fact that uuid_t/guid_t are a struct type.
^ permalink raw reply [flat|nested] 29+ messages in thread
* [PATCH 04/16] uuid: don't export guid_index and uuid_index
2017-05-10 18:01 cleanup UUID types Christoph Hellwig
` (2 preceding siblings ...)
2017-05-10 18:02 ` [PATCH 03/16] uuid: rename uuid types Christoph Hellwig
@ 2017-05-10 18:02 ` Christoph Hellwig
2017-05-10 18:02 ` [PATCH 05/16] uuid: add the v1 layout to uuid_t Christoph Hellwig
` (14 subsequent siblings)
18 siblings, 0 replies; 29+ messages in thread
From: Christoph Hellwig @ 2017-05-10 18:02 UTC (permalink / raw)
To: Andy Shevchenko, Amir Goldstein, linux-fsdevel
Cc: Shaohua Li, Dan Williams, David Howells, Steven Whitehouse,
Mimi Zohar, linux-xfs, linux-raid, linux-nvdimm, linux-kernel
These are only used in uuid.c and vsprintf.c and aren't something modules
should use directly.
Signed-off-by: Christoph Hellwig <hch@lst.de>
---
lib/uuid.c | 2 --
1 file changed, 2 deletions(-)
diff --git a/lib/uuid.c b/lib/uuid.c
index f80dc63f6ca8..003bf6823003 100644
--- a/lib/uuid.c
+++ b/lib/uuid.c
@@ -22,9 +22,7 @@
#include <linux/random.h>
const u8 guid_index[16] = {3,2,1,0,5,4,7,6,8,9,10,11,12,13,14,15};
-EXPORT_SYMBOL(guid_index);
const u8 uuid_index[16] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};
-EXPORT_SYMBOL(uuid_index);
/***************************************************************
* Random UUID interface
--
2.11.0
^ permalink raw reply related [flat|nested] 29+ messages in thread
* [PATCH 05/16] uuid: add the v1 layout to uuid_t
2017-05-10 18:01 cleanup UUID types Christoph Hellwig
` (3 preceding siblings ...)
2017-05-10 18:02 ` [PATCH 04/16] uuid: don't export guid_index and uuid_index Christoph Hellwig
@ 2017-05-10 18:02 ` Christoph Hellwig
2017-05-11 11:40 ` Andy Shevchenko
2017-05-10 18:02 ` [PATCH 06/16] afs: switch to use uuid_t and uuid_gen Christoph Hellwig
` (13 subsequent siblings)
18 siblings, 1 reply; 29+ messages in thread
From: Christoph Hellwig @ 2017-05-10 18:02 UTC (permalink / raw)
To: Andy Shevchenko, Amir Goldstein, linux-fsdevel
Cc: Shaohua Li, Dan Williams, David Howells, Steven Whitehouse,
Mimi Zohar, linux-xfs, linux-raid, linux-nvdimm, linux-kernel
Turn the content of uuid_t into a union and add the fields for the v1
interpretation to it.
Signed-off-by: Christoph Hellwig <hch@lst.de>
---
include/uapi/linux/uuid.h | 29 ++++++++++++++++++++++++++++-
1 file changed, 28 insertions(+), 1 deletion(-)
diff --git a/include/uapi/linux/uuid.h b/include/uapi/linux/uuid.h
index 1a2914d8b225..1039d2f3e114 100644
--- a/include/uapi/linux/uuid.h
+++ b/include/uapi/linux/uuid.h
@@ -25,7 +25,34 @@ typedef struct {
} guid_t;
typedef struct {
- __u8 b[16];
+ union {
+ __u8 b[16];
+
+ /*
+ * V1 (time-based) UUID definition [RFC 4122]:
+ * - the timestamp is a 60-bit value, split 32/16/12, and goes
+ * in 100ns increments since midnight 15th October 1582
+ * - add UUID_TO_UNIX_TIME to convert unix time in 100ns
+ * units to UUID time
+ * - the clock sequence is a 14-bit counter to avoid duplicate
+ * times
+ */
+ struct {
+ __be32 time_low;
+ __be16 time_mid;
+ __be16 time_hi_and_version;
+#define UUID_TO_UNIX_TIME 0x01b21dd213814000ULL
+#define UUID_TIMEHI_MASK 0x0fff
+#define UUID_VERSION_TIME 0x1000 /* time-based UUID */
+#define UUID_VERSION_NAME 0x3000 /* name-based UUID */
+#define UUID_VERSION_RANDOM 0x4000 /* (pseudo-)random generated UUID */
+ u8 clock_seq_hi_and_reserved;
+#define UUID_CLOCKHI_MASK 0x3f
+#define UUID_VARIANT_STD 0x80
+ u8 clock_seq_low;
+ u8 node[6];
+ } v1;
+ };
} uuid_t;
#define GUID(a, b, c, d0, d1, d2, d3, d4, d5, d6, d7) \
--
2.11.0
^ permalink raw reply related [flat|nested] 29+ messages in thread
* Re: [PATCH 05/16] uuid: add the v1 layout to uuid_t
2017-05-10 18:02 ` [PATCH 05/16] uuid: add the v1 layout to uuid_t Christoph Hellwig
@ 2017-05-11 11:40 ` Andy Shevchenko
2017-05-11 12:07 ` Christoph Hellwig
0 siblings, 1 reply; 29+ messages in thread
From: Andy Shevchenko @ 2017-05-11 11:40 UTC (permalink / raw)
To: Christoph Hellwig, Amir Goldstein, linux-fsdevel
Cc: Shaohua Li, Dan Williams, David Howells, Steven Whitehouse,
Mimi Zohar, linux-xfs, linux-raid, linux-nvdimm, linux-kernel
On Wed, 2017-05-10 at 20:02 +0200, Christoph Hellwig wrote:
> Turn the content of uuid_t into a union and add the fields for the v1
> interpretation to it.
In the branch it has fix for UUID() wrt union change, but there missed
similar for GUID().
+#define UUID(a, _b, c, d0, d1, d2, d3, d4, d5, d6,
d7) \
+{ .b = { \
^^^ This should be done for GUID() as well.
While here, can we indent \ to be the same as of the rest lines in
macro(s) ?
--
Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Intel Finland Oy
^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [PATCH 05/16] uuid: add the v1 layout to uuid_t
2017-05-11 11:40 ` Andy Shevchenko
@ 2017-05-11 12:07 ` Christoph Hellwig
0 siblings, 0 replies; 29+ messages in thread
From: Christoph Hellwig @ 2017-05-11 12:07 UTC (permalink / raw)
To: Andy Shevchenko
Cc: Christoph Hellwig, Amir Goldstein, linux-fsdevel, Shaohua Li,
Dan Williams, David Howells, Steven Whitehouse, Mimi Zohar,
linux-xfs, linux-raid, linux-nvdimm, linux-kernel
On Thu, May 11, 2017 at 02:40:38PM +0300, Andy Shevchenko wrote:
> On Wed, 2017-05-10 at 20:02 +0200, Christoph Hellwig wrote:
> > Turn the content of uuid_t into a union and add the fields for the v1
> > interpretation to it.
>
> In the branch it has fix for UUID() wrt union change, but there missed
> similar for GUID().
Actually UUID needed this because uuid_t has a unіon inside, GUID
should not need it because it doesn't.
> While here, can we indent \ to be the same as of the rest lines in
> macro(s) ?
Sure.
^ permalink raw reply [flat|nested] 29+ messages in thread
* [PATCH 06/16] afs: switch to use uuid_t and uuid_gen
2017-05-10 18:01 cleanup UUID types Christoph Hellwig
` (4 preceding siblings ...)
2017-05-10 18:02 ` [PATCH 05/16] uuid: add the v1 layout to uuid_t Christoph Hellwig
@ 2017-05-10 18:02 ` Christoph Hellwig
2017-05-10 18:02 ` [PATCH 07/16] uuid: remove struct uuid_v1 Christoph Hellwig
` (12 subsequent siblings)
18 siblings, 0 replies; 29+ messages in thread
From: Christoph Hellwig @ 2017-05-10 18:02 UTC (permalink / raw)
To: Andy Shevchenko, Amir Goldstein, linux-fsdevel
Cc: Shaohua Li, Dan Williams, David Howells, Steven Whitehouse,
Mimi Zohar, linux-xfs, linux-raid, linux-nvdimm, linux-kernel
Signed-off-by: Christoph Hellwig <hch@lst.de>
---
fs/afs/cmservice.c | 46 +++++++++++++++++++++++-----------------------
fs/afs/internal.h | 2 +-
fs/afs/main.c | 4 ++--
3 files changed, 26 insertions(+), 26 deletions(-)
diff --git a/fs/afs/cmservice.c b/fs/afs/cmservice.c
index 3062cceb5c2a..d4e77d12570c 100644
--- a/fs/afs/cmservice.c
+++ b/fs/afs/cmservice.c
@@ -350,7 +350,7 @@ static int afs_deliver_cb_init_call_back_state3(struct afs_call *call)
{
struct sockaddr_rxrpc srx;
struct afs_server *server;
- struct uuid_v1 *r;
+ uuid_t *r;
unsigned loop;
__be32 *b;
int ret;
@@ -380,20 +380,20 @@ static int afs_deliver_cb_init_call_back_state3(struct afs_call *call)
}
_debug("unmarshall UUID");
- call->request = kmalloc(sizeof(struct uuid_v1), GFP_KERNEL);
+ call->request = kmalloc(sizeof(uuid_t), GFP_KERNEL);
if (!call->request)
return -ENOMEM;
b = call->buffer;
r = call->request;
- r->time_low = b[0];
- r->time_mid = htons(ntohl(b[1]));
- r->time_hi_and_version = htons(ntohl(b[2]));
- r->clock_seq_hi_and_reserved = ntohl(b[3]);
- r->clock_seq_low = ntohl(b[4]);
+ r->v1.time_low = b[0];
+ r->v1.time_mid = htons(ntohl(b[1]));
+ r->v1.time_hi_and_version = htons(ntohl(b[2]));
+ r->v1.clock_seq_hi_and_reserved = ntohl(b[3]);
+ r->v1.clock_seq_low = ntohl(b[4]);
for (loop = 0; loop < 6; loop++)
- r->node[loop] = ntohl(b[loop + 5]);
+ r->v1.node[loop] = ntohl(b[loop + 5]);
call->offset = 0;
call->unmarshall++;
@@ -453,7 +453,7 @@ static int afs_deliver_cb_probe(struct afs_call *call)
static void SRXAFSCB_ProbeUuid(struct work_struct *work)
{
struct afs_call *call = container_of(work, struct afs_call, work);
- struct uuid_v1 *r = call->request;
+ uuid_t *r = call->request;
struct {
__be32 match;
@@ -476,7 +476,7 @@ static void SRXAFSCB_ProbeUuid(struct work_struct *work)
*/
static int afs_deliver_cb_probe_uuid(struct afs_call *call)
{
- struct uuid_v1 *r;
+ uuid_t *r;
unsigned loop;
__be32 *b;
int ret;
@@ -502,20 +502,20 @@ static int afs_deliver_cb_probe_uuid(struct afs_call *call)
}
_debug("unmarshall UUID");
- call->request = kmalloc(sizeof(struct uuid_v1), GFP_KERNEL);
+ call->request = kmalloc(sizeof(uuid_t), GFP_KERNEL);
if (!call->request)
return -ENOMEM;
b = call->buffer;
r = call->request;
- r->time_low = b[0];
- r->time_mid = htons(ntohl(b[1]));
- r->time_hi_and_version = htons(ntohl(b[2]));
- r->clock_seq_hi_and_reserved = ntohl(b[3]);
- r->clock_seq_low = ntohl(b[4]);
+ r->v1.time_low = b[0];
+ r->v1.time_mid = htons(ntohl(b[1]));
+ r->v1.time_hi_and_version = htons(ntohl(b[2]));
+ r->v1.clock_seq_hi_and_reserved = ntohl(b[3]);
+ r->v1.clock_seq_low = ntohl(b[4]);
for (loop = 0; loop < 6; loop++)
- r->node[loop] = ntohl(b[loop + 5]);
+ r->v1.node[loop] = ntohl(b[loop + 5]);
call->offset = 0;
call->unmarshall++;
@@ -568,13 +568,13 @@ static void SRXAFSCB_TellMeAboutYourself(struct work_struct *work)
memset(&reply, 0, sizeof(reply));
reply.ia.nifs = htonl(nifs);
- reply.ia.uuid[0] = afs_uuid.time_low;
- reply.ia.uuid[1] = htonl(ntohs(afs_uuid.time_mid));
- reply.ia.uuid[2] = htonl(ntohs(afs_uuid.time_hi_and_version));
- reply.ia.uuid[3] = htonl((s8) afs_uuid.clock_seq_hi_and_reserved);
- reply.ia.uuid[4] = htonl((s8) afs_uuid.clock_seq_low);
+ reply.ia.uuid[0] = afs_uuid.v1.time_low;
+ reply.ia.uuid[1] = htonl(ntohs(afs_uuid.v1.time_mid));
+ reply.ia.uuid[2] = htonl(ntohs(afs_uuid.v1.time_hi_and_version));
+ reply.ia.uuid[3] = htonl((s8) afs_uuid.v1.clock_seq_hi_and_reserved);
+ reply.ia.uuid[4] = htonl((s8) afs_uuid.v1.clock_seq_low);
for (loop = 0; loop < 6; loop++)
- reply.ia.uuid[loop + 5] = htonl((s8) afs_uuid.node[loop]);
+ reply.ia.uuid[loop + 5] = htonl((s8) afs_uuid.v1.node[loop]);
if (ifs) {
for (loop = 0; loop < nifs; loop++) {
diff --git a/fs/afs/internal.h b/fs/afs/internal.h
index 393672997cc2..7de45c8686a2 100644
--- a/fs/afs/internal.h
+++ b/fs/afs/internal.h
@@ -544,7 +544,7 @@ extern int afs_drop_inode(struct inode *);
* main.c
*/
extern struct workqueue_struct *afs_wq;
-extern struct uuid_v1 afs_uuid;
+extern uuid_t afs_uuid;
/*
* misc.c
diff --git a/fs/afs/main.c b/fs/afs/main.c
index 51d7d17bca57..75b3d3a8b1ba 100644
--- a/fs/afs/main.c
+++ b/fs/afs/main.c
@@ -31,7 +31,7 @@ static char *rootcell;
module_param(rootcell, charp, 0);
MODULE_PARM_DESC(rootcell, "root AFS cell name and VL server IP addr list");
-struct uuid_v1 afs_uuid;
+uuid_t afs_uuid;
struct workqueue_struct *afs_wq;
/*
@@ -43,7 +43,7 @@ static int __init afs_init(void)
printk(KERN_INFO "kAFS: Red Hat AFS client v0.1 registering.\n");
- generate_random_uuid((unsigned char *)&afs_uuid);
+ uuid_gen(&afs_uuid);
/* create workqueue */
ret = -ENOMEM;
--
2.11.0
^ permalink raw reply related [flat|nested] 29+ messages in thread
* [PATCH 07/16] uuid: remove struct uuid_v1
2017-05-10 18:01 cleanup UUID types Christoph Hellwig
` (5 preceding siblings ...)
2017-05-10 18:02 ` [PATCH 06/16] afs: switch to use uuid_t and uuid_gen Christoph Hellwig
@ 2017-05-10 18:02 ` Christoph Hellwig
2017-05-10 18:02 ` [PATCH 08/16] xfs: remove uuid_getnodeuniq and xfs_uu_t Christoph Hellwig
` (11 subsequent siblings)
18 siblings, 0 replies; 29+ messages in thread
From: Christoph Hellwig @ 2017-05-10 18:02 UTC (permalink / raw)
To: Andy Shevchenko, Amir Goldstein, linux-fsdevel
Cc: Shaohua Li, Dan Williams, David Howells, Steven Whitehouse,
Mimi Zohar, linux-xfs, linux-raid, linux-nvdimm, linux-kernel
Unused now.
Signed-off-by: Christoph Hellwig <hch@lst.de>
---
include/linux/uuid.h | 24 ------------------------
1 file changed, 24 deletions(-)
diff --git a/include/linux/uuid.h b/include/linux/uuid.h
index af669f317780..28a5a894b926 100644
--- a/include/linux/uuid.h
+++ b/include/linux/uuid.h
@@ -19,30 +19,6 @@
#include <uapi/linux/uuid.h>
/*
- * V1 (time-based) UUID definition [RFC 4122].
- * - the timestamp is a 60-bit value, split 32/16/12, and goes in 100ns
- * increments since midnight 15th October 1582
- * - add AFS_UUID_TO_UNIX_TIME to convert unix time in 100ns units to UUID
- * time
- * - the clock sequence is a 14-bit counter to avoid duplicate times
- */
-struct uuid_v1 {
- __be32 time_low; /* low part of timestamp */
- __be16 time_mid; /* mid part of timestamp */
- __be16 time_hi_and_version; /* high part of timestamp and version */
-#define UUID_TO_UNIX_TIME 0x01b21dd213814000ULL
-#define UUID_TIMEHI_MASK 0x0fff
-#define UUID_VERSION_TIME 0x1000 /* time-based UUID */
-#define UUID_VERSION_NAME 0x3000 /* name-based UUID */
-#define UUID_VERSION_RANDOM 0x4000 /* (pseudo-)random generated UUID */
- u8 clock_seq_hi_and_reserved; /* clock seq hi and variant */
-#define UUID_CLOCKHI_MASK 0x3f
-#define UUID_VARIANT_STD 0x80
- u8 clock_seq_low; /* clock seq low */
- u8 node[6]; /* spatially unique node ID (MAC addr) */
-};
-
-/*
* The length of a UUID string ("aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee")
* not including trailing NUL.
*/
--
2.11.0
^ permalink raw reply related [flat|nested] 29+ messages in thread
* [PATCH 08/16] xfs: remove uuid_getnodeuniq and xfs_uu_t
2017-05-10 18:01 cleanup UUID types Christoph Hellwig
` (6 preceding siblings ...)
2017-05-10 18:02 ` [PATCH 07/16] uuid: remove struct uuid_v1 Christoph Hellwig
@ 2017-05-10 18:02 ` Christoph Hellwig
2017-05-10 18:02 ` [PATCH 09/16] md: namespace private helper names Christoph Hellwig
` (10 subsequent siblings)
18 siblings, 0 replies; 29+ messages in thread
From: Christoph Hellwig @ 2017-05-10 18:02 UTC (permalink / raw)
To: Andy Shevchenko, Amir Goldstein, linux-fsdevel
Cc: Shaohua Li, Dan Williams, David Howells, Steven Whitehouse,
Mimi Zohar, linux-xfs, linux-raid, linux-nvdimm, linux-kernel
Directly use the v1 intepretation of uuid_t instead.
Signed-off-by: Christoph Hellwig <hch@lst.de>
---
fs/xfs/uuid.c | 25 -------------------------
fs/xfs/uuid.h | 1 -
fs/xfs/xfs_mount.c | 6 +++++-
3 files changed, 5 insertions(+), 27 deletions(-)
diff --git a/fs/xfs/uuid.c b/fs/xfs/uuid.c
index b83f76b6d410..937deaf2128d 100644
--- a/fs/xfs/uuid.c
+++ b/fs/xfs/uuid.c
@@ -17,31 +17,6 @@
*/
#include <xfs.h>
-/* IRIX interpretation of an uuid_t */
-typedef struct {
- __be32 uu_timelow;
- __be16 uu_timemid;
- __be16 uu_timehi;
- __be16 uu_clockseq;
- __be16 uu_node[3];
-} xfs_uu_t;
-
-/*
- * uuid_getnodeuniq - obtain the node unique fields of a UUID.
- *
- * This is not in any way a standard or condoned UUID function;
- * it just something that's needed for user-level file handles.
- */
-void
-uuid_getnodeuniq(uuid_t *uuid, int fsid [2])
-{
- xfs_uu_t *uup = (xfs_uu_t *)uuid;
-
- fsid[0] = (be16_to_cpu(uup->uu_clockseq) << 16) |
- be16_to_cpu(uup->uu_timemid);
- fsid[1] = be32_to_cpu(uup->uu_timelow);
-}
-
int
uuid_is_nil(uuid_t *uuid)
{
diff --git a/fs/xfs/uuid.h b/fs/xfs/uuid.h
index 4f1441ba4fa5..65b5cebf2f99 100644
--- a/fs/xfs/uuid.h
+++ b/fs/xfs/uuid.h
@@ -20,7 +20,6 @@
extern int uuid_is_nil(uuid_t *uuid);
extern int uuid_equal(uuid_t *uuid1, uuid_t *uuid2);
-extern void uuid_getnodeuniq(uuid_t *uuid, int fsid [2]);
static inline void
uuid_copy(uuid_t *dst, uuid_t *src)
diff --git a/fs/xfs/xfs_mount.c b/fs/xfs/xfs_mount.c
index 2eaf81859166..742e4a61c0bc 100644
--- a/fs/xfs/xfs_mount.c
+++ b/fs/xfs/xfs_mount.c
@@ -793,7 +793,11 @@ xfs_mountfs(
* Copies the low order bits of the timestamp and the randomly
* set "sequence" number out of a UUID.
*/
- uuid_getnodeuniq(&sbp->sb_uuid, mp->m_fixedfsid);
+ mp->m_fixedfsid[0] =
+ ((u32)sbp->sb_uuid.v1.clock_seq_hi_and_reserved << 24) |
+ ((u32)sbp->sb_uuid.v1.clock_seq_low << 16) |
+ be16_to_cpu(sbp->sb_uuid.v1.time_mid);
+ mp->m_fixedfsid[1] = be32_to_cpu(sbp->sb_uuid.v1.time_low);
mp->m_dmevmask = 0; /* not persistent; set after each mount */
--
2.11.0
^ permalink raw reply related [flat|nested] 29+ messages in thread
* [PATCH 09/16] md: namespace private helper names
2017-05-10 18:01 cleanup UUID types Christoph Hellwig
` (7 preceding siblings ...)
2017-05-10 18:02 ` [PATCH 08/16] xfs: remove uuid_getnodeuniq and xfs_uu_t Christoph Hellwig
@ 2017-05-10 18:02 ` Christoph Hellwig
2017-05-10 18:02 ` [PATCH 10/16] uuid: hoist helpers uuid_equal() and uuid_copy() from xfs Christoph Hellwig
` (9 subsequent siblings)
18 siblings, 0 replies; 29+ messages in thread
From: Christoph Hellwig @ 2017-05-10 18:02 UTC (permalink / raw)
To: Andy Shevchenko, Amir Goldstein, linux-fsdevel
Cc: Shaohua Li, Dan Williams, David Howells, Steven Whitehouse,
Mimi Zohar, linux-xfs, linux-raid, linux-nvdimm, linux-kernel
From: Amir Goldstein <amir73il@gmail.com>
The md private helper uuid_equal() collides with a generic helper
of the same name.
Rename the md private helper to md_uuid_equal() and do the same for
md_sb_equal().
Cc: Shaohua Li <shli@kernel.org>
Signed-off-by: Amir Goldstein <amir73il@gmail.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
---
drivers/md/md.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/drivers/md/md.c b/drivers/md/md.c
index 82f798be964f..65795cc4cb7d 100644
--- a/drivers/md/md.c
+++ b/drivers/md/md.c
@@ -825,7 +825,7 @@ static int read_disk_sb(struct md_rdev *rdev, int size)
return -EINVAL;
}
-static int uuid_equal(mdp_super_t *sb1, mdp_super_t *sb2)
+static int md_uuid_equal(mdp_super_t *sb1, mdp_super_t *sb2)
{
return sb1->set_uuid0 == sb2->set_uuid0 &&
sb1->set_uuid1 == sb2->set_uuid1 &&
@@ -833,7 +833,7 @@ static int uuid_equal(mdp_super_t *sb1, mdp_super_t *sb2)
sb1->set_uuid3 == sb2->set_uuid3;
}
-static int sb_equal(mdp_super_t *sb1, mdp_super_t *sb2)
+static int md_sb_equal(mdp_super_t *sb1, mdp_super_t *sb2)
{
int ret;
mdp_super_t *tmp1, *tmp2;
@@ -1025,12 +1025,12 @@ static int super_90_load(struct md_rdev *rdev, struct md_rdev *refdev, int minor
} else {
__u64 ev1, ev2;
mdp_super_t *refsb = page_address(refdev->sb_page);
- if (!uuid_equal(refsb, sb)) {
+ if (!md_uuid_equal(refsb, sb)) {
pr_warn("md: %s has different UUID to %s\n",
b, bdevname(refdev->bdev,b2));
goto abort;
}
- if (!sb_equal(refsb, sb)) {
+ if (!md_sb_equal(refsb, sb)) {
pr_warn("md: %s has same UUID but different superblock to %s\n",
b, bdevname(refdev->bdev, b2));
goto abort;
--
2.11.0
^ permalink raw reply related [flat|nested] 29+ messages in thread
* [PATCH 10/16] uuid: hoist helpers uuid_equal() and uuid_copy() from xfs
2017-05-10 18:01 cleanup UUID types Christoph Hellwig
` (8 preceding siblings ...)
2017-05-10 18:02 ` [PATCH 09/16] md: namespace private helper names Christoph Hellwig
@ 2017-05-10 18:02 ` Christoph Hellwig
2017-05-10 18:02 ` [PATCH 11/16] uuid: hoist uuid_is_null() helper from libnvdimm Christoph Hellwig
` (8 subsequent siblings)
18 siblings, 0 replies; 29+ messages in thread
From: Christoph Hellwig @ 2017-05-10 18:02 UTC (permalink / raw)
To: Andy Shevchenko, Amir Goldstein, linux-fsdevel
Cc: Shaohua Li, Dan Williams, David Howells, Steven Whitehouse,
Mimi Zohar, linux-xfs, linux-raid, linux-nvdimm, linux-kernel
From: Amir Goldstein <amir73il@gmail.com>
These helper are used to compare and copy two uuid_t type objects.
Signed-off-by: Amir Goldstein <amir73il@gmail.com>
[hch: also provide the respective guid_ versions]
Signed-off-by: Christoph Hellwig <hch@lst.de>
---
fs/xfs/uuid.c | 6 ------
fs/xfs/uuid.h | 7 -------
include/linux/uuid.h | 20 ++++++++++++++++++++
3 files changed, 20 insertions(+), 13 deletions(-)
diff --git a/fs/xfs/uuid.c b/fs/xfs/uuid.c
index 937deaf2128d..737c186ea98b 100644
--- a/fs/xfs/uuid.c
+++ b/fs/xfs/uuid.c
@@ -30,9 +30,3 @@ uuid_is_nil(uuid_t *uuid)
if (*cp++) return 0; /* not nil */
return 1; /* is nil */
}
-
-int
-uuid_equal(uuid_t *uuid1, uuid_t *uuid2)
-{
- return memcmp(uuid1, uuid2, sizeof(uuid_t)) ? 0 : 1;
-}
diff --git a/fs/xfs/uuid.h b/fs/xfs/uuid.h
index 65b5cebf2f99..5aea49bf0963 100644
--- a/fs/xfs/uuid.h
+++ b/fs/xfs/uuid.h
@@ -19,12 +19,5 @@
#define __XFS_SUPPORT_UUID_H__
extern int uuid_is_nil(uuid_t *uuid);
-extern int uuid_equal(uuid_t *uuid1, uuid_t *uuid2);
-
-static inline void
-uuid_copy(uuid_t *dst, uuid_t *src)
-{
- memcpy(dst, src, sizeof(uuid_t));
-}
#endif /* __XFS_SUPPORT_UUID_H__ */
diff --git a/include/linux/uuid.h b/include/linux/uuid.h
index 28a5a894b926..b7fec8b266eb 100644
--- a/include/linux/uuid.h
+++ b/include/linux/uuid.h
@@ -29,11 +29,31 @@ static inline int guid_cmp(const guid_t u1, const guid_t u2)
return memcmp(&u1, &u2, sizeof(guid_t));
}
+static inline bool guid_equal(const guid_t *u1, const guid_t *u2)
+{
+ return memcmp(u1, u2, sizeof(guid_t)) == 0;
+}
+
+static inline void guid_copy(guid_t *dst, const guid_t *src)
+{
+ memcpy(dst, src, sizeof(guid_t));
+}
+
static inline int uuid_cmp(const uuid_t u1, const uuid_t u2)
{
return memcmp(&u1, &u2, sizeof(uuid_t));
}
+static inline bool uuid_equal(const uuid_t *u1, const uuid_t *u2)
+{
+ return memcmp(u1, u2, sizeof(uuid_t)) == 0;
+}
+
+static inline void uuid_copy(uuid_t *dst, const uuid_t *src)
+{
+ memcpy(dst, src, sizeof(uuid_t));
+}
+
void generate_random_uuid(unsigned char uuid[16]);
extern void guid_gen(guid_t *u);
--
2.11.0
^ permalink raw reply related [flat|nested] 29+ messages in thread
* [PATCH 11/16] uuid: hoist uuid_is_null() helper from libnvdimm
2017-05-10 18:01 cleanup UUID types Christoph Hellwig
` (9 preceding siblings ...)
2017-05-10 18:02 ` [PATCH 10/16] uuid: hoist helpers uuid_equal() and uuid_copy() from xfs Christoph Hellwig
@ 2017-05-10 18:02 ` Christoph Hellwig
2017-05-10 18:02 ` [PATCH 12/16] xfs: use the common helper uuid_is_null() Christoph Hellwig
` (7 subsequent siblings)
18 siblings, 0 replies; 29+ messages in thread
From: Christoph Hellwig @ 2017-05-10 18:02 UTC (permalink / raw)
To: Andy Shevchenko, Amir Goldstein, linux-fsdevel
Cc: Shaohua Li, Dan Williams, David Howells, Steven Whitehouse,
Mimi Zohar, linux-xfs, linux-raid, linux-nvdimm, linux-kernel
From: Amir Goldstein <amir73il@gmail.com>
Hoist the libnvdimm helper as an inline helper to linux/uuid.h
using an auxiliary const variable uuid_null in lib/uuid.c.
[hch: also add the guid variant. Both do the same but I'd like
to keep casts to a minimum]
The common helper uses the new abstract type uuid_t * instead of
u8 *.
Suggested-by: Christoph Hellwig <hch@lst.de>
Cc: Dan Williams <dan.j.williams@intel.com>
Cc: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Cc: David Howells <dhowells@redhat.com>
Signed-off-by: Amir Goldstein <amir73il@gmail.com>
[hch: added guid_is_null]
Signed-off-by: Christoph Hellwig <hch@lst.de>
---
drivers/nvdimm/btt_devs.c | 9 +--------
include/linux/uuid.h | 13 +++++++++++++
lib/uuid.c | 5 +++++
3 files changed, 19 insertions(+), 8 deletions(-)
diff --git a/drivers/nvdimm/btt_devs.c b/drivers/nvdimm/btt_devs.c
index 4b76af2b8715..734290d30557 100644
--- a/drivers/nvdimm/btt_devs.c
+++ b/drivers/nvdimm/btt_devs.c
@@ -222,13 +222,6 @@ struct device *nd_btt_create(struct nd_region *nd_region)
return dev;
}
-static bool uuid_is_null(u8 *uuid)
-{
- static const u8 null_uuid[16];
-
- return (memcmp(uuid, null_uuid, 16) == 0);
-}
-
/**
* nd_btt_arena_is_valid - check if the metadata layout is valid
* @nd_btt: device with BTT geometry and backing device info
@@ -249,7 +242,7 @@ bool nd_btt_arena_is_valid(struct nd_btt *nd_btt, struct btt_sb *super)
if (memcmp(super->signature, BTT_SIG, BTT_SIG_LEN) != 0)
return false;
- if (!uuid_is_null(super->parent_uuid))
+ if (!guid_is_null((guid_t *)&super->parent_uuid))
if (memcmp(super->parent_uuid, parent_uuid, 16) != 0)
return false;
diff --git a/include/linux/uuid.h b/include/linux/uuid.h
index b7fec8b266eb..2f9bdc88079e 100644
--- a/include/linux/uuid.h
+++ b/include/linux/uuid.h
@@ -24,6 +24,9 @@
*/
#define UUID_STRING_LEN 36
+extern const guid_t guid_null;
+extern const uuid_t uuid_null;
+
static inline int guid_cmp(const guid_t u1, const guid_t u2)
{
return memcmp(&u1, &u2, sizeof(guid_t));
@@ -39,6 +42,11 @@ static inline void guid_copy(guid_t *dst, const guid_t *src)
memcpy(dst, src, sizeof(guid_t));
}
+static inline bool guid_is_null(guid_t *guid)
+{
+ return guid_equal(guid, &guid_null);
+}
+
static inline int uuid_cmp(const uuid_t u1, const uuid_t u2)
{
return memcmp(&u1, &u2, sizeof(uuid_t));
@@ -54,6 +62,11 @@ static inline void uuid_copy(uuid_t *dst, const uuid_t *src)
memcpy(dst, src, sizeof(uuid_t));
}
+static inline bool uuid_is_null(uuid_t *uuid)
+{
+ return uuid_equal(uuid, &uuid_null);
+}
+
void generate_random_uuid(unsigned char uuid[16]);
extern void guid_gen(guid_t *u);
diff --git a/lib/uuid.c b/lib/uuid.c
index 003bf6823003..25145bfb0eaa 100644
--- a/lib/uuid.c
+++ b/lib/uuid.c
@@ -21,6 +21,11 @@
#include <linux/uuid.h>
#include <linux/random.h>
+const guid_t guid_null;
+EXPORT_SYMBOL(guid_null);
+const uuid_t uuid_null;
+EXPORT_SYMBOL(uuid_null);
+
const u8 guid_index[16] = {3,2,1,0,5,4,7,6,8,9,10,11,12,13,14,15};
const u8 uuid_index[16] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};
--
2.11.0
^ permalink raw reply related [flat|nested] 29+ messages in thread
* [PATCH 12/16] xfs: use the common helper uuid_is_null()
2017-05-10 18:01 cleanup UUID types Christoph Hellwig
` (10 preceding siblings ...)
2017-05-10 18:02 ` [PATCH 11/16] uuid: hoist uuid_is_null() helper from libnvdimm Christoph Hellwig
@ 2017-05-10 18:02 ` Christoph Hellwig
2017-05-10 18:02 ` [PATCH 13/16] block: remove blk_part_pack_uuid Christoph Hellwig
` (6 subsequent siblings)
18 siblings, 0 replies; 29+ messages in thread
From: Christoph Hellwig @ 2017-05-10 18:02 UTC (permalink / raw)
To: Andy Shevchenko, Amir Goldstein, linux-fsdevel
Cc: Shaohua Li, Dan Williams, David Howells, Steven Whitehouse,
Mimi Zohar, linux-xfs, linux-raid, linux-nvdimm, linux-kernel
From: Amir Goldstein <amir73il@gmail.com>
Use the common helper uuid_is_null() and remove the xfs specific
helper uuid_is_nil().
The common helper does not check for the NULL pointer value as
xfs helper did, but xfs code never calls the helper with a pointer
that can be NULL.
Conform comments and warning strings to use the term 'null uuid'
instead of 'nil uuid', because this is the terminology used by
lib/uuid.c and its users. It is also the terminology used in
userspace by libuuid and xfsprogs.
Signed-off-by: Amir Goldstein <amir73il@gmail.com>
[hch: remove now unused uuid.[ch]]
Signed-off-by: Christoph Hellwig <hch@lst.de>
---
fs/xfs/Makefile | 3 +--
fs/xfs/uuid.c | 32 --------------------------------
fs/xfs/uuid.h | 23 -----------------------
fs/xfs/xfs_linux.h | 1 -
fs/xfs/xfs_log_recover.c | 6 +++---
fs/xfs/xfs_mount.c | 8 ++++----
6 files changed, 8 insertions(+), 65 deletions(-)
delete mode 100644 fs/xfs/uuid.c
delete mode 100644 fs/xfs/uuid.h
diff --git a/fs/xfs/Makefile b/fs/xfs/Makefile
index 5c90f82b8f6b..a6e955bfead8 100644
--- a/fs/xfs/Makefile
+++ b/fs/xfs/Makefile
@@ -98,8 +98,7 @@ xfs-y += xfs_aops.o \
xfs_sysfs.o \
xfs_trans.o \
xfs_xattr.o \
- kmem.o \
- uuid.o
+ kmem.o
# low-level transaction/log code
xfs-y += xfs_log.o \
diff --git a/fs/xfs/uuid.c b/fs/xfs/uuid.c
deleted file mode 100644
index 737c186ea98b..000000000000
--- a/fs/xfs/uuid.c
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * Copyright (c) 2000-2003,2005 Silicon Graphics, Inc.
- * All Rights Reserved.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it would be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- */
-#include <xfs.h>
-
-int
-uuid_is_nil(uuid_t *uuid)
-{
- int i;
- char *cp = (char *)uuid;
-
- if (uuid == NULL)
- return 0;
- /* implied check of version number here... */
- for (i = 0; i < sizeof *uuid; i++)
- if (*cp++) return 0; /* not nil */
- return 1; /* is nil */
-}
diff --git a/fs/xfs/uuid.h b/fs/xfs/uuid.h
deleted file mode 100644
index 5aea49bf0963..000000000000
--- a/fs/xfs/uuid.h
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
- * Copyright (c) 2000-2003,2005 Silicon Graphics, Inc.
- * All Rights Reserved.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it would be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- */
-#ifndef __XFS_SUPPORT_UUID_H__
-#define __XFS_SUPPORT_UUID_H__
-
-extern int uuid_is_nil(uuid_t *uuid);
-
-#endif /* __XFS_SUPPORT_UUID_H__ */
diff --git a/fs/xfs/xfs_linux.h b/fs/xfs/xfs_linux.h
index 2c33d915e550..2d167fe643ec 100644
--- a/fs/xfs/xfs_linux.h
+++ b/fs/xfs/xfs_linux.h
@@ -43,7 +43,6 @@ typedef __u32 xfs_nlink_t;
#include "kmem.h"
#include "mrlock.h"
-#include "uuid.h"
#include <linux/semaphore.h>
#include <linux/mm.h>
diff --git a/fs/xfs/xfs_log_recover.c b/fs/xfs/xfs_log_recover.c
index cd0b077deb35..8cec1e5505a4 100644
--- a/fs/xfs/xfs_log_recover.c
+++ b/fs/xfs/xfs_log_recover.c
@@ -352,13 +352,13 @@ xlog_header_check_mount(
{
ASSERT(head->h_magicno == cpu_to_be32(XLOG_HEADER_MAGIC_NUM));
- if (uuid_is_nil(&head->h_fs_uuid)) {
+ if (uuid_is_null(&head->h_fs_uuid)) {
/*
* IRIX doesn't write the h_fs_uuid or h_fmt fields. If
- * h_fs_uuid is nil, we assume this log was last mounted
+ * h_fs_uuid is null, we assume this log was last mounted
* by IRIX and continue.
*/
- xfs_warn(mp, "nil uuid in log - IRIX style log");
+ xfs_warn(mp, "null uuid in log - IRIX style log");
} else if (unlikely(!uuid_equal(&mp->m_sb.sb_uuid, &head->h_fs_uuid))) {
xfs_warn(mp, "log has mismatched uuid - can't recover");
xlog_header_check_dump(mp, head);
diff --git a/fs/xfs/xfs_mount.c b/fs/xfs/xfs_mount.c
index 742e4a61c0bc..682b336a7a6a 100644
--- a/fs/xfs/xfs_mount.c
+++ b/fs/xfs/xfs_mount.c
@@ -80,14 +80,14 @@ xfs_uuid_mount(
if (mp->m_flags & XFS_MOUNT_NOUUID)
return 0;
- if (uuid_is_nil(uuid)) {
- xfs_warn(mp, "Filesystem has nil UUID - can't mount");
+ if (uuid_is_null(uuid)) {
+ xfs_warn(mp, "Filesystem has null UUID - can't mount");
return -EINVAL;
}
mutex_lock(&xfs_uuid_table_mutex);
for (i = 0, hole = -1; i < xfs_uuid_table_size; i++) {
- if (uuid_is_nil(&xfs_uuid_table[i])) {
+ if (uuid_is_null(&xfs_uuid_table[i])) {
hole = i;
continue;
}
@@ -124,7 +124,7 @@ xfs_uuid_unmount(
mutex_lock(&xfs_uuid_table_mutex);
for (i = 0; i < xfs_uuid_table_size; i++) {
- if (uuid_is_nil(&xfs_uuid_table[i]))
+ if (uuid_is_null(&xfs_uuid_table[i]))
continue;
if (!uuid_equal(uuid, &xfs_uuid_table[i]))
continue;
--
2.11.0
^ permalink raw reply related [flat|nested] 29+ messages in thread
* [PATCH 13/16] block: remove blk_part_pack_uuid
2017-05-10 18:01 cleanup UUID types Christoph Hellwig
` (11 preceding siblings ...)
2017-05-10 18:02 ` [PATCH 12/16] xfs: use the common helper uuid_is_null() Christoph Hellwig
@ 2017-05-10 18:02 ` Christoph Hellwig
2017-05-10 18:02 ` [PATCH 14/16] " Christoph Hellwig
` (5 subsequent siblings)
18 siblings, 0 replies; 29+ messages in thread
From: Christoph Hellwig @ 2017-05-10 18:02 UTC (permalink / raw)
To: Andy Shevchenko, Amir Goldstein, linux-fsdevel
Cc: Shaohua Li, Dan Williams, David Howells, Steven Whitehouse,
Mimi Zohar, linux-xfs, linux-raid, linux-nvdimm, linux-kernel
This helper was only used by IMA of all things, which would get spurious
errors if CONFIG_BLOCK is disabled. Just opencode the call there.
Signed-off-by: Christoph Hellwig <hch@lst.de>
---
include/linux/genhd.h | 11 -----------
security/integrity/ima/ima_policy.c | 6 ++----
2 files changed, 2 insertions(+), 15 deletions(-)
diff --git a/include/linux/genhd.h b/include/linux/genhd.h
index acff9437e5c3..e619fae2f037 100644
--- a/include/linux/genhd.h
+++ b/include/linux/genhd.h
@@ -219,12 +219,6 @@ static inline struct gendisk *part_to_disk(struct hd_struct *part)
return NULL;
}
-static inline int blk_part_pack_uuid(const u8 *uuid_str, u8 *to)
-{
- uuid_be_to_bin(uuid_str, (uuid_be *)to);
- return 0;
-}
-
static inline int disk_max_parts(struct gendisk *disk)
{
if (disk->flags & GENHD_FL_EXT_DEVT)
@@ -736,11 +730,6 @@ static inline dev_t blk_lookup_devt(const char *name, int partno)
dev_t devt = MKDEV(0, 0);
return devt;
}
-
-static inline int blk_part_pack_uuid(const u8 *uuid_str, u8 *to)
-{
- return -EINVAL;
-}
#endif /* CONFIG_BLOCK */
#endif /* _LINUX_GENHD_H */
diff --git a/security/integrity/ima/ima_policy.c b/security/integrity/ima/ima_policy.c
index 3ab1067db624..4d1178610145 100644
--- a/security/integrity/ima/ima_policy.c
+++ b/security/integrity/ima/ima_policy.c
@@ -717,10 +717,8 @@ static int ima_parse_rule(char *rule, struct ima_rule_entry *entry)
break;
}
- result = blk_part_pack_uuid(args[0].from,
- entry->fsuuid);
- if (!result)
- entry->flags |= IMA_FSUUID;
+ uuid_to_bin(args[0].from, (uuid_t *)entry->fsuuid);
+ entry->flags |= IMA_FSUUID;
break;
case Opt_uid_gt:
case Opt_euid_gt:
--
2.11.0
^ permalink raw reply related [flat|nested] 29+ messages in thread
* [PATCH 14/16] block: remove blk_part_pack_uuid
2017-05-10 18:01 cleanup UUID types Christoph Hellwig
` (12 preceding siblings ...)
2017-05-10 18:02 ` [PATCH 13/16] block: remove blk_part_pack_uuid Christoph Hellwig
@ 2017-05-10 18:02 ` Christoph Hellwig
2017-05-10 18:09 ` Christoph Hellwig
2017-05-10 18:02 ` [PATCH 15/16] ima/policy: switch to use uuid_t Christoph Hellwig
` (4 subsequent siblings)
18 siblings, 1 reply; 29+ messages in thread
From: Christoph Hellwig @ 2017-05-10 18:02 UTC (permalink / raw)
To: Andy Shevchenko, Amir Goldstein, linux-fsdevel
Cc: Shaohua Li, Dan Williams, David Howells, Steven Whitehouse,
Mimi Zohar, linux-xfs, linux-raid, linux-nvdimm, linux-kernel
This helper was only used by IMA of all things, which would get spurious
errors if CONFIG_BLOCK is disabled. Just opencode the call there.
Signed-off-by: Christoph Hellwig <hch@lst.de>
[andy: correctly handle error returns from uuid_to_bin]
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
---
security/integrity/ima/ima_policy.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/security/integrity/ima/ima_policy.c b/security/integrity/ima/ima_policy.c
index 4d1178610145..49fbc3e8f012 100644
--- a/security/integrity/ima/ima_policy.c
+++ b/security/integrity/ima/ima_policy.c
@@ -717,8 +717,9 @@ static int ima_parse_rule(char *rule, struct ima_rule_entry *entry)
break;
}
- uuid_to_bin(args[0].from, (uuid_t *)entry->fsuuid);
- entry->flags |= IMA_FSUUID;
+ result = uuid_to_bin(args[0].from, (uuid_t *)&entry->fsuuid);
+ if (!result)
+ entry->flags |= IMA_FSUUID;
break;
case Opt_uid_gt:
case Opt_euid_gt:
--
2.11.0
^ permalink raw reply related [flat|nested] 29+ messages in thread
* Re: [PATCH 14/16] block: remove blk_part_pack_uuid
2017-05-10 18:02 ` [PATCH 14/16] " Christoph Hellwig
@ 2017-05-10 18:09 ` Christoph Hellwig
0 siblings, 0 replies; 29+ messages in thread
From: Christoph Hellwig @ 2017-05-10 18:09 UTC (permalink / raw)
To: Andy Shevchenko, Amir Goldstein, linux-fsdevel
Cc: Shaohua Li, Dan Williams, David Howells, Steven Whitehouse,
Mimi Zohar, linux-xfs, linux-raid, linux-nvdimm, linux-kernel
On Wed, May 10, 2017 at 08:02:12PM +0200, Christoph Hellwig wrote:
> This helper was only used by IMA of all things, which would get spurious
> errors if CONFIG_BLOCK is disabled. Just opencode the call there.
>
> Signed-off-by: Christoph Hellwig <hch@lst.de>
> [andy: correctly handle error returns from uuid_to_bin]
> Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
> ---
> security/integrity/ima/ima_policy.c | 5 +++--
> 1 file changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/security/integrity/ima/ima_policy.c b/security/integrity/ima/ima_policy.c
> index 4d1178610145..49fbc3e8f012 100644
> --- a/security/integrity/ima/ima_policy.c
> +++ b/security/integrity/ima/ima_policy.c
> @@ -717,8 +717,9 @@ static int ima_parse_rule(char *rule, struct ima_rule_entry *entry)
> break;
> }
>
> - uuid_to_bin(args[0].from, (uuid_t *)entry->fsuuid);
> - entry->flags |= IMA_FSUUID;
> + result = uuid_to_bin(args[0].from, (uuid_t *)&entry->fsuuid);
> + if (!result)
> + entry->flags |= IMA_FSUUID;
This should have been folded into the previous patch..
^ permalink raw reply [flat|nested] 29+ messages in thread
* [PATCH 15/16] ima/policy: switch to use uuid_t
2017-05-10 18:01 cleanup UUID types Christoph Hellwig
` (13 preceding siblings ...)
2017-05-10 18:02 ` [PATCH 14/16] " Christoph Hellwig
@ 2017-05-10 18:02 ` Christoph Hellwig
2017-05-10 18:02 ` [PATCH 16/16] fs: switch ->s_uuid to uuid_t Christoph Hellwig
` (3 subsequent siblings)
18 siblings, 0 replies; 29+ messages in thread
From: Christoph Hellwig @ 2017-05-10 18:02 UTC (permalink / raw)
To: Andy Shevchenko, Amir Goldstein, linux-fsdevel
Cc: Shaohua Li, Dan Williams, David Howells, Steven Whitehouse,
Mimi Zohar, linux-xfs, linux-raid, linux-nvdimm, linux-kernel
Signed-off-by: Christoph Hellwig <hch@lst.de>
---
security/integrity/ima/ima_policy.c | 11 +++++------
1 file changed, 5 insertions(+), 6 deletions(-)
diff --git a/security/integrity/ima/ima_policy.c b/security/integrity/ima/ima_policy.c
index 49fbc3e8f012..da3e7d50e0d7 100644
--- a/security/integrity/ima/ima_policy.c
+++ b/security/integrity/ima/ima_policy.c
@@ -61,7 +61,7 @@ struct ima_rule_entry {
enum ima_hooks func;
int mask;
unsigned long fsmagic;
- u8 fsuuid[16];
+ uuid_t fsuuid;
kuid_t uid;
kuid_t fowner;
bool (*uid_op)(kuid_t, kuid_t); /* Handlers for operators */
@@ -244,7 +244,7 @@ static bool ima_match_rules(struct ima_rule_entry *rule, struct inode *inode,
&& rule->fsmagic != inode->i_sb->s_magic)
return false;
if ((rule->flags & IMA_FSUUID) &&
- memcmp(rule->fsuuid, inode->i_sb->s_uuid, sizeof(rule->fsuuid)))
+ memcmp(&rule->fsuuid, inode->i_sb->s_uuid, sizeof(rule->fsuuid)))
return false;
if ((rule->flags & IMA_UID) && !rule->uid_op(cred->uid, rule->uid))
return false;
@@ -711,13 +711,12 @@ static int ima_parse_rule(char *rule, struct ima_rule_entry *entry)
case Opt_fsuuid:
ima_log_string(ab, "fsuuid", args[0].from);
- if (memchr_inv(entry->fsuuid, 0x00,
- sizeof(entry->fsuuid))) {
+ if (uuid_is_null(&entry->fsuuid)) {
result = -EINVAL;
break;
}
- result = uuid_to_bin(args[0].from, (uuid_t *)&entry->fsuuid);
+ result = uuid_to_bin(args[0].from, &entry->fsuuid);
if (!result)
entry->flags |= IMA_FSUUID;
break;
@@ -1086,7 +1085,7 @@ int ima_policy_show(struct seq_file *m, void *v)
}
if (entry->flags & IMA_FSUUID) {
- seq_printf(m, "fsuuid=%pU", entry->fsuuid);
+ seq_printf(m, "fsuuid=%pU", &entry->fsuuid);
seq_puts(m, " ");
}
--
2.11.0
^ permalink raw reply related [flat|nested] 29+ messages in thread
* [PATCH 16/16] fs: switch ->s_uuid to uuid_t
2017-05-10 18:01 cleanup UUID types Christoph Hellwig
` (14 preceding siblings ...)
2017-05-10 18:02 ` [PATCH 15/16] ima/policy: switch to use uuid_t Christoph Hellwig
@ 2017-05-10 18:02 ` Christoph Hellwig
2017-05-10 19:08 ` Amir Goldstein
2017-05-10 18:20 ` [PATCH 03/16] uuid: rename uuid types David Howells
` (2 subsequent siblings)
18 siblings, 1 reply; 29+ messages in thread
From: Christoph Hellwig @ 2017-05-10 18:02 UTC (permalink / raw)
To: Andy Shevchenko, Amir Goldstein, linux-fsdevel
Cc: Shaohua Li, Dan Williams, David Howells, Steven Whitehouse,
Mimi Zohar, linux-xfs, linux-raid, linux-nvdimm, linux-kernel
For some file systems we still memcpy into it, but in various places this
already allows us to use the proper uuid helpers. More to come..
Signed-off-by: Christoph Hellwig <hch@lst.de>
---
drivers/xen/tmem.c | 6 +++---
fs/ext4/super.c | 2 +-
fs/f2fs/super.c | 2 +-
fs/gfs2/ops_fstype.c | 2 +-
fs/gfs2/sys.c | 22 +++++-----------------
fs/ocfs2/super.c | 2 +-
fs/xfs/xfs_mount.c | 2 +-
include/linux/cleancache.h | 2 +-
include/linux/fs.h | 5 +++--
mm/cleancache.c | 2 +-
security/integrity/evm/evm_crypto.c | 2 +-
security/integrity/ima/ima_policy.c | 2 +-
12 files changed, 20 insertions(+), 31 deletions(-)
diff --git a/drivers/xen/tmem.c b/drivers/xen/tmem.c
index 4ac2ca8a7656..bf13d1ec51f3 100644
--- a/drivers/xen/tmem.c
+++ b/drivers/xen/tmem.c
@@ -233,12 +233,12 @@ static int tmem_cleancache_init_fs(size_t pagesize)
return xen_tmem_new_pool(uuid_private, 0, pagesize);
}
-static int tmem_cleancache_init_shared_fs(char *uuid, size_t pagesize)
+static int tmem_cleancache_init_shared_fs(uuid_t *uuid, size_t pagesize)
{
struct tmem_pool_uuid shared_uuid;
- shared_uuid.uuid_lo = *(u64 *)uuid;
- shared_uuid.uuid_hi = *(u64 *)(&uuid[8]);
+ shared_uuid.uuid_lo = *(u64 *)&uuid->b[0];
+ shared_uuid.uuid_hi = *(u64 *)&uuid->b[8];
return xen_tmem_new_pool(shared_uuid, TMEM_POOL_SHARED, pagesize);
}
diff --git a/fs/ext4/super.c b/fs/ext4/super.c
index c90edf09b0c3..b53e8b3082c0 100644
--- a/fs/ext4/super.c
+++ b/fs/ext4/super.c
@@ -3951,7 +3951,7 @@ static int ext4_fill_super(struct super_block *sb, void *data, int silent)
sb->s_qcop = &ext4_qctl_operations;
sb->s_quota_types = QTYPE_MASK_USR | QTYPE_MASK_GRP | QTYPE_MASK_PRJ;
#endif
- memcpy(sb->s_uuid, es->s_uuid, sizeof(es->s_uuid));
+ memcpy(&sb->s_uuid, es->s_uuid, sizeof(es->s_uuid));
INIT_LIST_HEAD(&sbi->s_orphan); /* unlinked but open files */
mutex_init(&sbi->s_orphan_lock);
diff --git a/fs/f2fs/super.c b/fs/f2fs/super.c
index 83355ec4a92c..0b89b0b7b9f7 100644
--- a/fs/f2fs/super.c
+++ b/fs/f2fs/super.c
@@ -1937,7 +1937,7 @@ static int f2fs_fill_super(struct super_block *sb, void *data, int silent)
sb->s_time_gran = 1;
sb->s_flags = (sb->s_flags & ~MS_POSIXACL) |
(test_opt(sbi, POSIX_ACL) ? MS_POSIXACL : 0);
- memcpy(sb->s_uuid, raw_super->uuid, sizeof(raw_super->uuid));
+ memcpy(&sb->s_uuid, raw_super->uuid, sizeof(raw_super->uuid));
/* init f2fs-specific super block info */
sbi->valid_super_block = valid_super_block;
diff --git a/fs/gfs2/ops_fstype.c b/fs/gfs2/ops_fstype.c
index ed67548b286c..b92135c202c2 100644
--- a/fs/gfs2/ops_fstype.c
+++ b/fs/gfs2/ops_fstype.c
@@ -203,7 +203,7 @@ static void gfs2_sb_in(struct gfs2_sbd *sdp, const void *buf)
memcpy(sb->sb_lockproto, str->sb_lockproto, GFS2_LOCKNAME_LEN);
memcpy(sb->sb_locktable, str->sb_locktable, GFS2_LOCKNAME_LEN);
- memcpy(s->s_uuid, str->sb_uuid, 16);
+ memcpy(&s->s_uuid, str->sb_uuid, 16);
}
/**
diff --git a/fs/gfs2/sys.c b/fs/gfs2/sys.c
index 7a515345610c..e77bc52b468f 100644
--- a/fs/gfs2/sys.c
+++ b/fs/gfs2/sys.c
@@ -71,25 +71,14 @@ static ssize_t fsname_show(struct gfs2_sbd *sdp, char *buf)
return snprintf(buf, PAGE_SIZE, "%s\n", sdp->sd_fsname);
}
-static int gfs2_uuid_valid(const u8 *uuid)
-{
- int i;
-
- for (i = 0; i < 16; i++) {
- if (uuid[i])
- return 1;
- }
- return 0;
-}
-
static ssize_t uuid_show(struct gfs2_sbd *sdp, char *buf)
{
struct super_block *s = sdp->sd_vfs;
- const u8 *uuid = s->s_uuid;
+
buf[0] = '\0';
- if (!gfs2_uuid_valid(uuid))
+ if (uuid_is_null(&s->s_uuid))
return 0;
- return snprintf(buf, PAGE_SIZE, "%pUB\n", uuid);
+ return snprintf(buf, PAGE_SIZE, "%pUB\n", &s->s_uuid);
}
static ssize_t freeze_show(struct gfs2_sbd *sdp, char *buf)
@@ -712,14 +701,13 @@ static int gfs2_uevent(struct kset *kset, struct kobject *kobj,
{
struct gfs2_sbd *sdp = container_of(kobj, struct gfs2_sbd, sd_kobj);
struct super_block *s = sdp->sd_vfs;
- const u8 *uuid = s->s_uuid;
add_uevent_var(env, "LOCKTABLE=%s", sdp->sd_table_name);
add_uevent_var(env, "LOCKPROTO=%s", sdp->sd_proto_name);
if (!test_bit(SDF_NOJOURNALID, &sdp->sd_flags))
add_uevent_var(env, "JOURNALID=%d", sdp->sd_lockstruct.ls_jid);
- if (gfs2_uuid_valid(uuid))
- add_uevent_var(env, "UUID=%pUB", uuid);
+ if (!uuid_is_null(&s->s_uuid))
+ add_uevent_var(env, "UUID=%pUB", &s->s_uuid);
return 0;
}
diff --git a/fs/ocfs2/super.c b/fs/ocfs2/super.c
index ca1646fbcaef..83005f486451 100644
--- a/fs/ocfs2/super.c
+++ b/fs/ocfs2/super.c
@@ -2062,7 +2062,7 @@ static int ocfs2_initialize_super(struct super_block *sb,
cbits = le32_to_cpu(di->id2.i_super.s_clustersize_bits);
bbits = le32_to_cpu(di->id2.i_super.s_blocksize_bits);
sb->s_maxbytes = ocfs2_max_file_offset(bbits, cbits);
- memcpy(sb->s_uuid, di->id2.i_super.s_uuid,
+ memcpy(&sb->s_uuid, di->id2.i_super.s_uuid,
sizeof(di->id2.i_super.s_uuid));
osb->osb_dx_mask = (1 << (cbits - bbits)) - 1;
diff --git a/fs/xfs/xfs_mount.c b/fs/xfs/xfs_mount.c
index 682b336a7a6a..93a420160964 100644
--- a/fs/xfs/xfs_mount.c
+++ b/fs/xfs/xfs_mount.c
@@ -75,7 +75,7 @@ xfs_uuid_mount(
/* Publish UUID in struct super_block */
BUILD_BUG_ON(sizeof(mp->m_super->s_uuid) != sizeof(uuid_t));
- memcpy(&mp->m_super->s_uuid, uuid, sizeof(uuid_t));
+ uuid_copy(&mp->m_super->s_uuid, uuid);
if (mp->m_flags & XFS_MOUNT_NOUUID)
return 0;
diff --git a/include/linux/cleancache.h b/include/linux/cleancache.h
index fccf7f44139d..bbb3712dd892 100644
--- a/include/linux/cleancache.h
+++ b/include/linux/cleancache.h
@@ -27,7 +27,7 @@ struct cleancache_filekey {
struct cleancache_ops {
int (*init_fs)(size_t);
- int (*init_shared_fs)(char *uuid, size_t);
+ int (*init_shared_fs)(uuid_t *uuid, size_t);
int (*get_page)(int, struct cleancache_filekey,
pgoff_t, struct page *);
void (*put_page)(int, struct cleancache_filekey,
diff --git a/include/linux/fs.h b/include/linux/fs.h
index 26488b419965..cdffd2f86aa0 100644
--- a/include/linux/fs.h
+++ b/include/linux/fs.h
@@ -30,6 +30,7 @@
#include <linux/percpu-rwsem.h>
#include <linux/workqueue.h>
#include <linux/delayed_call.h>
+#include <linux/uuid.h>
#include <asm/byteorder.h>
#include <uapi/linux/fs.h>
@@ -1326,8 +1327,8 @@ struct super_block {
struct sb_writers s_writers;
- char s_id[32]; /* Informational name */
- u8 s_uuid[16]; /* UUID */
+ char s_id[32]; /* Informational name */
+ uuid_t s_uuid; /* UUID */
void *s_fs_info; /* Filesystem private info */
unsigned int s_max_links;
diff --git a/mm/cleancache.c b/mm/cleancache.c
index ba5d8f3e6d68..f7b9fdc79d97 100644
--- a/mm/cleancache.c
+++ b/mm/cleancache.c
@@ -130,7 +130,7 @@ void __cleancache_init_shared_fs(struct super_block *sb)
int pool_id = CLEANCACHE_NO_BACKEND_SHARED;
if (cleancache_ops) {
- pool_id = cleancache_ops->init_shared_fs(sb->s_uuid, PAGE_SIZE);
+ pool_id = cleancache_ops->init_shared_fs(&sb->s_uuid, PAGE_SIZE);
if (pool_id < 0)
pool_id = CLEANCACHE_NO_POOL;
}
diff --git a/security/integrity/evm/evm_crypto.c b/security/integrity/evm/evm_crypto.c
index d7f282d75cc1..1d32cd20009a 100644
--- a/security/integrity/evm/evm_crypto.c
+++ b/security/integrity/evm/evm_crypto.c
@@ -164,7 +164,7 @@ static void hmac_add_misc(struct shash_desc *desc, struct inode *inode,
hmac_misc.mode = inode->i_mode;
crypto_shash_update(desc, (const u8 *)&hmac_misc, sizeof(hmac_misc));
if (evm_hmac_attrs & EVM_ATTR_FSUUID)
- crypto_shash_update(desc, inode->i_sb->s_uuid,
+ crypto_shash_update(desc, &inode->i_sb->s_uuid.b[0],
sizeof(inode->i_sb->s_uuid));
crypto_shash_final(desc, digest);
}
diff --git a/security/integrity/ima/ima_policy.c b/security/integrity/ima/ima_policy.c
index da3e7d50e0d7..659dbcc83d2f 100644
--- a/security/integrity/ima/ima_policy.c
+++ b/security/integrity/ima/ima_policy.c
@@ -244,7 +244,7 @@ static bool ima_match_rules(struct ima_rule_entry *rule, struct inode *inode,
&& rule->fsmagic != inode->i_sb->s_magic)
return false;
if ((rule->flags & IMA_FSUUID) &&
- memcmp(&rule->fsuuid, inode->i_sb->s_uuid, sizeof(rule->fsuuid)))
+ !uuid_equal(&rule->fsuuid, &inode->i_sb->s_uuid))
return false;
if ((rule->flags & IMA_UID) && !rule->uid_op(cred->uid, rule->uid))
return false;
--
2.11.0
^ permalink raw reply related [flat|nested] 29+ messages in thread
* Re: [PATCH 16/16] fs: switch ->s_uuid to uuid_t
2017-05-10 18:02 ` [PATCH 16/16] fs: switch ->s_uuid to uuid_t Christoph Hellwig
@ 2017-05-10 19:08 ` Amir Goldstein
2017-05-11 7:58 ` Christoph Hellwig
0 siblings, 1 reply; 29+ messages in thread
From: Amir Goldstein @ 2017-05-10 19:08 UTC (permalink / raw)
To: Christoph Hellwig
Cc: Andy Shevchenko, linux-fsdevel, Shaohua Li, Dan Williams,
David Howells, Steven Whitehouse, Mimi Zohar, linux-xfs,
linux-raid, linux-nvdimm, linux-kernel
On Wed, May 10, 2017 at 9:02 PM, Christoph Hellwig <hch@lst.de> wrote:
> For some file systems we still memcpy into it, but in various places this
> already allows us to use the proper uuid helpers. More to come..
> Signed-off-by: Christoph Hellwig <hch@lst.de>
> ---
Series looks good!
My main concern is that filesystems with char uuid[16] are here to stay,
or maybe, will be converted slowly.
Considering this, perhaps we should have a helper/macro to copy from
char[16] to *uuid_t and maybe BUILD_BUG_ON the size comparison?
#define bytes_to_uuid(dst, src) ...
> diff --git a/fs/xfs/xfs_mount.c b/fs/xfs/xfs_mount.c
> index 682b336a7a6a..93a420160964 100644
> --- a/fs/xfs/xfs_mount.c
> +++ b/fs/xfs/xfs_mount.c
> @@ -75,7 +75,7 @@ xfs_uuid_mount(
>
> /* Publish UUID in struct super_block */
> BUILD_BUG_ON(sizeof(mp->m_super->s_uuid) != sizeof(uuid_t));
This BUILD_BUG is no longer needed.
> - memcpy(&mp->m_super->s_uuid, uuid, sizeof(uuid_t));
> + uuid_copy(&mp->m_super->s_uuid, uuid);
>
> if (mp->m_flags & XFS_MOUNT_NOUUID)
> return 0;
[...]
> diff --git a/security/integrity/evm/evm_crypto.c b/security/integrity/evm/evm_crypto.c
> index d7f282d75cc1..1d32cd20009a 100644
> --- a/security/integrity/evm/evm_crypto.c
> +++ b/security/integrity/evm/evm_crypto.c
> @@ -164,7 +164,7 @@ static void hmac_add_misc(struct shash_desc *desc, struct inode *inode,
> hmac_misc.mode = inode->i_mode;
> crypto_shash_update(desc, (const u8 *)&hmac_misc, sizeof(hmac_misc));
> if (evm_hmac_attrs & EVM_ATTR_FSUUID)
> - crypto_shash_update(desc, inode->i_sb->s_uuid,
> + crypto_shash_update(desc, &inode->i_sb->s_uuid.b[0],
I wonder if 'inode->i_sb->s_uuid.b' would have been better here
Cheers,
Amir.
^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [PATCH 16/16] fs: switch ->s_uuid to uuid_t
2017-05-10 19:08 ` Amir Goldstein
@ 2017-05-11 7:58 ` Christoph Hellwig
0 siblings, 0 replies; 29+ messages in thread
From: Christoph Hellwig @ 2017-05-11 7:58 UTC (permalink / raw)
To: Amir Goldstein
Cc: Christoph Hellwig, Andy Shevchenko, linux-fsdevel, Shaohua Li,
Dan Williams, David Howells, Steven Whitehouse, Mimi Zohar,
linux-xfs, linux-raid, linux-nvdimm, linux-kernel
On Wed, May 10, 2017 at 10:08:25PM +0300, Amir Goldstein wrote:
> On Wed, May 10, 2017 at 9:02 PM, Christoph Hellwig <hch@lst.de> wrote:
> > For some file systems we still memcpy into it, but in various places this
> > already allows us to use the proper uuid helpers. More to come..
> > Signed-off-by: Christoph Hellwig <hch@lst.de>
> > ---
>
> Series looks good!
>
> My main concern is that filesystems with char uuid[16] are here to stay,
> or maybe, will be converted slowly.
I'll take a stab to convert them ASAP, and add s_uuid support for you
to more file systems once this initial series is done.
>
> Considering this, perhaps we should have a helper/macro to copy from
> char[16] to *uuid_t and maybe BUILD_BUG_ON the size comparison?
> #define bytes_to_uuid(dst, src) ...
If the mix of proper types and u8 arrays was to stay that'd be the way
to go, but I'd rather fix things up in a merge window or two instead
of leaving us in a transitionary state forever.
^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [PATCH 03/16] uuid: rename uuid types
2017-05-10 18:01 cleanup UUID types Christoph Hellwig
` (15 preceding siblings ...)
2017-05-10 18:02 ` [PATCH 16/16] fs: switch ->s_uuid to uuid_t Christoph Hellwig
@ 2017-05-10 18:20 ` David Howells
2017-05-11 11:38 ` Andy Shevchenko
2017-05-10 18:21 ` [PATCH 05/16] uuid: add the v1 layout to uuid_t David Howells
2017-05-10 18:22 ` [PATCH 06/16] afs: switch to use uuid_t and uuid_gen David Howells
18 siblings, 1 reply; 29+ messages in thread
From: David Howells @ 2017-05-10 18:20 UTC (permalink / raw)
To: Christoph Hellwig
Cc: dhowells, Andy Shevchenko, Amir Goldstein, linux-fsdevel,
Shaohua Li, Dan Williams, Steven Whitehouse, Mimi Zohar,
linux-xfs, linux-raid, linux-nvdimm, linux-kernel
Christoph Hellwig <hch@lst.de> wrote:
> -#define NULL_UUID_LE \
> - UUID_LE(0x00000000, 0x0000, 0x0000, 0x00, 0x00, 0x00, 0x00, \
> - 0x00, 0x00, 0x00, 0x00)
> +#define NULL_GUID \
> + GUID(0x00000000, 0x0000, 0x0000, 0x00, 0x00, 0x00, 0x00, \
> + 0x00, 0x00, 0x00, 0x00)
>
> -#define NULL_UUID_BE \
> - UUID_BE(0x00000000, 0x0000, 0x0000, 0x00, 0x00, 0x00, 0x00, \
> - 0x00, 0x00, 0x00, 0x00)
> +#define NULL_UUID \
> + UUID(0x00000000, 0x0000, 0x0000, 0x00, 0x00, 0x00, 0x00, \
> + 0x00, 0x00, 0x00, 0x00)
These are UAPI and ought not to be renamed.
David
^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [PATCH 03/16] uuid: rename uuid types
2017-05-10 18:20 ` [PATCH 03/16] uuid: rename uuid types David Howells
@ 2017-05-11 11:38 ` Andy Shevchenko
0 siblings, 0 replies; 29+ messages in thread
From: Andy Shevchenko @ 2017-05-11 11:38 UTC (permalink / raw)
To: David Howells, Christoph Hellwig
Cc: Amir Goldstein, linux-fsdevel, Shaohua Li, Dan Williams,
Steven Whitehouse, Mimi Zohar, linux-xfs, linux-raid,
linux-nvdimm, linux-kernel
On Wed, 2017-05-10 at 19:20 +0100, David Howells wrote:
> Christoph Hellwig <hch@lst.de> wrote:
>
> > -#define NULL_UUID_LE
> > \
> > - UUID_LE(0x00000000, 0x0000, 0x0000, 0x00, 0x00, 0x00, 0x00,
> > \
> > - 0x00, 0x00, 0x00, 0x00)
> > +#define NULL_GUID
> > \
> > + GUID(0x00000000, 0x0000, 0x0000, 0x00, 0x00, 0x00, 0x00,
> > \
> > + 0x00, 0x00, 0x00, 0x00)
> >
> > -#define NULL_UUID_BE
> > \
> > - UUID_BE(0x00000000, 0x0000, 0x0000, 0x00, 0x00, 0x00, 0x00,
> > \
> > - 0x00, 0x00, 0x00, 0x00)
> > +#define NULL_UUID
> > \
> > + UUID(0x00000000, 0x0000, 0x0000, 0x00, 0x00, 0x00, 0x00,
> > \
> > + 0x00, 0x00, 0x00, 0x00)
>
> These are UAPI and ought not to be renamed.
>
Good point. I see in the branch it's already fixed.
--
Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Intel Finland Oy
^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [PATCH 05/16] uuid: add the v1 layout to uuid_t
2017-05-10 18:01 cleanup UUID types Christoph Hellwig
` (16 preceding siblings ...)
2017-05-10 18:20 ` [PATCH 03/16] uuid: rename uuid types David Howells
@ 2017-05-10 18:21 ` David Howells
2017-05-10 18:22 ` [PATCH 06/16] afs: switch to use uuid_t and uuid_gen David Howells
18 siblings, 0 replies; 29+ messages in thread
From: David Howells @ 2017-05-10 18:21 UTC (permalink / raw)
To: Christoph Hellwig
Cc: dhowells, Andy Shevchenko, Amir Goldstein, linux-fsdevel,
Shaohua Li, Dan Williams, Steven Whitehouse, Mimi Zohar,
linux-xfs, linux-raid, linux-nvdimm, linux-kernel
Christoph Hellwig <hch@lst.de> wrote:
> Turn the content of uuid_t into a union and add the fields for the v1
> interpretation to it.
>
> Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: David Howells <dhowells@redhat.com>
^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [PATCH 06/16] afs: switch to use uuid_t and uuid_gen
2017-05-10 18:01 cleanup UUID types Christoph Hellwig
` (17 preceding siblings ...)
2017-05-10 18:21 ` [PATCH 05/16] uuid: add the v1 layout to uuid_t David Howells
@ 2017-05-10 18:22 ` David Howells
18 siblings, 0 replies; 29+ messages in thread
From: David Howells @ 2017-05-10 18:22 UTC (permalink / raw)
To: Christoph Hellwig
Cc: dhowells, Andy Shevchenko, Amir Goldstein, linux-fsdevel,
Shaohua Li, Dan Williams, Steven Whitehouse, Mimi Zohar,
linux-xfs, linux-raid, linux-nvdimm, linux-kernel
Christoph Hellwig <hch@lst.de> wrote:
> Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: David Howells <dhowells@redhat.com>
^ permalink raw reply [flat|nested] 29+ messages in thread