Message ID | CDC2ABAC.3341C%andreas.dilger@intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
[nfs-utils patch needs to be sent to Steve Dickson (CC'ed)] On Thu, May 23, 2013 at 7:06 AM, Dilger, Andreas <andreas.dilger@intel.com> wrote: > When exporting a filesystem via NFS, it can generate several kinds > of NFS filesystem IDs. For most of cases, it uses a 32-bit inode > number in the NFS FSID, but this does not work on a filesystem > using a 64-bit root inode number. > > In kernel space, NFS can generate/use NFS FSID with a 64-bit inode > number for the "FSID_UUID16_INUM" type. Unfortunately, while the > user space nfs-utils decode the 64-bit inode number from the FSID > correctly, it is truncated when storing it in "struct parsed_fsid". > Expand the "struct parsed_fsid" inode field to store the full 64-bit > root inode number. > > Intel-bug-id: LU-2904 > Signed-off-by: Fan Yong <fan.yong@intel.com> > Signed-off-by: Andreas Dilger <andreas.dilger@intel.com> > --- > utils/mountd/cache.c | 2 +- > 1 files changed, 1 insertions(+), 1 deletions(-) > > diff --git a/utils/mountd/cache.c b/utils/mountd/cache.c > index 517aa62..a7212e7 100644 > --- a/utils/mountd/cache.c > +++ b/utils/mountd/cache.c > @@ -388,7 +388,7 @@ struct parsed_fsid { > int fsidtype; > /* We could use a union for this, but it would be more > * complicated; why bother? */ > - unsigned int inode; > + unsigned long long inode; /* We need 64-bits ino# */ > unsigned int minor; > unsigned int major; > unsigned int fsidnum; > --1.7.1 > > Patch is also attached separately, since it will likely be butchered > by this email client. > > > Cheers, Andreas > -- > Andreas Dilger > > Lustre Software Architect > Intel High Performance Data Division > > -- To unsubscribe from this list: send the line "unsubscribe linux-nfs" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Thu, 2013-05-23 at 16:12 +0800, Peng Tao wrote: > [nfs-utils patch needs to be sent to Steve Dickson (CC'ed)] > > On Thu, May 23, 2013 at 7:06 AM, Dilger, Andreas > <andreas.dilger@intel.com> wrote: > > When exporting a filesystem via NFS, it can generate several kinds > > of NFS filesystem IDs. For most of cases, it uses a 32-bit inode > > number in the NFS FSID, but this does not work on a filesystem > > using a 64-bit root inode number. > > > > In kernel space, NFS can generate/use NFS FSID with a 64-bit inode > > number for the "FSID_UUID16_INUM" type. Unfortunately, while the > > user space nfs-utils decode the 64-bit inode number from the FSID > > correctly, it is truncated when storing it in "struct parsed_fsid". > > Expand the "struct parsed_fsid" inode field to store the full 64-bit > > root inode number. > > > > Intel-bug-id: LU-2904 > > Signed-off-by: Fan Yong <fan.yong@intel.com> > > Signed-off-by: Andreas Dilger <andreas.dilger@intel.com> > > --- > > utils/mountd/cache.c | 2 +- > > 1 files changed, 1 insertions(+), 1 deletions(-) > > > > diff --git a/utils/mountd/cache.c b/utils/mountd/cache.c > > index 517aa62..a7212e7 100644 > > --- a/utils/mountd/cache.c > > +++ b/utils/mountd/cache.c > > @@ -388,7 +388,7 @@ struct parsed_fsid { > > int fsidtype; > > /* We could use a union for this, but it would be more > > * complicated; why bother? */ > > - unsigned int inode; > > + unsigned long long inode; /* We need 64-bits ino# */ > > unsigned int minor; > > unsigned int major; > > unsigned int fsidnum; > > --1.7.1 > > > > Patch is also attached separately, since it will likely be butchered > > by this email client. > > > > > > Cheers, Andreas > > -- > > Andreas Dilger Why not just specify a uint64_t size then?
Just make it match the "inode64" in nfs-utils parse_fsid(), which is defined as "unsigned long long", and the parsed_fsid:: inode is copied from "inode64" as following: static int parse_fsid(int fsidtype, int fsidlen, char *fsid, struct parsed_fsid *parsed) { unsigned int dev; unsigned long long inode64; ... case FSID_UUID16_INUM: /* 8 byte inode number and 16 byte uuid */ if (fsidlen != 24) return -1; memcpy(&inode64, fsid, 8); parsed->inode = inode64; parsed->uuidlen = 16; parsed->fhuuid = fsid+8; break; } -- Cheers, Nasf -----Original Message----- From: Myklebust, Trond [mailto:Trond.Myklebust@netapp.com] Sent: Thursday, May 23, 2013 8:50 PM To: Peng Tao Cc: Dilger, Andreas; J. Bruce Fields; linux-nfs@vger.kernel.org; Yong, Fan; Steve Dickson Subject: Re: [PATCH] nfs: support 64-bit root inode number in NFS FSID On Thu, 2013-05-23 at 16:12 +0800, Peng Tao wrote: > [nfs-utils patch needs to be sent to Steve Dickson (CC'ed)] > > On Thu, May 23, 2013 at 7:06 AM, Dilger, Andreas > <andreas.dilger@intel.com> wrote: > > When exporting a filesystem via NFS, it can generate several kinds > > of NFS filesystem IDs. For most of cases, it uses a 32-bit inode > > number in the NFS FSID, but this does not work on a filesystem using > > a 64-bit root inode number. > > > > In kernel space, NFS can generate/use NFS FSID with a 64-bit inode > > number for the "FSID_UUID16_INUM" type. Unfortunately, while the > > user space nfs-utils decode the 64-bit inode number from the FSID > > correctly, it is truncated when storing it in "struct parsed_fsid". > > Expand the "struct parsed_fsid" inode field to store the full 64-bit > > root inode number. > > > > Intel-bug-id: LU-2904 > > Signed-off-by: Fan Yong <fan.yong@intel.com> > > Signed-off-by: Andreas Dilger <andreas.dilger@intel.com> > > --- > > utils/mountd/cache.c | 2 +- > > 1 files changed, 1 insertions(+), 1 deletions(-) > > > > diff --git a/utils/mountd/cache.c b/utils/mountd/cache.c index > > 517aa62..a7212e7 100644 > > --- a/utils/mountd/cache.c > > +++ b/utils/mountd/cache.c > > @@ -388,7 +388,7 @@ struct parsed_fsid { > > int fsidtype; > > /* We could use a union for this, but it would be more > > * complicated; why bother? */ > > - unsigned int inode; > > + unsigned long long inode; /* We need 64-bits ino# */ > > unsigned int minor; > > unsigned int major; > > unsigned int fsidnum; > > --1.7.1 > > > > Patch is also attached separately, since it will likely be butchered > > by this email client. > > > > > > Cheers, Andreas > > -- > > Andreas Dilger Why not just specify a uint64_t size then? -- Trond Myklebust Linux NFS client maintainer NetApp Trond.Myklebust@netapp.com www.netapp.com -- To unsubscribe from this list: send the line "unsubscribe linux-nfs" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Thu, 2013-05-23 at 12:59 +0000, Yong, Fan wrote: > Just make it match the "inode64" in nfs-utils parse_fsid(), which is defined as "unsigned long long", and the parsed_fsid:: inode is copied from "inode64" as following: > > static int parse_fsid(int fsidtype, int fsidlen, char *fsid, > struct parsed_fsid *parsed) > { > unsigned int dev; > unsigned long long inode64; > ... > case FSID_UUID16_INUM: /* 8 byte inode number and 16 byte uuid */ > if (fsidlen != 24) > return -1; > memcpy(&inode64, fsid, 8); > parsed->inode = inode64; > parsed->uuidlen = 16; > parsed->fhuuid = fsid+8; > break; > } > > -- > Cheers, > Nasf Eeeeeeeewww! This is _exactly_ why we should be using properly dimensioned types. Feel free to tell me how the value of 'inode64' is well defined on systems where sizeof(unsigned long long) != 8... Trond > -----Original Message----- > From: Myklebust, Trond [mailto:Trond.Myklebust@netapp.com] > Sent: Thursday, May 23, 2013 8:50 PM > To: Peng Tao > Cc: Dilger, Andreas; J. Bruce Fields; linux-nfs@vger.kernel.org; Yong, Fan; Steve Dickson > Subject: Re: [PATCH] nfs: support 64-bit root inode number in NFS FSID > > On Thu, 2013-05-23 at 16:12 +0800, Peng Tao wrote: > > [nfs-utils patch needs to be sent to Steve Dickson (CC'ed)] > > > > On Thu, May 23, 2013 at 7:06 AM, Dilger, Andreas > > <andreas.dilger@intel.com> wrote: > > > When exporting a filesystem via NFS, it can generate several kinds > > > of NFS filesystem IDs. For most of cases, it uses a 32-bit inode > > > number in the NFS FSID, but this does not work on a filesystem using > > > a 64-bit root inode number. > > > > > > In kernel space, NFS can generate/use NFS FSID with a 64-bit inode > > > number for the "FSID_UUID16_INUM" type. Unfortunately, while the > > > user space nfs-utils decode the 64-bit inode number from the FSID > > > correctly, it is truncated when storing it in "struct parsed_fsid". > > > Expand the "struct parsed_fsid" inode field to store the full 64-bit > > > root inode number. > > > > > > Intel-bug-id: LU-2904 > > > Signed-off-by: Fan Yong <fan.yong@intel.com> > > > Signed-off-by: Andreas Dilger <andreas.dilger@intel.com> > > > --- > > > utils/mountd/cache.c | 2 +- > > > 1 files changed, 1 insertions(+), 1 deletions(-) > > > > > > diff --git a/utils/mountd/cache.c b/utils/mountd/cache.c index > > > 517aa62..a7212e7 100644 > > > --- a/utils/mountd/cache.c > > > +++ b/utils/mountd/cache.c > > > @@ -388,7 +388,7 @@ struct parsed_fsid { > > > int fsidtype; > > > /* We could use a union for this, but it would be more > > > * complicated; why bother? */ > > > - unsigned int inode; > > > + unsigned long long inode; /* We need 64-bits ino# */ > > > unsigned int minor; > > > unsigned int major; > > > unsigned int fsidnum; > > > --1.7.1 > > > > > > Patch is also attached separately, since it will likely be butchered > > > by this email client. > > > > > > > > > Cheers, Andreas > > > -- > > > Andreas Dilger > > Why not just specify a uint64_t size then? > > -- > Trond Myklebust > Linux NFS client maintainer > > NetApp > Trond.Myklebust@netapp.com > www.netapp.com > -- > To unsubscribe from this list: send the line "unsubscribe linux-nfs" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html
Myklebust, Trond wrote: On Thu, 2013-05-23 at 12:59 +0000, Yong, Fan wrote: > Just make it match the "inode64" in nfs-utils parse_fsid(), which is defined as "unsigned long long", and the parsed_fsid:: inode is copied from "inode64" as following: > > static int parse_fsid(int fsidtype, int fsidlen, char *fsid, > struct parsed_fsid *parsed) > { > unsigned int dev; > unsigned long long inode64; > ... > case FSID_UUID16_INUM: /* 8 byte inode number and 16 byte uuid */ > if (fsidlen != 24) > return -1; > memcpy(&inode64, fsid, 8); > parsed->inode = inode64; > parsed->uuidlen = 16; > parsed->fhuuid = fsid+8; > break; > } > > -- > Cheers, > Nasf Eeeeeeeewww! This is _exactly_ why we should be using properly dimensioned types. Feel free to tell me how the value of 'inode64' is well defined on systems where sizeof(unsigned long long) != 8... Is there any reason not to use ino_t? -- To unsubscribe from this list: send the line "unsubscribe linux-nfs" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
> -----Original Message----- > From: Jim Rees [mailto:rees@umich.edu] > Sent: Thursday, May 23, 2013 10:20 AM > To: Myklebust, Trond > Cc: Yong, Fan; Peng Tao; Dilger, Andreas; J. Bruce Fields; linux- > nfs@vger.kernel.org; Steve Dickson > Subject: Re: [PATCH] nfs: support 64-bit root inode number in NFS FSID > > Myklebust, Trond wrote: > > On Thu, 2013-05-23 at 12:59 +0000, Yong, Fan wrote: > > Just make it match the "inode64" in nfs-utils parse_fsid(), which is defined > as "unsigned long long", and the parsed_fsid:: inode is copied from "inode64" > as following: > > > > static int parse_fsid(int fsidtype, int fsidlen, char *fsid, > > struct parsed_fsid *parsed) > > { > > unsigned int dev; > > unsigned long long inode64; > > ... > > case FSID_UUID16_INUM: /* 8 byte inode number and 16 byte uuid > */ > > if (fsidlen != 24) > > return -1; > > memcpy(&inode64, fsid, 8); > > parsed->inode = inode64; > > parsed->uuidlen = 16; > > parsed->fhuuid = fsid+8; > > break; > > } > > > > -- > > Cheers, > > Nasf > > Eeeeeeeewww! This is _exactly_ why we should be using properly > dimensioned types. Feel free to tell me how the value of 'inode64' is > well defined on systems where sizeof(unsigned long long) != 8... > > Is there any reason not to use ino_t? Yes. It's not guaranteed to be 64-bit either. Trond -- To unsubscribe from this list: send the line "unsubscribe linux-nfs" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
For the rare unfortunate cases of "sizeof(unsigned long) < 4" or "sizeof(unsigned long long) < 8", current nfs-utils will cross-boundary memory copy. So need more work to make it stably runnable on kinds of platform... -- Cheers, Nasf -----Original Message----- From: Myklebust, Trond [mailto:Trond.Myklebust@netapp.com] Sent: Thursday, May 23, 2013 10:22 PM To: Jim Rees Cc: Yong, Fan; Peng Tao; Dilger, Andreas; J. Bruce Fields; linux-nfs@vger.kernel.org; Steve Dickson Subject: RE: [PATCH] nfs: support 64-bit root inode number in NFS FSID > -----Original Message----- > From: Jim Rees [mailto:rees@umich.edu] > Sent: Thursday, May 23, 2013 10:20 AM > To: Myklebust, Trond > Cc: Yong, Fan; Peng Tao; Dilger, Andreas; J. Bruce Fields; linux- > nfs@vger.kernel.org; Steve Dickson > Subject: Re: [PATCH] nfs: support 64-bit root inode number in NFS FSID > > Myklebust, Trond wrote: > > On Thu, 2013-05-23 at 12:59 +0000, Yong, Fan wrote: > > Just make it match the "inode64" in nfs-utils parse_fsid(), which > is defined as "unsigned long long", and the parsed_fsid:: inode is copied from "inode64" > as following: > > > > static int parse_fsid(int fsidtype, int fsidlen, char *fsid, > > struct parsed_fsid *parsed) > > { > > unsigned int dev; > > unsigned long long inode64; > > ... > > case FSID_UUID16_INUM: /* 8 byte inode number and 16 byte uuid > */ > > if (fsidlen != 24) > > return -1; > > memcpy(&inode64, fsid, 8); > > parsed->inode = inode64; > > parsed->uuidlen = 16; > > parsed->fhuuid = fsid+8; > > break; > > } > > > > -- > > Cheers, > > Nasf > > Eeeeeeeewww! This is _exactly_ why we should be using properly > dimensioned types. Feel free to tell me how the value of 'inode64' is > well defined on systems where sizeof(unsigned long long) != 8... > > Is there any reason not to use ino_t? Yes. It's not guaranteed to be 64-bit either. Trond -- To unsubscribe from this list: send the line "unsubscribe linux-nfs" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
> -----Original Message----- > From: Yong, Fan [mailto:fan.yong@intel.com] > Sent: Thursday, May 23, 2013 9:30 PM > To: Myklebust, Trond; Jim Rees > Cc: Peng Tao; Dilger, Andreas; J. Bruce Fields; linux-nfs@vger.kernel.org; > Steve Dickson > Subject: RE: [PATCH] nfs: support 64-bit root inode number in NFS FSID > > For the rare unfortunate cases of "sizeof(unsigned long) < 4" or > "sizeof(unsigned long long) < 8", current nfs-utils will cross-boundary > memory copy. So need more work to make it stably runnable on kinds of > platform... unsigned long long is guaranteed by C99 to be >= 64 bits. IOW: it could be 128 bits depending on the compiler. > -- > Cheers, > Nasf > > -----Original Message----- > From: Myklebust, Trond [mailto:Trond.Myklebust@netapp.com] > Sent: Thursday, May 23, 2013 10:22 PM > To: Jim Rees > Cc: Yong, Fan; Peng Tao; Dilger, Andreas; J. Bruce Fields; linux- > nfs@vger.kernel.org; Steve Dickson > Subject: RE: [PATCH] nfs: support 64-bit root inode number in NFS FSID > > > -----Original Message----- > > From: Jim Rees [mailto:rees@umich.edu] > > Sent: Thursday, May 23, 2013 10:20 AM > > To: Myklebust, Trond > > Cc: Yong, Fan; Peng Tao; Dilger, Andreas; J. Bruce Fields; linux- > > nfs@vger.kernel.org; Steve Dickson > > Subject: Re: [PATCH] nfs: support 64-bit root inode number in NFS FSID > > > > Myklebust, Trond wrote: > > > > On Thu, 2013-05-23 at 12:59 +0000, Yong, Fan wrote: > > > Just make it match the "inode64" in nfs-utils parse_fsid(), which > > is defined as "unsigned long long", and the parsed_fsid:: inode is copied > from "inode64" > > as following: > > > > > > static int parse_fsid(int fsidtype, int fsidlen, char *fsid, > > > struct parsed_fsid *parsed) > > > { > > > unsigned int dev; > > > unsigned long long inode64; > > > ... > > > case FSID_UUID16_INUM: /* 8 byte inode number and 16 byte uuid > > */ > > > if (fsidlen != 24) > > > return -1; > > > memcpy(&inode64, fsid, 8); > > > parsed->inode = inode64; > > > parsed->uuidlen = 16; > > > parsed->fhuuid = fsid+8; > > > break; > > > } > > > > > > -- > > > Cheers, > > > Nasf > > > > Eeeeeeeewww! This is _exactly_ why we should be using properly > > dimensioned types. Feel free to tell me how the value of 'inode64' is > > well defined on systems where sizeof(unsigned long long) != 8... > > > > Is there any reason not to use ino_t? > > Yes. It's not guaranteed to be 64-bit either. > > Trond -- To unsubscribe from this list: send the line "unsubscribe linux-nfs" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Update the patch as suggested. -- Cheers, Nasf -----Original Message----- From: Myklebust, Trond [mailto:Trond.Myklebust@netapp.com] Sent: Thursday, May 23, 2013 8:50 PM To: Peng Tao Cc: Dilger, Andreas; J. Bruce Fields; linux-nfs@vger.kernel.org; Yong, Fan; Steve Dickson Subject: Re: [PATCH] nfs: support 64-bit root inode number in NFS FSID On Thu, 2013-05-23 at 16:12 +0800, Peng Tao wrote: > [nfs-utils patch needs to be sent to Steve Dickson (CC'ed)] > > On Thu, May 23, 2013 at 7:06 AM, Dilger, Andreas > <andreas.dilger@intel.com> wrote: > > When exporting a filesystem via NFS, it can generate several kinds > > of NFS filesystem IDs. For most of cases, it uses a 32-bit inode > > number in the NFS FSID, but this does not work on a filesystem using > > a 64-bit root inode number. > > > > In kernel space, NFS can generate/use NFS FSID with a 64-bit inode > > number for the "FSID_UUID16_INUM" type. Unfortunately, while the > > user space nfs-utils decode the 64-bit inode number from the FSID > > correctly, it is truncated when storing it in "struct parsed_fsid". > > Expand the "struct parsed_fsid" inode field to store the full 64-bit > > root inode number. > > > > Intel-bug-id: LU-2904 > > Signed-off-by: Fan Yong <fan.yong@intel.com> > > Signed-off-by: Andreas Dilger <andreas.dilger@intel.com> > > --- > > utils/mountd/cache.c | 2 +- > > 1 files changed, 1 insertions(+), 1 deletions(-) > > > > diff --git a/utils/mountd/cache.c b/utils/mountd/cache.c index > > 517aa62..a7212e7 100644 > > --- a/utils/mountd/cache.c > > +++ b/utils/mountd/cache.c > > @@ -388,7 +388,7 @@ struct parsed_fsid { > > int fsidtype; > > /* We could use a union for this, but it would be more > > * complicated; why bother? */ > > - unsigned int inode; > > + unsigned long long inode; /* We need 64-bits ino# */ > > unsigned int minor; > > unsigned int major; > > unsigned int fsidnum; > > --1.7.1 > > > > Patch is also attached separately, since it will likely be butchered > > by this email client. > > > > > > Cheers, Andreas > > -- > > Andreas Dilger Why not just specify a uint64_t size then? -- Trond Myklebust Linux NFS client maintainer NetApp Trond.Myklebust@netapp.com www.netapp.com -- To unsubscribe from this list: send the line "unsubscribe linux-nfs" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Update the patch as suggested. Here is the patch... -- Cheers, Nasf -----Original Message----- From: Myklebust, Trond [mailto:Trond.Myklebust@netapp.com] Sent: Thursday, May 23, 2013 8:50 PM To: Peng Tao Cc: Dilger, Andreas; J. Bruce Fields; linux-nfs@vger.kernel.org; Yong, Fan; Steve Dickson Subject: Re: [PATCH] nfs: support 64-bit root inode number in NFS FSID On Thu, 2013-05-23 at 16:12 +0800, Peng Tao wrote: > [nfs-utils patch needs to be sent to Steve Dickson (CC'ed)] > > On Thu, May 23, 2013 at 7:06 AM, Dilger, Andreas > <andreas.dilger@intel.com> wrote: > > When exporting a filesystem via NFS, it can generate several kinds > > of NFS filesystem IDs. For most of cases, it uses a 32-bit inode > > number in the NFS FSID, but this does not work on a filesystem using > > a 64-bit root inode number. > > > > In kernel space, NFS can generate/use NFS FSID with a 64-bit inode > > number for the "FSID_UUID16_INUM" type. Unfortunately, while the > > user space nfs-utils decode the 64-bit inode number from the FSID > > correctly, it is truncated when storing it in "struct parsed_fsid". > > Expand the "struct parsed_fsid" inode field to store the full 64-bit > > root inode number. > > > > Intel-bug-id: LU-2904 > > Signed-off-by: Fan Yong <fan.yong@intel.com> > > Signed-off-by: Andreas Dilger <andreas.dilger@intel.com> > > --- > > utils/mountd/cache.c | 2 +- > > 1 files changed, 1 insertions(+), 1 deletions(-) > > > > diff --git a/utils/mountd/cache.c b/utils/mountd/cache.c index > > 517aa62..a7212e7 100644 > > --- a/utils/mountd/cache.c > > +++ b/utils/mountd/cache.c > > @@ -388,7 +388,7 @@ struct parsed_fsid { > > int fsidtype; > > /* We could use a union for this, but it would be more > > * complicated; why bother? */ > > - unsigned int inode; > > + unsigned long long inode; /* We need 64-bits ino# */ > > unsigned int minor; > > unsigned int major; > > unsigned int fsidnum; > > --1.7.1 > > > > Patch is also attached separately, since it will likely be butchered > > by this email client. > > > > > > Cheers, Andreas > > -- > > Andreas Dilger Why not just specify a uint64_t size then? -- Trond Myklebust Linux NFS client maintainer NetApp Trond.Myklebust@netapp.com www.netapp.com
diff --git a/utils/mountd/cache.c b/utils/mountd/cache.c index 517aa62..a7212e7 100644 --- a/utils/mountd/cache.c +++ b/utils/mountd/cache.c @@ -388,7 +388,7 @@ struct parsed_fsid { int fsidtype; /* We could use a union for this, but it would be more * complicated; why bother? */ - unsigned int inode; + unsigned long long inode; /* We need 64-bits ino# */ unsigned int minor; unsigned int major; unsigned int fsidnum;