Commit Graph

81 Commits

Author SHA1 Message Date
Brian Behlendorf 615e289a57 Revert "Remove declarations in VERIFY3_IMPL to save stack"
This reverts commit 421d95b3ea.

Ricardo correctly pointed out that there is more going on here than
typecasting.  By removing the locals we are actually causing LEFT and
RIGHT to be evaluated twice which can potentially lead to some
strange side effects as:

1) VERIFY3*() causing a panic but in the panic message the values
look correct such that the assertion shouldn't fail, or:

2) if LEFT or RIGHT are expressions with side-effects (e.g. a call
to a function which changes some state), then when we panic and
examine the crash dump, it may lead to an unexpected state because
we are not expecting certain things to change during the panic,
after the expressions inside VERIFY3*(...) have been evaluated.

3) Also, it may lead to double-panics or deadlocks during panics,
like for example, if the expressions inside VERIFY3*(...) only expect
to be called once (e.g. because they acquire a mutex).
2010-08-06 11:08:24 -07:00
Brian Behlendorf 0fd353341a Revert "remove compiler warning on 32-bit systems"
This reverts commit 80819cc01e.
2010-08-06 11:08:11 -07:00
Ned Bass 80819cc01e remove compiler warning on 32-bit systems
commit 421d95b3ea introduced a compiler
warning on 32-bit systems about casting a pointer to an integer of a
different size.  This commit removes the warning by casting the arguments
to snprintf in the same manner as the original VERIFY3_IMPL macro.
2010-08-04 09:38:44 -07:00
Ned Bass 421d95b3ea Remove declarations in VERIFY3_IMPL to save stack
This has a minor impact on stack usage of individual functions, but the
VERIFY macros are used so frequently that their overhead may add up.
This macro declared two new local variables to cast its argument types.
Doing the typecast inline eliminates the need for these variables.

Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
2010-08-02 13:34:48 -07:00
Brian Behlendorf f39d7d2ca2 Remove libspl support for mlslabels
The ZFS update to onnv_141 brought with it support for a
security label attribute called mlslabel.  This feature
depends on zones to work correctly and while I originally
added minimal support for this in libspl that was a mistake.

Supporting this under Linux is not required and this is
just additional troublesome code to support.  Long term
something like this could be supported under Linux but it
will need to be clearly thought through them an implemented.
2010-07-22 16:37:29 -07:00
Brian Behlendorf bb4baf0912 Add missing headers to 'make dist' target for RPM build
The following files were being left out the tarball which
is used by the 'make rpm' target.  This results in a build
failure when building packages which use the tarball.

        lib/libspl/include/sys/tsol/*.h
        lib/libspl/include/util/*.h
2010-07-01 10:37:27 -07:00
Brian Behlendorf 91cc4e35bb Updates to linux-libspl
Added print_timestamp() compatibility function, this will be needed
long term but it's a simply enough addition.

Added Solaris style label functions.  This was done simply to aid in
the initial update to onnv_141.  I'm hopeful that after more careful
inspection all of this can be removed and we can integrate with a
more Linux friendly Solution without breaking any compatibility.

Added several missing headers which are required by the updated
version of ZFS.  As usual I just add empty headers if needed because
it's easier than tracking the change against the core ZFS code.

Added SEC, MILLISEC, MICROSEC defines if unavailable.

Added missing xuio structure and typedefs.  I'm hopeful these can
be removed as well once we crack the zero-copy nut under Linux.
2010-06-14 15:47:54 -07:00
Brian Behlendorf c98946e318 Add missing CDDL headers. 2010-05-18 13:38:06 -07:00
Brian Behlendorf 2a80af91ed Remove nvpair_alloc_system.c change in libspl topic branch.
A change to the nvpair implementation should not have been made in
the libspl-topic branch.  This patch fixes that accident by reverting
the change and providing the missing libspl header to allow the
proper building of nvpair_alloc_system.c without the need to modify it.
2010-05-18 12:47:08 -07:00
Brian Behlendorf 9b8aa5f57e Extend libspl as required for linux FMA integration.
These changes lay some of the ground work for supporting something
similar to FMA event under Solaris.  In particular these changes
add or modify the following areas.

First off an implementation of the gethrestime() function is added
to libspl.  Secondly, the missing type processorid_t has been added.
And finally the lib/libspl/include/sys/fm/{protocol.h|util.h} stub
headers have been removed in favor of updating the full versions
in module/zfs/include/sys/fm/{protocol.h|util.h} to work cleanly
in both user and kernel space.
2010-05-14 10:33:00 -07:00
Brian Behlendorf c14cca5c07 Add fm_init/fm_fini stubs for user space FMA update. 2010-04-29 12:25:18 -07:00
Brian Behlendorf ee2a998f37 Move zfs_config.h include to command line -include
Remove the few places in the code where zfs_config.h is included.
It is now added to the gcc compile line to ensure the config results
2010-03-23 14:54:00 -07:00
Ricardo M. Correia c557557e4a Add umem_alloc_aligned() and honor cache_align field for umem caches
Under linux we open block devices with O_DIRECT which means we must
provide aligned memory buffers.  This patch adds the needed umem
interfaces or in the case of caches simply honors alignment provided
at cache creation time.
2010-03-10 11:51:43 -08:00
Brian Behlendorf 238511d277 Add missing sys/dktp/*.h headers to package. 2009-11-02 14:08:08 -08:00
Brian Behlendorf 22925be29c Add in missing header required by libefi. 2009-10-14 16:50:26 -07:00
Brian Behlendorf 8a905e7dcc Update vtoc.h header and add missing mhd.h header needed by libefi. 2009-10-14 15:52:24 -07:00
Brian Behlendorf d7e242199c Header efi_partition.h moved to lib/libefi/include/sys/ 2009-10-09 16:18:39 -07:00
Brian Behlendorf 2b1eaf77d4 Remove zfs_debug.h which is a duplicate of the version in the
modules directory.  Having two copies is just asking for trouble.
2009-07-20 13:18:24 -07:00
Brian Behlendorf 18b7a966e4 Minor build fixes from asm-generic change.
- Drop _NOTE(CONSTCOND) usage in libspl this is Solaris specific.
- Resolve conflicting OR and AND long prototypes.
2009-07-16 13:37:59 -07:00
Ricardo M. Correia 4279777f47 Fixed the zpool and zfs commands returning 'internal error: Out of memory.' due to a failure in nvlist_common().
The failure turned out to be missing macro definitions for little
endian and big endian.

Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
2009-07-14 15:31:03 -07:00
Brian Behlendorf 9cf1451c53 Add ASSERTV macro to simplify removing variables (the V in ASSERTV)
when they are only used in ASSERTs which will be compiled out.
2009-07-09 12:08:40 -07:00
Brian Behlendorf a3d336e1ae Drop support for the Solaris user space thread_t API. This was just
too confusing.  The two consumers of this (ztest.c and taskq.c) have
been updated to use the Solaris kernel space kthread_t API which is
provided by zfs_context.h.
2009-07-08 16:15:42 -07:00
Brian Behlendorf 63845164a6 Use $(RM) macro to ensure -f is passed.
Preserve path for installed headers with nobase.
2009-07-01 11:31:47 -07:00
Brian Behlendorf 2486dd20e5 Set LP64 for powerpc64 and LP32 for just powerpc. 2009-05-22 16:27:59 -07:00
Brian Behlendorf b83a638936 Powerpc64 Compatibility
- Add 64-bit user space atomic support obtained from an old version
  of OpenSolaris which supported ppc.  They are not all 100% fully
  implemented by they are a good first step.
- Add powerpc ISA type.
- Strip out unused ISA defines to prevent any confusion.
2009-05-22 15:00:19 -07:00
Brian Behlendorf 085d04563d Add stub header which is missing in new versions of glibc 2009-03-17 15:53:34 -07:00
Brian Behlendorf 59541a305e Libspl XDR implementation reorganization
Moved xdr_control() function from static inline in xdr.h in to a
new xdr.c file which was added to the libspl build.  Additionally,
I have removed the 'xdr_bytesrec' typedef which shares the same
name as the struct.  This is what Solaris does, but it's just asking
for trouble.  It has been replaced with an 'xdr_bytesrec_t' typedef.
2009-03-12 14:38:52 -07:00
Ricardo M. Correia db42bfe00a Fixed compilation error due to missing xdr_control() implementation in Linux. 2009-03-11 14:53:41 -07:00
Brian Behlendorf 84b63f7730 Remove all #pragma idents from libspl. 2009-03-11 12:13:44 -07:00
Ricardo M. Correia 4a118b6227 Minor bug fix due to MAXOFFSET_T constant being too large on 32-bit systems. 2009-03-11 10:47:20 -07:00
Brian Behlendorf c05c1aa6f9 Build system and packaging (RPM support) (Part 4)
Complete support for dist install srpm and rpm make targets.
2009-03-10 21:57:56 -07:00
Brian Behlendorf 2cd31b723e Add HW_HOSTID_LEN for libspl use 2009-02-18 16:00:50 -08:00
Brian Behlendorf 3d2e086e21 Remove u8 support, moved to libu8 2009-01-05 11:52:51 -08:00
Brian Behlendorf 89585b82fa Add missing limits 2008-12-22 15:17:57 -08:00
Brian Behlendorf 091c16c185 Add missing tzfile.h 2008-12-22 15:04:47 -08:00
Brian Behlendorf b0704f1597 Add missing header for ztest 2008-12-22 14:57:15 -08:00
Brian Behlendorf 5f0a629790 Add enable_extended_FILE_stdio #define 2008-12-22 10:34:22 -08:00
Brian Behlendorf e8b703cb46 Add sys/time.h 2008-12-22 10:00:01 -08:00
Brian Behlendorf ae21fcad1c Add missing acl files 2008-12-19 16:49:31 -08:00
Brian Behlendorf 50c5923533 Resolve lingering atomic asm build issues. I think 2008-12-19 16:23:26 -08:00
Brian Behlendorf b66eafc892 Add assembler flags 2008-12-19 15:56:04 -08:00
Brian Behlendorf febd743891 First pass at getting userspace 64bit atomic ops working: 2008-12-19 15:11:43 -08:00
Brian Behlendorf 545f76d526 Add P2BOUNDARY macro 2008-12-19 13:56:55 -08:00
Brian Behlendorf 28edfc91c8 Add compress header 2008-12-19 13:14:49 -08:00
Brian Behlendorf b86297e4d3 Add missing umem bits 2008-12-19 12:32:08 -08:00
Brian Behlendorf 55c0063df6 Add 2 more headers where are missing 2008-12-19 12:18:59 -08:00
Brian Behlendorf f72a142146 Strip out sunddi support, this can be done in context 2008-12-19 12:04:07 -08:00
Brian Behlendorf 273cbc844a Fix trailing 'a' char 2008-12-19 11:55:38 -08:00
Brian Behlendorf f9a746f44f Flesh out some more of the sunddi 2008-12-19 11:48:21 -08:00
Brian Behlendorf 615168d176 Stub out additional sunddi interfaces 2008-12-19 11:30:42 -08:00