aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNathan Scott <nathans@sgi.com>2004-09-30 14:50:54 +0000
committerNathan Scott <nathans@sgi.com>2004-09-30 14:50:54 +0000
commit7b0a58cc3dcc0ce6d9d700c645331eb29bd9af08 (patch)
treecfa1b20248454be8652b3dd3b9a30ea6876eb818
parent178508bd326667cf25faf471aaef9d788b8da9f3 (diff)
downloaddmapi-dev-7b0a58cc3dcc0ce6d9d700c645331eb29bd9af08.tar.gz
Keep userspace packaging in sync, portability changes and dmapi headers.
Merge of xfs-cmds-melb:slinx:19611a by kenmcd.
-rw-r--r--VERSION2
-rw-r--r--aclocal.m470
-rw-r--r--debian/changelog6
-rw-r--r--doc/CHANGES4
-rw-r--r--include/builddefs.in4
-rw-r--r--include/buildmacros2
-rw-r--r--include/dmapi.h48
-rw-r--r--include/dmapi_kern.h128
-rw-r--r--m4/package_utilies.m442
-rw-r--r--m4/package_xfslibs.m426
10 files changed, 238 insertions, 94 deletions
diff --git a/VERSION b/VERSION
index 7c1997d..3956a96 100644
--- a/VERSION
+++ b/VERSION
@@ -3,5 +3,5 @@
#
PKG_MAJOR=2
PKG_MINOR=2
-PKG_REVISION=0
+PKG_REVISION=1
PKG_BUILD=1
diff --git a/aclocal.m4 b/aclocal.m4
index a11dc82..75a7161 100644
--- a/aclocal.m4
+++ b/aclocal.m4
@@ -76,59 +76,69 @@ AC_DEFUN([AC_PACKAGE_NEED_UTILITY],
# MSGFMT MSGMERGE RPM
#
AC_DEFUN([AC_PACKAGE_UTILITIES],
- [ if test -z "$CC"; then
- AC_PROG_CC
- fi
+ [ AC_PROG_CC
cc="$CC"
AC_SUBST(cc)
AC_PACKAGE_NEED_UTILITY($1, "$cc", cc, [C compiler])
if test -z "$MAKE"; then
- AC_PATH_PROG(MAKE, make, /usr/bin/make)
+ AC_PATH_PROG(MAKE, gmake,, /usr/bin:/usr/freeware/bin)
+ fi
+ if test -z "$MAKE"; then
+ AC_PATH_PROG(MAKE, make,, /usr/bin)
fi
make=$MAKE
AC_SUBST(make)
AC_PACKAGE_NEED_UTILITY($1, "$make", make, [GNU make])
if test -z "$LIBTOOL"; then
- AC_PATH_PROG(LIBTOOL, libtool,,/usr/bin:/usr/local/bin)
+ AC_PATH_PROG(LIBTOOL, glibtool,, /usr/bin)
+ fi
+ if test -z "$LIBTOOL"; then
+ AC_PATH_PROG(LIBTOOL, libtool,, /usr/bin:/usr/local/bin:/usr/freeware/bin)
fi
libtool=$LIBTOOL
AC_SUBST(libtool)
AC_PACKAGE_NEED_UTILITY($1, "$libtool", libtool, [GNU libtool])
if test -z "$TAR"; then
- AC_PATH_PROG(TAR, tar)
+ AC_PATH_PROG(TAR, tar,, /usr/freeware/bin:/bin:/usr/local/bin:/usr/bin)
fi
tar=$TAR
AC_SUBST(tar)
if test -z "$ZIP"; then
- AC_PATH_PROG(ZIP, gzip, /bin/gzip)
+ AC_PATH_PROG(ZIP, gzip,, /bin:/usr/local/bin:/usr/freeware/bin)
fi
+
zip=$ZIP
AC_SUBST(zip)
+
if test -z "$MAKEDEPEND"; then
AC_PATH_PROG(MAKEDEPEND, makedepend, /bin/true)
fi
makedepend=$MAKEDEPEND
AC_SUBST(makedepend)
+
if test -z "$AWK"; then
- AC_PATH_PROG(AWK, awk, /bin/awk)
+ AC_PATH_PROG(AWK, awk,, /bin:/usr/bin)
fi
awk=$AWK
AC_SUBST(awk)
+
if test -z "$SED"; then
- AC_PATH_PROG(SED, sed, /bin/sed)
+ AC_PATH_PROG(SED, sed,, /bin:/usr/bin)
fi
sed=$SED
AC_SUBST(sed)
+
if test -z "$ECHO"; then
- AC_PATH_PROG(ECHO, echo, /bin/echo)
+ AC_PATH_PROG(ECHO, echo,, /bin:/usr/bin)
fi
echo=$ECHO
AC_SUBST(echo)
+
if test -z "$SORT"; then
- AC_PATH_PROG(SORT, sort, /bin/sort)
+ AC_PATH_PROG(SORT, sort,, /bin:/usr/bin)
fi
sort=$SORT
AC_SUBST(sort)
@@ -138,13 +148,14 @@ AC_DEFUN([AC_PACKAGE_UTILITIES],
if test "$enable_gettext" = yes; then
if test -z "$MSGFMT"; then
- AC_CHECK_PROG(MSGFMT, msgfmt, /usr/bin/msgfmt)
+ AC_PATH_PROG(MSGFMT, msgfmt,, /usr/bin:/usr/freeware/bin)
fi
msgfmt=$MSGFMT
AC_SUBST(msgfmt)
AC_PACKAGE_NEED_UTILITY($1, "$msgfmt", msgfmt, gettext)
+
if test -z "$MSGMERGE"; then
- AC_CHECK_PROG(MSGMERGE, msgmerge, /usr/bin/msgmerge)
+ AC_PATH_PROG(MSGMERGE, msgmerge,, /usr/bin:/usr/freeware/bin)
fi
msgmerge=$MSGMERGE
AC_SUBST(msgmerge)
@@ -152,13 +163,14 @@ AC_DEFUN([AC_PACKAGE_UTILITIES],
fi
if test -z "$RPM"; then
- AC_PATH_PROG(RPM, rpm, /bin/rpm)
+ AC_PATH_PROG(RPM, rpm,, /bin:/usr/bin:/usr/freeware/bin)
fi
rpm=$RPM
AC_SUBST(rpm)
+
dnl .. and what version is rpm
rpm_version=0
- test -x $RPM && rpm_version=`$RPM --version \
+ test -x "$RPM" && rpm_version=`$RPM --version \
| awk '{print $NF}' | awk -F. '{V=1; print $V}'`
AC_SUBST(rpm_version)
dnl At some point in rpm 4.0, rpm can no longer build rpms, and
@@ -184,6 +196,17 @@ AC_DEFUN([AC_PACKAGE_NEED_XFS_LIBXFS_H],
fi
])
+AC_DEFUN([AC_PACKAGE_NEED_XFS_XQM_H],
+ [ AC_CHECK_HEADERS([xfs/xqm.h])
+ if test "$ac_cv_header_xfs_xqm_h" != "yes"; then
+ echo
+ echo 'FATAL ERROR: cannot find a valid <xfs/xqm.h> header file.'
+ echo 'Install or upgrade the XFS development package.'
+ echo 'Alternatively, run "make install-dev" from the xfsprogs source.'
+ exit 1
+ fi
+ ])
+
AC_DEFUN([AC_PACKAGE_NEED_XFS_HANDLE_H],
[ AC_CHECK_HEADERS([xfs/handle.h])
if test "$ac_cv_header_xfs_handle_h" != "yes"; then
@@ -210,12 +233,27 @@ AC_DEFUN([AC_PACKAGE_NEED_LIBXFSINIT_LIBXFS],
AC_SUBST(libxfs)
])
+AC_DEFUN([AC_PACKAGE_NEED_OPEN_BY_FSHANDLE],
+ [ AC_CHECK_LIB(handle, open_by_fshandle,, [
+ echo
+ echo 'FATAL ERROR: could not find a current XFS handle library.'
+ echo 'Install or upgrade the XFS library package.'
+ echo 'Alternatively, run "make install-dev" from the xfsprogs source.'
+ exit 1
+ ])
+ libhdl="-lhandle"
+ test -f `pwd`/../xfsprogs/libhandle/libhandle.la && \
+ libhdl="`pwd`/../xfsprogs/libhandle/libhandle.la"
+ test -f /usr/lib/libhandle.la && libhdl="/usr/lib/libhandle.la"
+ AC_SUBST(libhdl)
+ ])
+
AC_DEFUN([AC_PACKAGE_NEED_ATTRLIST_LIBHANDLE],
[ AC_CHECK_LIB(handle, attr_list_by_handle,, [
echo
echo 'FATAL ERROR: could not find a current XFS handle library.'
echo 'Install or upgrade the XFS library package.'
- echo 'Alternatively, run "make install-dev" from the xfsprogs source.'
+ echo 'Alternatively, run "make install-lib" from the xfsprogs source.'
exit 1
])
libhdl="-lhandle"
diff --git a/debian/changelog b/debian/changelog
index 1c7e0ac..2336c07 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+dmapi (2.2.1-1) unstable; urgency=low
+
+ * New upstream release
+
+ -- Nathan Scott <nathans@debian.org> Wed, 29 Sep 2004 11:28:20 +1000
+
dmapi (2.2.0-1) unstable; urgency=low
* New upstream release (works for both 2.6 and 2.4 now)
diff --git a/doc/CHANGES b/doc/CHANGES
index 8e6664e..5491ac4 100644
--- a/doc/CHANGES
+++ b/doc/CHANGES
@@ -1,3 +1,7 @@
+dmapi-2.2.1 (29 September 2004)
+ - Update m4 macros, incorporating some portability changes.
+ - Sync up with changes to the kernel DMAPI headers.
+
dmapi-2.2.0 (21 April 2004)
- The linux 2.6 kernel puts the dmapi device at /dev/dmapi.
diff --git a/include/builddefs.in b/include/builddefs.in
index 314f177..3f075a0 100644
--- a/include/builddefs.in
+++ b/include/builddefs.in
@@ -81,9 +81,9 @@ ifeq ($(PKG_PLATFORM),linux)
PCFLAGS = -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64
endif
-GCFLAGS = $(OPTIMIZER) $(DEBUG) -funsigned-char -Wall -I$(TOPDIR)/include \
+GCFLAGS = $(OPTIMIZER) $(DEBUG) -funsigned-char -fno-strict-aliasing -Wall \
-DVERSION=\"$(PKG_VERSION)\" -DLOCALEDIR=\"$(PKG_LOCALE_DIR)\" \
- -DPACKAGE=\"$(PKG_NAME)\"
+ -DPACKAGE=\"$(PKG_NAME)\" -I$(TOPDIR)/include
# Global, Platform, Local CFLAGS
CFLAGS += $(GCFLAGS) $(PCFLAGS) $(LCFLAGS)
diff --git a/include/buildmacros b/include/buildmacros
index bce094c..41a5e2e 100644
--- a/include/buildmacros
+++ b/include/buildmacros
@@ -72,7 +72,7 @@ LTVERSION = $(LT_CURRENT):$(LT_REVISION):$(LT_AGE)
LTLINK = $(LIBTOOL) --mode=link $(CC)
LTEXEC = $(LIBTOOL) --mode=execute
LTINSTALL = $(LIBTOOL) --mode=install $(INSTALL)
-LTCOMPILE = $(LIBTOOL) --mode=compile $(CCF) -D_REENTRANT -fno-strict-aliasing
+LTCOMPILE = $(LIBTOOL) --mode=compile $(CCF)
ifeq ($(ENABLE_SHARED),yes)
LTLDFLAGS += -rpath $(PKG_LIB_DIR)
diff --git a/include/dmapi.h b/include/dmapi.h
index 52d3d70..cbb0a04 100644
--- a/include/dmapi.h
+++ b/include/dmapi.h
@@ -456,13 +456,13 @@ typedef struct dm_stat dm_stat_t;
/* Flags for the non-standard dt_xfs_xflags field. */
-#define DM_XFLAG_REALTIME 0x1
-#define DM_XFLAG_PREALLOC 0x2
-#define DM_XFLAG_IMMUTABLE 0x3
-#define DM_XFLAG_APPEND 0x4
-#define DM_XFLAG_SYNC 0x5
-#define DM_XFLAG_NOATIME 0x6
-#define DM_XFLAG_NODUMP 0x7
+#define DM_XFLAG_REALTIME 0x00000001
+#define DM_XFLAG_PREALLOC 0x00000002
+#define DM_XFLAG_IMMUTABLE 0x00000008
+#define DM_XFLAG_APPEND 0x00000010
+#define DM_XFLAG_SYNC 0x00000020
+#define DM_XFLAG_NOATIME 0x00000040
+#define DM_XFLAG_NODUMP 0x00000080
#define DM_XFLAG_HASATTR 0x80000000
@@ -480,6 +480,40 @@ struct dm_xstat { /* not supported */
typedef struct dm_xstat dm_xstat_t;
+#define MAXDMFSFIDSZ 46
+
+typedef struct dm_fsfid {
+ __u16 fid_len; /* length of data in bytes */
+ unsigned char fid_data[MAXDMFSFIDSZ]; /* data (fid_len worth) */
+} dm_fsfid_t;
+
+struct dm_fid {
+ __u16 dm_fid_len; /* length of remainder */
+ __u16 dm_fid_pad;
+ __u32 dm_fid_gen; /* generation number */
+ __u64 dm_fid_ino; /* 64 bits inode number */
+};
+typedef struct dm_fid dm_fid_t;
+
+
+struct dm_handle {
+ union {
+ __s64 align; /* force alignment of ha_fid */
+ dm_fsid_t _ha_fsid; /* unique file system identifier */
+ } ha_u;
+ dm_fid_t ha_fid; /* file system specific file ID */
+};
+typedef struct dm_handle dm_handle_t;
+#define ha_fsid ha_u._ha_fsid
+
+#define DM_HSIZE(handle) (((char *) &(handle).ha_fid.dm_fid_pad \
+ - (char *) &(handle)) \
+ + (handle).ha_fid.dm_fid_len)
+
+#define DM_HANDLE_CMP(h1, h2) memcmp(h1, h2, sizeof(dm_handle_t))
+
+#define DM_FSHSIZE sizeof(dm_fsid_t)
+
/* The following list provides the prototypes for all functions defined in
the DMAPI interface.
diff --git a/include/dmapi_kern.h b/include/dmapi_kern.h
index 8813e83..0db824a 100644
--- a/include/dmapi_kern.h
+++ b/include/dmapi_kern.h
@@ -33,6 +33,7 @@
#ifndef __DMAPI_KERN_H__
#define __DMAPI_KERN_H__
+#include <linux/fs.h>
union sys_dmapi_uarg {
void *p;
@@ -51,7 +52,7 @@ typedef struct sys_dmapi_args sys_dmapi_args_t;
#ifdef __KERNEL__
-struct xfs_handle_t;
+struct dm_handle_t;
/* The first group of definitions and prototypes define the filesystem's
interface into the DMAPI code.
@@ -71,35 +72,50 @@ struct xfs_handle_t;
#define DM_CLVL_XOPEN 1 /* X/Open compliant DMAPI */
+/*
+ * Filesystem operations accessed by the DMAPI core.
+ */
+struct filesystem_dmapi_operations {
+ int (*get_fsys_vector)(struct super_block *sb, void *addr);
+ int (*fh_to_inode)(struct super_block *sb, struct inode **ip,
+ struct dm_fsfid *fid);
+ struct file_operations * (*get_invis_ops)(struct inode *ip);
+ int (*inode_to_fh)(struct inode *ip, struct dm_fsfid *fid,
+ dm_fsid_t *fsid );
+ void (*get_fsid)(struct super_block *sb, dm_fsid_t *fsid);
+};
+
+
/* Prototypes used outside of the DMI module/directory. */
int dm_send_data_event(
dm_eventtype_t event,
- struct vnode *vp,
+ struct inode *ip,
dm_right_t vp_right,
- xfs_off_t off,
+ dm_off_t off,
size_t len,
int flags);
int dm_send_destroy_event(
- struct vnode *vp,
+ struct inode *ip,
dm_right_t vp_right);
int dm_send_mount_event(
- struct vfs *vfsp,
+ struct super_block *sb,
dm_right_t vfsp_right,
- struct vnode *vp,
+ struct inode *ip,
dm_right_t vp_right,
- struct vnode *rootvp,
+ struct inode *rootip,
dm_right_t rootvp_right,
char *name1,
char *name2);
int dm_send_namesp_event(
dm_eventtype_t event,
- struct vnode *vp1,
+ struct super_block *sb,
+ struct inode *ip1,
dm_right_t vp1_right,
- struct vnode *vp2,
+ struct inode *ip2,
dm_right_t vp2_right,
char *name1,
char *name2,
@@ -108,18 +124,26 @@ int dm_send_namesp_event(
int flags);
void dm_send_unmount_event(
- struct vfs *vfsp,
- struct vnode *vp,
- dm_right_t vfsp_right,
+ struct super_block *sbp,
+ struct inode *ip,
+ dm_right_t sbp_right,
mode_t mode,
int retcode,
int flags);
int dm_code_level(void);
-int dm_vp_to_handle (
- struct vnode *vp,
- xfs_handle_t *handlep);
+int dm_ip_to_handle (
+ struct inode *ip,
+ dm_handle_t *handlep);
+
+void dmapi_register(
+ struct file_system_type *fstype,
+ struct filesystem_dmapi_operations *dmapiops);
+
+void dmapi_unregister(
+ struct file_system_type *fstype);
+
/* The following prototypes and definitions are used by DMAPI as its
interface into the filesystem code. Communication between DMAPI and the
@@ -191,24 +215,24 @@ typedef enum {
*/
typedef int (*dm_fsys_clear_inherit_t)(
- vnode_t *vp,
+ struct inode *ip,
dm_right_t right,
dm_attrname_t *attrnamep);
typedef int (*dm_fsys_create_by_handle_t)(
- vnode_t *vp,
+ struct inode *ip,
dm_right_t right,
void *hanp,
size_t hlen,
char *cname);
typedef int (*dm_fsys_downgrade_right_t)(
- vnode_t *vp,
+ struct inode *ip,
dm_right_t right,
u_int type); /* DM_FSYS_OBJ or zero */
typedef int (*dm_fsys_get_allocinfo_rvp_t)(
- vnode_t *vp,
+ struct inode *ip,
dm_right_t right,
dm_off_t *offp,
u_int nelem,
@@ -217,7 +241,7 @@ typedef int (*dm_fsys_get_allocinfo_rvp_t)(
int *rvalp);
typedef int (*dm_fsys_get_bulkall_rvp_t)(
- vnode_t *vp, /* root vnode */
+ struct inode *ip, /* root inode */
dm_right_t right,
u_int mask,
dm_attrname_t *attrnamep,
@@ -228,7 +252,7 @@ typedef int (*dm_fsys_get_bulkall_rvp_t)(
int *rvalp);
typedef int (*dm_fsys_get_bulkattr_rvp_t)(
- vnode_t *vp, /* root vnode */
+ struct inode *ip, /* root inode */
dm_right_t right,
u_int mask,
dm_attrloc_t *locp,
@@ -238,32 +262,32 @@ typedef int (*dm_fsys_get_bulkattr_rvp_t)(
int *rvalp);
typedef int (*dm_fsys_get_config_t)(
- vnode_t *vp,
+ struct inode *ip,
dm_right_t right,
dm_config_t flagname,
dm_size_t *retvalp);
typedef int (*dm_fsys_get_config_events_t)(
- vnode_t *vp,
+ struct inode *ip,
dm_right_t right,
u_int nelem,
dm_eventset_t *eventsetp,
u_int *nelemp);
typedef int (*dm_fsys_get_destroy_dmattr_t)(
- vnode_t *vp,
+ struct inode *ip,
dm_right_t right,
dm_attrname_t *attrnamep,
char **valuepp,
int *vlenp);
typedef int (*dm_fsys_get_dioinfo_t)(
- vnode_t *vp,
+ struct inode *ip,
dm_right_t right,
dm_dioinfo_t *diop);
typedef int (*dm_fsys_get_dirattrs_rvp_t)(
- vnode_t *vp,
+ struct inode *ip,
dm_right_t right,
u_int mask,
dm_attrloc_t *locp,
@@ -273,7 +297,7 @@ typedef int (*dm_fsys_get_dirattrs_rvp_t)(
int *rvalp);
typedef int (*dm_fsys_get_dmattr_t)(
- vnode_t *vp,
+ struct inode *ip,
dm_right_t right,
dm_attrname_t *attrnamep,
size_t buflen,
@@ -281,54 +305,54 @@ typedef int (*dm_fsys_get_dmattr_t)(
size_t *rlenp);
typedef int (*dm_fsys_get_eventlist_t)(
- vnode_t *vp,
+ struct inode *ip,
dm_right_t right,
u_int type,
u_int nelem,
dm_eventset_t *eventsetp, /* in kernel space! */
- u_int *nelemp); /* in kernel space! */
+ u_int *nelemp); /* in kernel space! */
typedef int (*dm_fsys_get_fileattr_t)(
- vnode_t *vp,
+ struct inode *ip,
dm_right_t right,
u_int mask,
dm_stat_t *statp);
typedef int (*dm_fsys_get_region_t)(
- vnode_t *vp,
+ struct inode *ip,
dm_right_t right,
u_int nelem,
dm_region_t *regbufp,
u_int *nelemp);
typedef int (*dm_fsys_getall_dmattr_t)(
- vnode_t *vp,
+ struct inode *ip,
dm_right_t right,
size_t buflen,
void *bufp,
size_t *rlenp);
typedef int (*dm_fsys_getall_inherit_t)(
- vnode_t *vp,
+ struct inode *ip,
dm_right_t right,
u_int nelem,
dm_inherit_t *inheritbufp,
u_int *nelemp);
typedef int (*dm_fsys_init_attrloc_t)(
- vnode_t *vp, /* sometimes root vnode */
+ struct inode *ip, /* sometimes root inode */
dm_right_t right,
dm_attrloc_t *locp);
typedef int (*dm_fsys_mkdir_by_handle_t)(
- vnode_t *vp,
+ struct inode *ip,
dm_right_t right,
void *hanp,
size_t hlen,
char *cname);
typedef int (*dm_fsys_probe_hole_t)(
- vnode_t *vp,
+ struct inode *ip,
dm_right_t right,
dm_off_t off,
dm_size_t len,
@@ -336,13 +360,13 @@ typedef int (*dm_fsys_probe_hole_t)(
dm_size_t *rlenp);
typedef int (*dm_fsys_punch_hole_t)(
- vnode_t *vp,
+ struct inode *ip,
dm_right_t right,
dm_off_t off,
dm_size_t len);
typedef int (*dm_fsys_read_invis_rvp_t)(
- vnode_t *vp,
+ struct inode *ip,
dm_right_t right,
dm_off_t off,
dm_size_t len,
@@ -350,25 +374,25 @@ typedef int (*dm_fsys_read_invis_rvp_t)(
int *rvp);
typedef int (*dm_fsys_release_right_t)(
- vnode_t *vp,
+ struct inode *ip,
dm_right_t right,
u_int type);
typedef int (*dm_fsys_remove_dmattr_t)(
- vnode_t *vp,
+ struct inode *ip,
dm_right_t right,
int setdtime,
dm_attrname_t *attrnamep);
typedef int (*dm_fsys_request_right_t)(
- vnode_t *vp,
+ struct inode *ip,
dm_right_t right,
u_int type, /* DM_FSYS_OBJ or zero */
u_int flags,
dm_right_t newright);
typedef int (*dm_fsys_set_dmattr_t)(
- vnode_t *vp,
+ struct inode *ip,
dm_right_t right,
dm_attrname_t *attrnamep,
int setdtime,
@@ -376,33 +400,33 @@ typedef int (*dm_fsys_set_dmattr_t)(
void *bufp);
typedef int (*dm_fsys_set_eventlist_t)(
- vnode_t *vp,
+ struct inode *ip,
dm_right_t right,
u_int type,
dm_eventset_t *eventsetp, /* in kernel space! */
u_int maxevent);
typedef int (*dm_fsys_set_fileattr_t)(
- vnode_t *vp,
+ struct inode *ip,
dm_right_t right,
u_int mask,
dm_fileattr_t *attrp);
typedef int (*dm_fsys_set_inherit_t)(
- vnode_t *vp,
+ struct inode *ip,
dm_right_t right,
dm_attrname_t *attrnamep,
mode_t mode);
typedef int (*dm_fsys_set_region_t)(
- vnode_t *vp,
+ struct inode *ip,
dm_right_t right,
u_int nelem,
dm_region_t *regbufp,
dm_boolean_t *exactflagp);
typedef int (*dm_fsys_symlink_by_handle_t)(
- vnode_t *vp,
+ struct inode *ip,
dm_right_t right,
void *hanp,
size_t hlen,
@@ -410,16 +434,16 @@ typedef int (*dm_fsys_symlink_by_handle_t)(
char *path);
typedef int (*dm_fsys_sync_by_handle_t)(
- vnode_t *vp,
+ struct inode *ip,
dm_right_t right);
typedef int (*dm_fsys_upgrade_right_t)(
- vnode_t *vp,
+ struct inode *ip,
dm_right_t right,
- u_int type); /* DM_FSYS_OBJ or zero */
+ u_int type); /* DM_FSYS_OBJ or zero */
typedef int (*dm_fsys_write_invis_rvp_t)(
- vnode_t *vp,
+ struct inode *ip,
dm_right_t right,
int flags,
dm_off_t off,
@@ -428,7 +452,7 @@ typedef int (*dm_fsys_write_invis_rvp_t)(
int *rvp);
typedef void (*dm_fsys_obj_ref_hold_t)(
- vnode_t *vp);
+ struct inode *ip);
/* Structure definitions used by the VFS_DMAPI_FSYS_VECTOR call. */
diff --git a/m4/package_utilies.m4 b/m4/package_utilies.m4
index e0116ce..c29492d 100644
--- a/m4/package_utilies.m4
+++ b/m4/package_utilies.m4
@@ -17,59 +17,69 @@ AC_DEFUN([AC_PACKAGE_NEED_UTILITY],
# MSGFMT MSGMERGE RPM
#
AC_DEFUN([AC_PACKAGE_UTILITIES],
- [ if test -z "$CC"; then
- AC_PROG_CC
- fi
+ [ AC_PROG_CC
cc="$CC"
AC_SUBST(cc)
AC_PACKAGE_NEED_UTILITY($1, "$cc", cc, [C compiler])
if test -z "$MAKE"; then
- AC_PATH_PROG(MAKE, make, /usr/bin/make)
+ AC_PATH_PROG(MAKE, gmake,, /usr/bin:/usr/freeware/bin)
+ fi
+ if test -z "$MAKE"; then
+ AC_PATH_PROG(MAKE, make,, /usr/bin)
fi
make=$MAKE
AC_SUBST(make)
AC_PACKAGE_NEED_UTILITY($1, "$make", make, [GNU make])
if test -z "$LIBTOOL"; then
- AC_PATH_PROG(LIBTOOL, libtool,,/usr/bin:/usr/local/bin)
+ AC_PATH_PROG(LIBTOOL, glibtool,, /usr/bin)
+ fi
+ if test -z "$LIBTOOL"; then
+ AC_PATH_PROG(LIBTOOL, libtool,, /usr/bin:/usr/local/bin:/usr/freeware/bin)
fi
libtool=$LIBTOOL
AC_SUBST(libtool)
AC_PACKAGE_NEED_UTILITY($1, "$libtool", libtool, [GNU libtool])
if test -z "$TAR"; then
- AC_PATH_PROG(TAR, tar)
+ AC_PATH_PROG(TAR, tar,, /usr/freeware/bin:/bin:/usr/local/bin:/usr/bin)
fi
tar=$TAR
AC_SUBST(tar)
if test -z "$ZIP"; then
- AC_PATH_PROG(ZIP, gzip, /bin/gzip)
+ AC_PATH_PROG(ZIP, gzip,, /bin:/usr/local/bin:/usr/freeware/bin)
fi
+
zip=$ZIP
AC_SUBST(zip)
+
if test -z "$MAKEDEPEND"; then
AC_PATH_PROG(MAKEDEPEND, makedepend, /bin/true)
fi
makedepend=$MAKEDEPEND
AC_SUBST(makedepend)
+
if test -z "$AWK"; then
- AC_PATH_PROG(AWK, awk, /bin/awk)
+ AC_PATH_PROG(AWK, awk,, /bin:/usr/bin)
fi
awk=$AWK
AC_SUBST(awk)
+
if test -z "$SED"; then
- AC_PATH_PROG(SED, sed, /bin/sed)
+ AC_PATH_PROG(SED, sed,, /bin:/usr/bin)
fi
sed=$SED
AC_SUBST(sed)
+
if test -z "$ECHO"; then
- AC_PATH_PROG(ECHO, echo, /bin/echo)
+ AC_PATH_PROG(ECHO, echo,, /bin:/usr/bin)
fi
echo=$ECHO
AC_SUBST(echo)
+
if test -z "$SORT"; then
- AC_PATH_PROG(SORT, sort, /bin/sort)
+ AC_PATH_PROG(SORT, sort,, /bin:/usr/bin)
fi
sort=$SORT
AC_SUBST(sort)
@@ -79,13 +89,14 @@ AC_DEFUN([AC_PACKAGE_UTILITIES],
if test "$enable_gettext" = yes; then
if test -z "$MSGFMT"; then
- AC_CHECK_PROG(MSGFMT, msgfmt, /usr/bin/msgfmt)
+ AC_PATH_PROG(MSGFMT, msgfmt,, /usr/bin:/usr/freeware/bin)
fi
msgfmt=$MSGFMT
AC_SUBST(msgfmt)
AC_PACKAGE_NEED_UTILITY($1, "$msgfmt", msgfmt, gettext)
+
if test -z "$MSGMERGE"; then
- AC_CHECK_PROG(MSGMERGE, msgmerge, /usr/bin/msgmerge)
+ AC_PATH_PROG(MSGMERGE, msgmerge,, /usr/bin:/usr/freeware/bin)
fi
msgmerge=$MSGMERGE
AC_SUBST(msgmerge)
@@ -93,13 +104,14 @@ AC_DEFUN([AC_PACKAGE_UTILITIES],
fi
if test -z "$RPM"; then
- AC_PATH_PROG(RPM, rpm, /bin/rpm)
+ AC_PATH_PROG(RPM, rpm,, /bin:/usr/bin:/usr/freeware/bin)
fi
rpm=$RPM
AC_SUBST(rpm)
+
dnl .. and what version is rpm
rpm_version=0
- test -x $RPM && rpm_version=`$RPM --version \
+ test -x "$RPM" && rpm_version=`$RPM --version \
| awk '{print $NF}' | awk -F. '{V=1; print $V}'`
AC_SUBST(rpm_version)
dnl At some point in rpm 4.0, rpm can no longer build rpms, and
diff --git a/m4/package_xfslibs.m4 b/m4/package_xfslibs.m4
index 27dc930..be9a74d 100644
--- a/m4/package_xfslibs.m4
+++ b/m4/package_xfslibs.m4
@@ -9,6 +9,17 @@ AC_DEFUN([AC_PACKAGE_NEED_XFS_LIBXFS_H],
fi
])
+AC_DEFUN([AC_PACKAGE_NEED_XFS_XQM_H],
+ [ AC_CHECK_HEADERS([xfs/xqm.h])
+ if test "$ac_cv_header_xfs_xqm_h" != "yes"; then
+ echo
+ echo 'FATAL ERROR: cannot find a valid <xfs/xqm.h> header file.'
+ echo 'Install or upgrade the XFS development package.'
+ echo 'Alternatively, run "make install-dev" from the xfsprogs source.'
+ exit 1
+ fi
+ ])
+
AC_DEFUN([AC_PACKAGE_NEED_XFS_HANDLE_H],
[ AC_CHECK_HEADERS([xfs/handle.h])
if test "$ac_cv_header_xfs_handle_h" != "yes"; then
@@ -50,6 +61,21 @@ AC_DEFUN([AC_PACKAGE_NEED_OPEN_BY_FSHANDLE],
AC_SUBST(libhdl)
])
+AC_DEFUN([AC_PACKAGE_NEED_ATTRLIST_LIBHANDLE],
+ [ AC_CHECK_LIB(handle, attr_list_by_handle,, [
+ echo
+ echo 'FATAL ERROR: could not find a current XFS handle library.'
+ echo 'Install or upgrade the XFS library package.'
+ echo 'Alternatively, run "make install-lib" from the xfsprogs source.'
+ exit 1
+ ])
+ libhdl="-lhandle"
+ test -f `pwd`/../xfsprogs/libhandle/libhandle.la && \
+ libhdl="`pwd`/../xfsprogs/libhandle/libhandle.la"
+ test -f /usr/lib/libhandle.la && libhdl="/usr/lib/libhandle.la"
+ AC_SUBST(libhdl)
+ ])
+
AC_DEFUN([AC_PACKAGE_NEED_XFSCTL_MACRO],
[ AC_MSG_CHECKING([xfsctl from xfs/libxfs.h])
AC_TRY_LINK([#include <xfs/libxfs.h>], [ int x = xfsctl(0, 0, 0, 0); ],