Message ID | 156633308405.1215978.11329921136072672886.stgit@magnolia (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | xfsprogs-5.3: various fixes | expand |
On Tue, Aug 20, 2019 at 01:31:24PM -0700, Darrick J. Wong wrote: > From: Darrick J. Wong <darrick.wong@oracle.com> > > The topology functions live in libfrog now, which means their > declarations don't belong in libxcmd.h. Create new header file for > them. > > Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com> > --- > include/libxcmd.h | 31 ------------------------------- > include/topology.h | 39 +++++++++++++++++++++++++++++++++++++++ > libfrog/topology.c | 1 + > mkfs/xfs_mkfs.c | 2 +- > repair/sb.c | 1 + > 5 files changed, 42 insertions(+), 32 deletions(-) > create mode 100644 include/topology.h I like the idea, but I'm wondering if we should have a similar setup to libxfs header files here. i.e. the header file lives in libfrog/, and the install-headers make command creates include/libxfrog and links them for the build. That way the includes become namespaced like: #include "libxfrog/topology,h" and we don't pollute include with random header files from all different parts of xfsprogs... Cheers, Dave.
> > From: Darrick J. Wong <darrick.wong@oracle.com> > > > > The topology functions live in libfrog now, which means their > > declarations don't belong in libxcmd.h. Create new header file for > > them. > > > > Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com> > > --- > > include/libxcmd.h | 31 ------------------------------- > > include/topology.h | 39 +++++++++++++++++++++++++++++++++++++++ > > libfrog/topology.c | 1 + > > mkfs/xfs_mkfs.c | 2 +- > > repair/sb.c | 1 + > > 5 files changed, 42 insertions(+), 32 deletions(-) > > create mode 100644 include/topology.h > > I like the idea, but I'm wondering if we should have a similar > setup to libxfs header files here. > > i.e. the header file lives in libfrog/, and the install-headers make > command creates include/libxfrog and links them for the build. That > way the includes become namespaced like: > > #include "libxfrog/topology,h" > > and we don't pollute include with random header files from all > different parts of xfsprogs... What if I leave topology.h in libfrog/ and then create an include/libfrog.h that pulls in all the libfrog header files like libxfs.h does, and then put -I$(TOPDIR)/libfrog in GCFLAGS? --D > Cheers, > > Dave. > -- > Dave Chinner > david@fromorbit.com
On Fri, Aug 30, 2019 at 01:34:02PM -0700, Darrick J. Wong wrote: > > > From: Darrick J. Wong <darrick.wong@oracle.com> > > > > > > The topology functions live in libfrog now, which means their > > > declarations don't belong in libxcmd.h. Create new header file for > > > them. > > > > > > Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com> > > > --- > > > include/libxcmd.h | 31 ------------------------------- > > > include/topology.h | 39 +++++++++++++++++++++++++++++++++++++++ > > > libfrog/topology.c | 1 + > > > mkfs/xfs_mkfs.c | 2 +- > > > repair/sb.c | 1 + > > > 5 files changed, 42 insertions(+), 32 deletions(-) > > > create mode 100644 include/topology.h > > > > I like the idea, but I'm wondering if we should have a similar > > setup to libxfs header files here. > > > > i.e. the header file lives in libfrog/, and the install-headers make > > command creates include/libxfrog and links them for the build. That > > way the includes become namespaced like: > > > > #include "libxfrog/topology,h" > > > > and we don't pollute include with random header files from all > > different parts of xfsprogs... > > What if I leave topology.h in libfrog/ and then create an > include/libfrog.h that pulls in all the libfrog header files like > libxfs.h does, and then put -I$(TOPDIR)/libfrog in GCFLAGS? libxfs is a basket case - it's done that way so we don't need all the whacky games we play to shim the kernel functionality correctly in every xfsprogs file that needs libxfs functionality. libxfrog is very different - we have progs that just need topology or number conversion, but not both. I'd prefer for libxfrog we only include the headers we require, that way avoiding defining things we don't actually need... Cheers, Dave.
On Tue, Sep 03, 2019 at 08:33:46AM +1000, Dave Chinner wrote: > On Fri, Aug 30, 2019 at 01:34:02PM -0700, Darrick J. Wong wrote: > > > > From: Darrick J. Wong <darrick.wong@oracle.com> > > > > > > > > The topology functions live in libfrog now, which means their > > > > declarations don't belong in libxcmd.h. Create new header file for > > > > them. > > > > > > > > Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com> > > > > --- > > > > include/libxcmd.h | 31 ------------------------------- > > > > include/topology.h | 39 +++++++++++++++++++++++++++++++++++++++ > > > > libfrog/topology.c | 1 + > > > > mkfs/xfs_mkfs.c | 2 +- > > > > repair/sb.c | 1 + > > > > 5 files changed, 42 insertions(+), 32 deletions(-) > > > > create mode 100644 include/topology.h > > > > > > I like the idea, but I'm wondering if we should have a similar > > > setup to libxfs header files here. > > > > > > i.e. the header file lives in libfrog/, and the install-headers make > > > command creates include/libxfrog and links them for the build. That > > > way the includes become namespaced like: > > > > > > #include "libxfrog/topology,h" > > > > > > and we don't pollute include with random header files from all > > > different parts of xfsprogs... > > > > What if I leave topology.h in libfrog/ and then create an > > include/libfrog.h that pulls in all the libfrog header files like > > libxfs.h does, and then put -I$(TOPDIR)/libfrog in GCFLAGS? > > libxfs is a basket case - it's done that way so we don't need all > the whacky games we play to shim the kernel functionality correctly > in every xfsprogs file that needs libxfs functionality. > > libxfrog is very different - we have progs that just need topology > or number conversion, but not both. I'd prefer for libxfrog we only > include the headers we require, that way avoiding defining things we > don't actually need... Ok, will rework this tomorrow. --D > Cheers, > > Dave. > -- > Dave Chinner > david@fromorbit.com
On Tue, Sep 03, 2019 at 08:33:46AM +1000, Dave Chinner wrote: > On Fri, Aug 30, 2019 at 01:34:02PM -0700, Darrick J. Wong wrote: > > > > From: Darrick J. Wong <darrick.wong@oracle.com> > > > > > > > > The topology functions live in libfrog now, which means their > > > > declarations don't belong in libxcmd.h. Create new header file for > > > > them. > > > > > > > > Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com> > > > > --- > > > > include/libxcmd.h | 31 ------------------------------- > > > > include/topology.h | 39 +++++++++++++++++++++++++++++++++++++++ > > > > libfrog/topology.c | 1 + > > > > mkfs/xfs_mkfs.c | 2 +- > > > > repair/sb.c | 1 + > > > > 5 files changed, 42 insertions(+), 32 deletions(-) > > > > create mode 100644 include/topology.h > > > > > > I like the idea, but I'm wondering if we should have a similar > > > setup to libxfs header files here. > > > > > > i.e. the header file lives in libfrog/, and the install-headers make > > > command creates include/libxfrog and links them for the build. That > > > way the includes become namespaced like: > > > > > > #include "libxfrog/topology,h" > > > > > > and we don't pollute include with random header files from all > > > different parts of xfsprogs... > > > > What if I leave topology.h in libfrog/ and then create an > > include/libfrog.h that pulls in all the libfrog header files like > > libxfs.h does, and then put -I$(TOPDIR)/libfrog in GCFLAGS? > > libxfs is a basket case - it's done that way so we don't need all > the whacky games we play to shim the kernel functionality correctly > in every xfsprogs file that needs libxfs functionality. > > libxfrog is very different - we have progs that just need topology > or number conversion, but not both. I'd prefer for libxfrog we only > include the headers we require, that way avoiding defining things we > don't actually need... Ok. I will go clean that up too.... --D > Cheers, > > Dave. > -- > Dave Chinner > david@fromorbit.com
diff --git a/include/libxcmd.h b/include/libxcmd.h index 20e5d834..7b889b0a 100644 --- a/include/libxcmd.h +++ b/include/libxcmd.h @@ -10,35 +10,4 @@ #include "libxfs.h" #include <sys/time.h> -/* - * Device topology information. - */ -typedef struct fs_topology { - int dsunit; /* stripe unit - data subvolume */ - int dswidth; /* stripe width - data subvolume */ - int rtswidth; /* stripe width - rt subvolume */ - int lsectorsize; /* logical sector size &*/ - int psectorsize; /* physical sector size */ -} fs_topology_t; - -extern void -get_topology( - libxfs_init_t *xi, - struct fs_topology *ft, - int force_overwrite); - -extern void -calc_default_ag_geometry( - int blocklog, - uint64_t dblocks, - int multidisk, - uint64_t *agsize, - uint64_t *agcount); - -extern int -check_overwrite( - const char *device); - - - #endif /* __LIBXCMD_H__ */ diff --git a/include/topology.h b/include/topology.h new file mode 100644 index 00000000..61ede23a --- /dev/null +++ b/include/topology.h @@ -0,0 +1,39 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * Copyright (c) 2000-2005 Silicon Graphics, Inc. + * All Rights Reserved. + */ + +#ifndef __TOPOLOGY_H__ +#define __TOPOLOGY_H__ + +/* + * Device topology information. + */ +typedef struct fs_topology { + int dsunit; /* stripe unit - data subvolume */ + int dswidth; /* stripe width - data subvolume */ + int rtswidth; /* stripe width - rt subvolume */ + int lsectorsize; /* logical sector size &*/ + int psectorsize; /* physical sector size */ +} fs_topology_t; + +extern void +get_topology( + libxfs_init_t *xi, + struct fs_topology *ft, + int force_overwrite); + +extern void +calc_default_ag_geometry( + int blocklog, + uint64_t dblocks, + int multidisk, + uint64_t *agsize, + uint64_t *agcount); + +extern int +check_overwrite( + const char *device); + +#endif /* __TOPOLOGY_H__ */ diff --git a/libfrog/topology.c b/libfrog/topology.c index cac164f3..e2f87415 100644 --- a/libfrog/topology.c +++ b/libfrog/topology.c @@ -10,6 +10,7 @@ # include <blkid/blkid.h> #endif /* ENABLE_BLKID */ #include "xfs_multidisk.h" +#include "topology.h" #define TERABYTES(count, blog) ((uint64_t)(count) << (40 - (blog))) #define GIGABYTES(count, blog) ((uint64_t)(count) << (30 - (blog))) diff --git a/mkfs/xfs_mkfs.c b/mkfs/xfs_mkfs.c index 0bdf6ec3..d05a6898 100644 --- a/mkfs/xfs_mkfs.c +++ b/mkfs/xfs_mkfs.c @@ -9,7 +9,7 @@ #include "xfs_multidisk.h" #include "libxcmd.h" #include "fsgeom.h" - +#include "topology.h" #define TERABYTES(count, blog) ((uint64_t)(count) << (40 - (blog))) #define GIGABYTES(count, blog) ((uint64_t)(count) << (30 - (blog))) diff --git a/repair/sb.c b/repair/sb.c index 119bf219..547969f7 100644 --- a/repair/sb.c +++ b/repair/sb.c @@ -12,6 +12,7 @@ #include "protos.h" #include "err_protos.h" #include "xfs_multidisk.h" +#include "topology.h" #define BSIZE (1024 * 1024)