aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--include/sys/byteorder.h15
-rw-r--r--include/sys/fm/protocol.h4
-rw-r--r--include/sys/fm/util.h4
-rw-r--r--include/sys/sysevent.h4
-rw-r--r--include/sys/sysevent/eventdefs.h231
-rw-r--r--include/sys/sysmacros.h3
-rw-r--r--include/sys/vnode.h26
-rw-r--r--include/sys/zone.h9
-rw-r--r--modules/spl/spl-vnode.c9
9 files changed, 62 insertions, 243 deletions
diff --git a/include/sys/byteorder.h b/include/sys/byteorder.h
index 3b626163d..7e7d04809 100644
--- a/include/sys/byteorder.h
+++ b/include/sys/byteorder.h
@@ -1,4 +1,13 @@
-#ifndef _SPL_ZMOD_H
-#define _SPL_ZMOD_H
+#ifndef _SPL_BYTEORDER_H
+#define _SPL_BYTEORDER_H
-#endif /* SPL_ZMOD_H */
+#include <asm/byteorder.h>
+
+#define LE_16(x) cpu_to_le16(x)
+#define LE_32(x) cpu_to_le32(x)
+#define LE_64(x) cpu_to_le64(x)
+#define BE_16(x) cpu_to_be16(x)
+#define BE_32(x) cpu_to_be32(x)
+#define BE_64(x) cpu_to_be64(x)
+
+#endif /* SPL_BYTEORDER_H */
diff --git a/include/sys/fm/protocol.h b/include/sys/fm/protocol.h
new file mode 100644
index 000000000..ffd8108ba
--- /dev/null
+++ b/include/sys/fm/protocol.h
@@ -0,0 +1,4 @@
+#ifndef _SPL_FM_PROTOCOL_H
+#define _SPL_FM_PROTOCOL_H
+
+#endif /* _SPL_FM_PROTOCOL_H */
diff --git a/include/sys/fm/util.h b/include/sys/fm/util.h
new file mode 100644
index 000000000..6c3412f5b
--- /dev/null
+++ b/include/sys/fm/util.h
@@ -0,0 +1,4 @@
+#ifndef _SPL_FM_UTIL_H
+#define _SPL_FM_UTIL_H
+
+#endif /* _SPL_FM_UTIL_H */
diff --git a/include/sys/sysevent.h b/include/sys/sysevent.h
new file mode 100644
index 000000000..45c960846
--- /dev/null
+++ b/include/sys/sysevent.h
@@ -0,0 +1,4 @@
+#ifndef _SPL_SYSEVENT_H
+#define _SPL_SYSEVENT_H
+
+#endif /* _SPL_SYSEVENT_H */
diff --git a/include/sys/sysevent/eventdefs.h b/include/sys/sysevent/eventdefs.h
index 1cc58d57c..d7b28f62b 100644
--- a/include/sys/sysevent/eventdefs.h
+++ b/include/sys/sysevent/eventdefs.h
@@ -1,235 +1,4 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License (the "License").
- * You may not use this file except in compliance with the License.
- *
- * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- * or http://www.opensolaris.org/os/licensing.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- * If applicable, add the following below this CDDL HEADER, with the
- * fields enclosed by brackets "[]" replaced with your own identifying
- * information: Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- */
-/*
- * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
- * Use is subject to license terms.
- */
-
#ifndef _SPL_SYSEVENT_EVENTDEFS_H
#define _SPL_SYSEVENT_EVENTDEFS_H
-
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*
- * eventdefs.h contains public definitions for sysevent types (classes
- * and subclasses). All additions/removal/changes are subject
- * to PSARC approval.
- */
-
-/* Sysevent Class definitions */
-#define EC_NONE "EC_none"
-#define EC_PRIV "EC_priv"
-#define EC_PLATFORM "EC_platform" /* events private to platform */
-#define EC_DR "EC_dr" /* Dynamic reconfiguration event class */
-#define EC_ENV "EC_env" /* Environmental monitor event class */
-#define EC_DOMAIN "EC_domain" /* Domain event class */
-#define EC_AP_DRIVER "EC_ap_driver" /* Alternate Pathing event class */
-#define EC_IPMP "EC_ipmp" /* IP Multipathing event class */
-#define EC_DEV_ADD "EC_dev_add" /* device add event class */
-#define EC_DEV_REMOVE "EC_dev_remove" /* device remove event class */
-#define EC_DEV_BRANCH "EC_dev_branch" /* device tree branch event class */
-#define EC_FM "EC_fm" /* FMA error report event */
-#define EC_ZFS "EC_zfs" /* ZFS event */
-
-/*
- * The following event class is reserved for exclusive use
- * by Sun Cluster software.
- */
-#define EC_CLUSTER "EC_Cluster"
-
-/*
- * The following classes are exclusively reserved for use by the
- * Solaris Volume Manager (SVM)
- */
-#define EC_SVM_CONFIG "EC_SVM_Config"
-#define EC_SVM_STATE "EC_SVM_State"
-
-/*
- * EC_SVM_CONFIG subclass definitions - supporting attributes (name/value pairs)
- * are found in sys/sysevent/svm.h
- */
-#define ESC_SVM_CREATE "ESC_SVM_Create"
-#define ESC_SVM_DELETE "ESC_SVM_Delete"
-#define ESC_SVM_ADD "ESC_SVM_Add"
-#define ESC_SVM_REMOVE "ESC_SVM_Remove"
-#define ESC_SVM_REPLACE "ESC_SVM_Replace"
-#define ESC_SVM_GROW "ESC_SVM_Grow"
-#define ESC_SVM_RENAME_SRC "ESC_SVM_Rename_Src"
-#define ESC_SVM_RENAME_DST "ESC_SVM_Rename_Dst"
-#define ESC_SVM_MEDIATOR_ADD "ESC_SVM_Mediator_Add"
-#define ESC_SVM_MEDIATOR_DELETE "ESC_SVM_Mediator_Delete"
-#define ESC_SVM_HOST_ADD "ESC_SVM_Host_Add"
-#define ESC_SVM_HOST_DELETE "ESC_SVM_Host_Delete"
-#define ESC_SVM_DRIVE_ADD "ESC_SVM_Drive_Add"
-#define ESC_SVM_DRIVE_DELETE "ESC_SVM_Drive_Delete"
-#define ESC_SVM_DETACH "ESC_SVM_Detach"
-#define ESC_SVM_DETACHING "ESC_SVM_Detaching"
-#define ESC_SVM_ATTACH "ESC_SVM_Attach"
-#define ESC_SVM_ATTACHING "ESC_SVM_Attaching"
-
-/*
- * EC_SVM_STATE subclass definitions - supporting attributes (name/value pairs)
- * are found in sys/sysevent/svm.h
- */
-#define ESC_SVM_INIT_START "ESC_SVM_Init_Start"
-#define ESC_SVM_INIT_FAILED "ESC_SVM_Init_Failed"
-#define ESC_SVM_INIT_FATAL "ESC_SVM_Init_Fatal"
-#define ESC_SVM_INIT_SUCCESS "ESC_SVM_Init_Success"
-#define ESC_SVM_IOERR "ESC_SVM_Ioerr"
-#define ESC_SVM_ERRED "ESC_SVM_Erred"
-#define ESC_SVM_LASTERRED "ESC_SVM_Lasterred"
-#define ESC_SVM_OK "ESC_SVM_Ok"
-#define ESC_SVM_ENABLE "ESC_SVM_Enable"
-#define ESC_SVM_RESYNC_START "ESC_SVM_Resync_Start"
-#define ESC_SVM_RESYNC_FAILED "ESC_SVM_Resync_Failed"
-#define ESC_SVM_RESYNC_SUCCESS "ESC_SVM_Resync_Success"
-#define ESC_SVM_RESYNC_DONE "ESC_SVM_Resync_Done"
-#define ESC_SVM_HOTSPARED "ESC_SVM_Hotspared"
-#define ESC_SVM_HS_FREED "ESC_SVM_HS_Freed"
-#define ESC_SVM_HS_CHANGED "ESC_SVM_HS_Changed"
-#define ESC_SVM_TAKEOVER "ESC_SVM_Takeover"
-#define ESC_SVM_RELEASE "ESC_SVM_Release"
-#define ESC_SVM_OPEN_FAIL "ESC_SVM_Open_Fail"
-#define ESC_SVM_OFFLINE "ESC_SVM_Offline"
-#define ESC_SVM_ONLINE "ESC_SVM_Online"
-#define ESC_SVM_CHANGE "ESC_SVM_Change"
-#define ESC_SVM_EXCHANGE "ESC_SVM_Exchange"
-#define ESC_SVM_REGEN_START "ESC_SVM_Regen_Start"
-#define ESC_SVM_REGEN_DONE "ESC_SVM_Regen_Done"
-#define ESC_SVM_REGEN_FAILED "ESC_SVM_Regen_Failed"
-
-/*
- * EC_DR subclass definitions - supporting attributes (name/value pairs)
- * are found in sys/sysevent/dr.h
- */
-
-/* Attachment point state change */
-#define ESC_DR_AP_STATE_CHANGE "ESC_dr_ap_state_change"
-#define ESC_DR_REQ "ESC_dr_req" /* Request DR */
-#define ESC_DR_TARGET_STATE_CHANGE "ESC_dr_target_state_change"
-
-/*
- * EC_ENV subclass definitions - supporting attributes (name/value pairs)
- * are found in sys/sysevent/env.h
- */
-#define ESC_ENV_TEMP "ESC_env_temp" /* Temperature change event subclass */
-#define ESC_ENV_FAN "ESC_env_fan" /* Fan status change event subclass */
-#define ESC_ENV_POWER "ESC_env_power" /* Power supply change event subclass */
-#define ESC_ENV_LED "ESC_env_led" /* LED change event subclass */
-
-/*
- * EC_DOMAIN subclass definitions - supporting attributes (name/value pairs)
- * are found in sys/sysevent/domain.h
- */
-
-/* Domain state change */
-#define ESC_DOMAIN_STATE_CHANGE "ESC_domain_state_change"
-/* Domain loghost name change */
-#define ESC_DOMAIN_LOGHOST_CHANGE "ESC_domain_loghost_change"
-
-/*
- * EC_AP_DRIVER subclass definitions - supporting attributes (name/value pairs)
- * are found in sys/sysevent/ap_driver.h
- */
-
-/* Alternate Pathing path switch */
-#define ESC_AP_DRIVER_PATHSWITCH "ESC_ap_driver_pathswitch"
-/* Alternate Pathing database commit */
-#define ESC_AP_DRIVER_COMMIT "ESC_ap_driver_commit"
-/* Alternate Pathing physical path status change */
-#define ESC_AP_DRIVER_PHYS_PATH_STATUS_CHANGE \
- "ESC_ap_driver_phys_path_status_change"
-
-/*
- * EC_IPMP subclass definitions - supporting attributes (name/value pairs)
- * are found in sys/sysevent/ipmp.h
- */
-
-/* IPMP group has changed state */
-#define ESC_IPMP_GROUP_STATE "ESC_ipmp_group_state"
-
-/* IPMP group has been created or removed */
-#define ESC_IPMP_GROUP_CHANGE "ESC_ipmp_group_change"
-
-/* IPMP group has had an interface added or removed */
-#define ESC_IPMP_GROUP_MEMBER_CHANGE "ESC_ipmp_group_member_change"
-
-/* Interface within an IPMP group has changed state or type */
-#define ESC_IPMP_IF_CHANGE "ESC_ipmp_if_change"
-
-
-/*
- * EC_DEV_ADD and EC_DEV_REMOVE subclass definitions - supporting attributes
- * (name/value pairs) are found in sys/sysevent/dev.h
- */
-#define ESC_DISK "disk" /* disk device */
-#define ESC_NETWORK "network" /* network interface */
-#define ESC_PRINTER "printer" /* printer device */
-#define ESC_LOFI "lofi" /* lofi device */
-
-/*
- * EC_DEV_BRANCH subclass definitions - supporting attributes (name/value pairs)
- * are found in sys/sysevent/dev.h
- */
-
-/* device tree branch added */
-#define ESC_DEV_BRANCH_ADD "ESC_dev_branch_add"
-
-/* device tree branch removed */
-#define ESC_DEV_BRANCH_REMOVE "ESC_dev_branch_remove"
-
-/* FMA Fault and Error event protocol subclass */
-#define ESC_FM_ERROR "ESC_FM_error"
-#define ESC_FM_ERROR_REPLAY "ESC_FM_error_replay"
-
-/* Service processor subclass definitions */
-#define ESC_PLATFORM_SP_RESET "ESC_platform_sp_reset"
-
-/*
- * EC_ACPIEV subclass definitions
- */
-#define EC_ACPIEV "EC_acpiev"
-#define ESC_ACPIEV_ADD "ESC_acpiev_add"
-#define ESC_ACPIEV_REMOVE "ESC_acpiev_remove"
-#define ESC_ACPIEV_WARN "ESC_acpiev_warn"
-#define ESC_ACPIEV_LOW "ESC_acpiev_low"
-#define ESC_ACPIEV_STATE_CHANGE "ESC_acpiev_state_change"
-
-/*
- * ZFS subclass definitions. supporting attributes (name/value paris) are found
- * in sys/fs/zfs.h
- */
-#define ESC_ZFS_RESILVER_START "ESC_ZFS_resilver_start"
-#define ESC_ZFS_RESILVER_FINISH "ESC_ZFS_resilver_finish"
-#define ESC_ZFS_VDEV_REMOVE "ESC_ZFS_vdev_remove"
-#define ESC_ZFS_POOL_DESTROY "ESC_ZFS_pool_destroy"
-#define ESC_ZFS_VDEV_CLEAR "ESC_ZFS_vdev_clear"
-#define ESC_ZFS_VDEV_CHECK "ESC_ZFS_vdev_check"
-
-#ifdef __cplusplus
-}
-#endif
-
#endif /* _SPL_SYSEVENT_EVENTDEFS_H */
diff --git a/include/sys/sysmacros.h b/include/sys/sysmacros.h
index e0a3eec0c..eeaedf9cb 100644
--- a/include/sys/sysmacros.h
+++ b/include/sys/sysmacros.h
@@ -7,6 +7,7 @@ extern "C" {
#include <linux/module.h>
#include <sys/varargs.h>
+#include <sys/zone.h>
#ifndef _KERNEL
#define _KERNEL __KERNEL__
@@ -121,8 +122,6 @@ extern int ddi_strtoul(const char *hw_serial, char **nptr,
int base, unsigned long *result);
#define makedevice(maj,min) makedev(maj,min)
-#define zone_dataset_visible(x, y) (1)
-#define INGLOBALZONE(z) (1)
/* common macros */
#ifndef MIN
diff --git a/include/sys/vnode.h b/include/sys/vnode.h
index 0e5e40174..af678eccc 100644
--- a/include/sys/vnode.h
+++ b/include/sys/vnode.h
@@ -16,6 +16,8 @@
#define XVA_MAPSIZE 3
#define XVA_MAGIC 0x78766174
+#define O_DSYNC 040000000
+
#define FREAD 1
#define FWRITE 2
#define FCREAT O_CREAT
@@ -52,6 +54,9 @@
#define CRCREAT 0x01
#define RMFILE 0x02
+#define B_INVAL 0x01
+#define B_TRUNC 0x02
+
typedef enum vtype {
VNON = 0,
VREG = 1,
@@ -74,6 +79,7 @@ typedef struct vnode {
typedef struct vattr {
enum vtype va_type; /* vnode type */
+ u_int va_mask; /* attribute bit-mask */
u_short va_mode; /* acc mode */
short va_uid; /* owner uid */
short va_gid; /* owner gid */
@@ -89,7 +95,6 @@ typedef struct vattr {
long va_blocks; /* space used */
} vattr_t;
-#if 0
typedef struct xoptattr {
timestruc_t xoa_createtime; /* Create time of file */
uint8_t xoa_archive;
@@ -124,7 +129,6 @@ typedef struct vsecattr {
void *vsa_dfaclentp; /* pointer to default ACL entries */
size_t vsa_aclentsz; /* ACE size in bytes of vsa_aclentp */
} vsecattr_t;
-#endif
extern int vn_open(const char *path, int seg, int flags, int mode,
vnode_t **vpp, int x1, void *x2);
@@ -136,14 +140,26 @@ extern int vn_rdwr(uio_rw_t uio, vnode_t *vp, void *addr, ssize_t len,
extern int vn_close(vnode_t *vp, int flags, int x1, int x2, void *x3, void *x4);
extern int vn_remove(const char *path, int seg, int flags);
extern int vn_rename(const char *path1, const char *path2, int x1);
-extern int vn_getattr(vnode_t *vp, vattr_t *vap, int flags, int x3, void *x4);
+extern int vn_getattr(vnode_t *vp, vattr_t *vap, int flags, void *x3, void *x4);
extern int vn_fsync(vnode_t *vp, int flags, void *x3, void *x4);
+static __inline__ int
+vn_rele(vnode_t *vp)
+{
+ return 0;
+} /* vn_rele() */
+
+static __inline__ int
+vn_putpage(vnode_t *vp, offset_t off, ssize_t size,
+ int flags, void *x1, void *x2) {
+ return 0;
+} /* vn_putpage() */
+
#define VOP_CLOSE vn_close
-#define VN_RELE(vp)
+#define VN_RELE vn_rele
#define VOP_GETATTR vn_getattr
#define VOP_FSYNC vn_fsync
-#define VOP_PUTPAGE(vp, of, sz, fl, cr, ct)
+#define VOP_PUTPAGE vn_putpage
#define vn_is_readonly(vp) 0
extern void *rootdir;
diff --git a/include/sys/zone.h b/include/sys/zone.h
new file mode 100644
index 000000000..d3dd73794
--- /dev/null
+++ b/include/sys/zone.h
@@ -0,0 +1,9 @@
+#ifndef _SPL_ZONE_H
+#define _SPL_ZONE_H
+
+#include <sys/byteorder.h>
+
+#define zone_dataset_visible(x, y) (1)
+#define INGLOBALZONE(z) (1)
+
+#endif /* SPL_ZONE_H */
diff --git a/modules/spl/spl-vnode.c b/modules/spl/spl-vnode.c
index a1f6a680e..0ec53e73e 100644
--- a/modules/spl/spl-vnode.c
+++ b/modules/spl/spl-vnode.c
@@ -313,7 +313,7 @@ exit:
EXPORT_SYMBOL(vn_rename);
int
-vn_getattr(vnode_t *vp, vattr_t *vap, int flags, int x3, void *x4)
+vn_getattr(vnode_t *vp, vattr_t *vap, int flags, void *x3, void *x4)
{
struct file *fp;
struct kstat stat;
@@ -353,9 +353,14 @@ EXPORT_SYMBOL(vn_getattr);
int vn_fsync(vnode_t *vp, int flags, void *x3, void *x4)
{
+ int datasync = 0;
+
BUG_ON(!vp);
BUG_ON(!vp->v_fp);
- return file_fsync(vp->v_fp, vp->v_fp->f_dentry, 0);
+ if (flags & FDSYNC)
+ datasync = 1;
+
+ return file_fsync(vp->v_fp, vp->v_fp->f_dentry, datasync);
} /* vn_fsync() */
EXPORT_SYMBOL(vn_fsync);