All of lore.kernel.org
 help / color / mirror / Atom feed
* [RFC 2/2] Use unified UUID/GUID definition in gfs2
@ 2009-10-14  6:30 Huang Ying
  2009-11-01 17:35 ` Andrew Morton
  0 siblings, 1 reply; 8+ messages in thread
From: Huang Ying @ 2009-10-14  6:30 UTC (permalink / raw)
  To: Andrew Morton, Joe Perches, Steven Whitehouse, Laurent Pinchart
  Cc: linux-kernel

Replace u8[16] UUID definition in gfs2.

Signed-off-by: Huang Ying <ying.huang@intel.com>
---
 fs/gfs2/incore.h            |    3 ++-
 fs/gfs2/ops_fstype.c        |    2 +-
 fs/gfs2/sys.c               |   14 ++++----------
 include/linux/gfs2_ondisk.h |    3 ++-
 4 files changed, 9 insertions(+), 13 deletions(-)

--- a/fs/gfs2/incore.h
+++ b/fs/gfs2/incore.h
@@ -15,6 +15,7 @@
 #include <linux/slow-work.h>
 #include <linux/dlm.h>
 #include <linux/buffer_head.h>
+#include <linux/uuid.h>
 
 #define DIO_WAIT	0x00000010
 #define DIO_METADATA	0x00000020
@@ -483,7 +484,7 @@ struct gfs2_sb_host {
 
 	char sb_lockproto[GFS2_LOCKNAME_LEN];
 	char sb_locktable[GFS2_LOCKNAME_LEN];
-	u8 sb_uuid[16];
+	uuid_be sb_uuid;
 };
 
 /*
--- a/fs/gfs2/sys.c
+++ b/fs/gfs2/sys.c
@@ -68,20 +68,14 @@ static ssize_t fsname_show(struct gfs2_s
 	return snprintf(buf, PAGE_SIZE, "%s\n", sdp->sd_fsname);
 }
 
-static int gfs2_uuid_valid(const u8 *uuid)
+static int gfs2_uuid_valid(const uuid_be *uuid)
 {
-	int i;
-
-	for (i = 0; i < 16; i++) {
-		if (uuid[i])
-			return 1;
-	}
-	return 0;
+	return uuid_be_cmp(*uuid, NULL_UUID_BE);
 }
 
 static ssize_t uuid_show(struct gfs2_sbd *sdp, char *buf)
 {
-	const u8 *uuid = sdp->sd_sb.sb_uuid;
+	const uuid_be *uuid = &sdp->sd_sb.sb_uuid;
 	buf[0] = '\0';
 	if (!gfs2_uuid_valid(uuid))
 		return 0;
@@ -563,7 +557,7 @@ static int gfs2_uevent(struct kset *kset
 		       struct kobj_uevent_env *env)
 {
 	struct gfs2_sbd *sdp = container_of(kobj, struct gfs2_sbd, sd_kobj);
-	const u8 *uuid = sdp->sd_sb.sb_uuid;
+	const uuid_be *uuid = &sdp->sd_sb.sb_uuid;
 
 	add_uevent_var(env, "LOCKTABLE=%s", sdp->sd_table_name);
 	add_uevent_var(env, "LOCKPROTO=%s", sdp->sd_proto_name);
--- a/include/linux/gfs2_ondisk.h
+++ b/include/linux/gfs2_ondisk.h
@@ -11,6 +11,7 @@
 #define __GFS2_ONDISK_DOT_H__
 
 #include <linux/types.h>
+#include <linux/uuid.h>
 
 #define GFS2_MAGIC		0x01161970
 #define GFS2_BASIC_BLOCK	512
@@ -124,7 +125,7 @@ struct gfs2_sb {
 	struct gfs2_inum __pad3; /* Was quota inode in gfs1 */
 	struct gfs2_inum __pad4; /* Was licence inode in gfs1 */
 #define GFS2_HAS_UUID 1
-	__u8 sb_uuid[16]; /* The UUID, maybe 0 for backwards compat */
+	uuid_be sb_uuid; /* The UUID, maybe 0 for backwards compat */
 };
 
 /*
--- a/fs/gfs2/ops_fstype.c
+++ b/fs/gfs2/ops_fstype.c
@@ -233,7 +233,7 @@ static void gfs2_sb_in(struct gfs2_sb_ho
 
 	memcpy(sb->sb_lockproto, str->sb_lockproto, GFS2_LOCKNAME_LEN);
 	memcpy(sb->sb_locktable, str->sb_locktable, GFS2_LOCKNAME_LEN);
-	memcpy(sb->sb_uuid, str->sb_uuid, 16);
+	sb->sb_uuid = str->sb_uuid;
 }
 
 /**



^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [RFC 2/2] Use unified UUID/GUID definition in gfs2
  2009-10-14  6:30 [RFC 2/2] Use unified UUID/GUID definition in gfs2 Huang Ying
@ 2009-11-01 17:35 ` Andrew Morton
  2009-11-02  0:59   ` Huang Ying
  0 siblings, 1 reply; 8+ messages in thread
From: Andrew Morton @ 2009-11-01 17:35 UTC (permalink / raw)
  To: Huang Ying; +Cc: Joe Perches, Steven Whitehouse, Laurent Pinchart, linux-kernel

On Wed, 14 Oct 2009 14:30:07 +0800 Huang Ying <ying.huang@intel.com> wrote:

> Replace u8[16] UUID definition in gfs2.
> 
> Signed-off-by: Huang Ying <ying.huang@intel.com>
> ---
>  fs/gfs2/incore.h            |    3 ++-
>  fs/gfs2/ops_fstype.c        |    2 +-
>  fs/gfs2/sys.c               |   14 ++++----------
>  include/linux/gfs2_ondisk.h |    3 ++-
>  4 files changed, 9 insertions(+), 13 deletions(-)
> 
> --- a/fs/gfs2/incore.h
> +++ b/fs/gfs2/incore.h
> @@ -15,6 +15,7 @@
>  #include <linux/slow-work.h>
>  #include <linux/dlm.h>
>  #include <linux/buffer_head.h>
> +#include <linux/uuid.h>
>  
>  #define DIO_WAIT	0x00000010
>  #define DIO_METADATA	0x00000020
> @@ -483,7 +484,7 @@ struct gfs2_sb_host {
>  
>  	char sb_lockproto[GFS2_LOCKNAME_LEN];
>  	char sb_locktable[GFS2_LOCKNAME_LEN];
> -	u8 sb_uuid[16];
> +	uuid_be sb_uuid;
>  };
>  

Breaks `make headers_check':

include/linux/gfs2_ondisk.h:14: included file 'linux/uuid.h' is not exported

I don't think we want to export linux/uuid.h to userspace.  But
fs/gfs2/incore.h _is_ shared with userspace, and needs linux/uuid.h.

Don't know what to do, so I'll drop the patches.

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [RFC 2/2] Use unified UUID/GUID definition in gfs2
  2009-11-01 17:35 ` Andrew Morton
@ 2009-11-02  0:59   ` Huang Ying
  2009-11-02 23:02     ` Andrew Morton
  0 siblings, 1 reply; 8+ messages in thread
From: Huang Ying @ 2009-11-02  0:59 UTC (permalink / raw)
  To: Andrew Morton
  Cc: Joe Perches, Steven Whitehouse, Laurent Pinchart, linux-kernel

On Mon, 2009-11-02 at 01:35 +0800, Andrew Morton wrote: 
> On Wed, 14 Oct 2009 14:30:07 +0800 Huang Ying <ying.huang@intel.com> wrote:
> 
> > Replace u8[16] UUID definition in gfs2.
> > 
> > Signed-off-by: Huang Ying <ying.huang@intel.com>
> > ---
> >  fs/gfs2/incore.h            |    3 ++-
> >  fs/gfs2/ops_fstype.c        |    2 +-
> >  fs/gfs2/sys.c               |   14 ++++----------
> >  include/linux/gfs2_ondisk.h |    3 ++-
> >  4 files changed, 9 insertions(+), 13 deletions(-)
> > 
> > --- a/fs/gfs2/incore.h
> > +++ b/fs/gfs2/incore.h
> > @@ -15,6 +15,7 @@
> >  #include <linux/slow-work.h>
> >  #include <linux/dlm.h>
> >  #include <linux/buffer_head.h>
> > +#include <linux/uuid.h>
> >  
> >  #define DIO_WAIT	0x00000010
> >  #define DIO_METADATA	0x00000020
> > @@ -483,7 +484,7 @@ struct gfs2_sb_host {
> >  
> >  	char sb_lockproto[GFS2_LOCKNAME_LEN];
> >  	char sb_locktable[GFS2_LOCKNAME_LEN];
> > -	u8 sb_uuid[16];
> > +	uuid_be sb_uuid;
> >  };
> >  
> 
> Breaks `make headers_check':
> 
> include/linux/gfs2_ondisk.h:14: included file 'linux/uuid.h' is not exported
> 
> I don't think we want to export linux/uuid.h to userspace.  But
> fs/gfs2/incore.h _is_ shared with userspace, and needs linux/uuid.h.

When writing uuid.h, I think it should be exported to userspace. Why
should we not export it to user space?

Best Regards,
Huang Ying



^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [RFC 2/2] Use unified UUID/GUID definition in gfs2
  2009-11-02  0:59   ` Huang Ying
@ 2009-11-02 23:02     ` Andrew Morton
  2009-11-03  0:44       ` Huang Ying
  0 siblings, 1 reply; 8+ messages in thread
From: Andrew Morton @ 2009-11-02 23:02 UTC (permalink / raw)
  To: Huang Ying; +Cc: Joe Perches, Steven Whitehouse, Laurent Pinchart, linux-kernel

On Mon, 02 Nov 2009 08:59:43 +0800
Huang Ying <ying.huang@intel.com> wrote:

> On Mon, 2009-11-02 at 01:35 +0800, Andrew Morton wrote: 
> > On Wed, 14 Oct 2009 14:30:07 +0800 Huang Ying <ying.huang@intel.com> wrote:
> > 
> > > Replace u8[16] UUID definition in gfs2.
> > > 
> > > Signed-off-by: Huang Ying <ying.huang@intel.com>
> > > ---
> > >  fs/gfs2/incore.h            |    3 ++-
> > >  fs/gfs2/ops_fstype.c        |    2 +-
> > >  fs/gfs2/sys.c               |   14 ++++----------
> > >  include/linux/gfs2_ondisk.h |    3 ++-
> > >  4 files changed, 9 insertions(+), 13 deletions(-)
> > > 
> > > --- a/fs/gfs2/incore.h
> > > +++ b/fs/gfs2/incore.h
> > > @@ -15,6 +15,7 @@
> > >  #include <linux/slow-work.h>
> > >  #include <linux/dlm.h>
> > >  #include <linux/buffer_head.h>
> > > +#include <linux/uuid.h>
> > >  
> > >  #define DIO_WAIT	0x00000010
> > >  #define DIO_METADATA	0x00000020
> > > @@ -483,7 +484,7 @@ struct gfs2_sb_host {
> > >  
> > >  	char sb_lockproto[GFS2_LOCKNAME_LEN];
> > >  	char sb_locktable[GFS2_LOCKNAME_LEN];
> > > -	u8 sb_uuid[16];
> > > +	uuid_be sb_uuid;
> > >  };
> > >  
> > 
> > Breaks `make headers_check':
> > 
> > include/linux/gfs2_ondisk.h:14: included file 'linux/uuid.h' is not exported
> > 
> > I don't think we want to export linux/uuid.h to userspace.  But
> > fs/gfs2/incore.h _is_ shared with userspace, and needs linux/uuid.h.
> 
> When writing uuid.h, I think it should be exported to userspace. Why
> should we not export it to user space?

It contains a pile of stuff which is of no use to userspace - functions
definitions, function declarations, macros, additional linux includes.

If we're going to do this then we need a separate header file which
contains the userspace-needed things.  And we'd need to check that it's
desirable to use __u8 in userspace headers.

And we'll need to wake Steven up to actually take a look at the patches!

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [RFC 2/2] Use unified UUID/GUID definition in gfs2
  2009-11-02 23:02     ` Andrew Morton
@ 2009-11-03  0:44       ` Huang Ying
  2009-11-03  1:02         ` Andrew Morton
  0 siblings, 1 reply; 8+ messages in thread
From: Huang Ying @ 2009-11-03  0:44 UTC (permalink / raw)
  To: Andrew Morton
  Cc: Joe Perches, Steven Whitehouse, Laurent Pinchart, linux-kernel

On Tue, 2009-11-03 at 07:02 +0800, Andrew Morton wrote: 
> On Mon, 02 Nov 2009 08:59:43 +0800
> Huang Ying <ying.huang@intel.com> wrote:
> 
> > On Mon, 2009-11-02 at 01:35 +0800, Andrew Morton wrote: 
> > > On Wed, 14 Oct 2009 14:30:07 +0800 Huang Ying <ying.huang@intel.com> wrote:
> > > 
> > > > Replace u8[16] UUID definition in gfs2.
> > > > 
> > > > Signed-off-by: Huang Ying <ying.huang@intel.com>
> > > > ---
> > > >  fs/gfs2/incore.h            |    3 ++-
> > > >  fs/gfs2/ops_fstype.c        |    2 +-
> > > >  fs/gfs2/sys.c               |   14 ++++----------
> > > >  include/linux/gfs2_ondisk.h |    3 ++-
> > > >  4 files changed, 9 insertions(+), 13 deletions(-)
> > > > 
> > > > --- a/fs/gfs2/incore.h
> > > > +++ b/fs/gfs2/incore.h
> > > > @@ -15,6 +15,7 @@
> > > >  #include <linux/slow-work.h>
> > > >  #include <linux/dlm.h>
> > > >  #include <linux/buffer_head.h>
> > > > +#include <linux/uuid.h>
> > > >  
> > > >  #define DIO_WAIT	0x00000010
> > > >  #define DIO_METADATA	0x00000020
> > > > @@ -483,7 +484,7 @@ struct gfs2_sb_host {
> > > >  
> > > >  	char sb_lockproto[GFS2_LOCKNAME_LEN];
> > > >  	char sb_locktable[GFS2_LOCKNAME_LEN];
> > > > -	u8 sb_uuid[16];
> > > > +	uuid_be sb_uuid;
> > > >  };
> > > >  
> > > 
> > > Breaks `make headers_check':
> > > 
> > > include/linux/gfs2_ondisk.h:14: included file 'linux/uuid.h' is not exported
> > > 
> > > I don't think we want to export linux/uuid.h to userspace.  But
> > > fs/gfs2/incore.h _is_ shared with userspace, and needs linux/uuid.h.
> > 
> > When writing uuid.h, I think it should be exported to userspace. Why
> > should we not export it to user space?
> 
> It contains a pile of stuff which is of no use to userspace - functions
> definitions, function declarations, macros, additional linux includes.
> 
> If we're going to do this then we need a separate header file which
> contains the userspace-needed things.  And we'd need to check that it's
> desirable to use __u8 in userspace headers.

For stuff of no use to user space, I think it can be enclosed into

#ifdef __KERNEL__
#endif

It seems that <linux/types.h> and <linux/string.h> are both safe to be
included in a file exported to user space, because there is appropriate
__KERNEL__ in these files.

In include/asm-generic/int-ll64.h, it is said __xx is intended to be
used to be exported to user space.

Best Regards,
Huang Ying


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [RFC 2/2] Use unified UUID/GUID definition in gfs2
  2009-11-03  0:44       ` Huang Ying
@ 2009-11-03  1:02         ` Andrew Morton
  2009-11-03  7:21           ` Huang Ying
  0 siblings, 1 reply; 8+ messages in thread
From: Andrew Morton @ 2009-11-03  1:02 UTC (permalink / raw)
  To: Huang Ying; +Cc: Joe Perches, Steven Whitehouse, Laurent Pinchart, linux-kernel

On Tue, 03 Nov 2009 08:44:48 +0800
Huang Ying <ying.huang@intel.com> wrote:

> For stuff of no use to user space, I think it can be enclosed into
> 
> #ifdef __KERNEL__
> #endif

It can, but that's ugly.  Clearly separating the inclusions into uuid-kernel.h
and uuid-user-h is nicer, no?

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [RFC 2/2] Use unified UUID/GUID definition in gfs2
  2009-11-03  1:02         ` Andrew Morton
@ 2009-11-03  7:21           ` Huang Ying
  2009-11-03 10:02             ` Sam Ravnborg
  0 siblings, 1 reply; 8+ messages in thread
From: Huang Ying @ 2009-11-03  7:21 UTC (permalink / raw)
  To: Andrew Morton
  Cc: Joe Perches, Steven Whitehouse, Laurent Pinchart, linux-kernel

On Tue, 2009-11-03 at 09:02 +0800, Andrew Morton wrote: 
> On Tue, 03 Nov 2009 08:44:48 +0800
> Huang Ying <ying.huang@intel.com> wrote:
> 
> > For stuff of no use to user space, I think it can be enclosed into
> > 
> > #ifdef __KERNEL__
> > #endif
> 
> It can, but that's ugly.  Clearly separating the inclusions into uuid-kernel.h
> and uuid-user-h is nicer, no?

But it seems that __KERNEL__ is common used method now. There are about
370 out of 3085 files under linux/include use __KERNEL__. The data are
gotten via:

# cd linux/include
# find . -type f | wc -l
# grep __KERNEL__ -lr * | wc -l

Best Regards,
Huang Ying



^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [RFC 2/2] Use unified UUID/GUID definition in gfs2
  2009-11-03  7:21           ` Huang Ying
@ 2009-11-03 10:02             ` Sam Ravnborg
  0 siblings, 0 replies; 8+ messages in thread
From: Sam Ravnborg @ 2009-11-03 10:02 UTC (permalink / raw)
  To: Huang Ying
  Cc: Andrew Morton, Joe Perches, Steven Whitehouse, Laurent Pinchart,
	linux-kernel

On Tue, Nov 03, 2009 at 03:21:59PM +0800, Huang Ying wrote:
> On Tue, 2009-11-03 at 09:02 +0800, Andrew Morton wrote: 
> > On Tue, 03 Nov 2009 08:44:48 +0800
> > Huang Ying <ying.huang@intel.com> wrote:
> > 
> > > For stuff of no use to user space, I think it can be enclosed into
> > > 
> > > #ifdef __KERNEL__
> > > #endif
> > 
> > It can, but that's ugly.  Clearly separating the inclusions into uuid-kernel.h
> > and uuid-user-h is nicer, no?
> 
> But it seems that __KERNEL__ is common used method now. There are about
> 370 out of 3085 files under linux/include use __KERNEL__.

Just because we were sloopy in the past is no excuse for repeating this.

	Sam

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2009-11-03 10:02 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-10-14  6:30 [RFC 2/2] Use unified UUID/GUID definition in gfs2 Huang Ying
2009-11-01 17:35 ` Andrew Morton
2009-11-02  0:59   ` Huang Ying
2009-11-02 23:02     ` Andrew Morton
2009-11-03  0:44       ` Huang Ying
2009-11-03  1:02         ` Andrew Morton
2009-11-03  7:21           ` Huang Ying
2009-11-03 10:02             ` Sam Ravnborg

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.