Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

PANIC at range_tree.c:304:range_tree_find_impl() #8637

Closed
corny opened this issue Apr 18, 2019 · 19 comments
Closed

PANIC at range_tree.c:304:range_tree_find_impl() #8637

corny opened this issue Apr 18, 2019 · 19 comments
Labels
Status: Stale No recent activity for issue Type: Defect Incorrect behavior (e.g. crash, hang)

Comments

@corny
Copy link

corny commented Apr 18, 2019

System information

Type Version/Name
Distribution Name Ubuntu
Distribution Version 18.10 and 19.04
Linux Kernel 4.8.0-17 and 5.0.0-7
Architecture x86_64
ZFS Version 0.7.9 and 0.7.12
SPL Version 0.7.9 and 0.7.12

Describe the problem you're observing

I tried to delete a directory with around 680,000 files inside of the rpool/home dataset. This operation stucked an then I did a hard reset. My ZFS pool is encrypted with LUKS.

Mounting rpool/home causes ZFS to panic. This happens during the boot process of the installed system and also when I run a live system via USB and mounting the volume. zpool scrub rpool does not report any errors.

Describe how to reproduce the problem

This happens every time I'm trying to mount the rpool/home dataset. Other datasets can be mounted without errors.

Include any warning/errors/backtraces from the system logs

[ 1092.679974] VERIFY(size != 0) failed
[ 1092.679981] PANIC at range_tree.c:304:range_tree_find_impl()
[ 1092.679983] Showing stack for process 1529
[ 1092.679988] CPU: 6 PID: 1529 Comm: z_iput Tainted: P           O      5.0.0-7-generic #8-Ubuntu
[ 1092.679989] Hardware name: ASUSTeK Computer INC. V-P8H67E/V-P8H67E, BIOS 3603 02/16/2012
[ 1092.679991] Call Trace:
[ 1092.680001]  dump_stack+0x63/0x8a
[ 1092.680015]  spl_dumpstack.cold.2+0x20/0x25 [spl]
[ 1092.680023]  spl_panic+0xd3/0xfb [spl]
[ 1092.680088]  ? dbuf_read+0x35e/0x970 [zfs]
[ 1092.680093]  ? _cond_resched+0x19/0x30
[ 1092.680095]  ? _cond_resched+0x19/0x30
[ 1092.680098]  ? mutex_lock+0x12/0x30
[ 1092.680102]  ? ktime_get_raw_ts64+0x38/0xd0
[ 1092.680146]  ? dmu_zfetch+0x48a/0x530 [zfs]
[ 1092.680150]  ? mutex_lock+0x12/0x30
[ 1092.680188]  ? dbuf_rele_and_unlock+0x11b/0x4f0 [zfs]
[ 1092.680239]  range_tree_find_impl+0x88/0x90 [zfs]
[ 1092.680246]  ? spl_kmem_zalloc+0xdf/0x160 [spl]
[ 1092.680297]  range_tree_clear+0x4f/0x60 [zfs]
[ 1092.680341]  dnode_free_range+0x20c/0x560 [zfs]
[ 1092.680382]  dmu_object_free+0x53/0x90 [zfs]
[ 1092.680435]  zfs_znode_delete+0x81/0x140 [zfs]
[ 1092.680488]  zfs_rmnode+0x1f9/0x320 [zfs]
[ 1092.680540]  ? zfs_znode_hold_exit+0x117/0x130 [zfs]
[ 1092.680592]  zfs_zinactive+0xd0/0xe0 [zfs]
[ 1092.680645]  zfs_inactive+0x86/0x210 [zfs]
[ 1092.680648]  ? truncate_pagecache+0x5a/0x70
[ 1092.680699]  zpl_evict_inode+0x43/0x60 [zfs]
[ 1092.680704]  evict+0xca/0x1a0
[ 1092.680707]  iput+0x148/0x210
[ 1092.680714]  taskq_thread+0x2ec/0x4d0 [spl]
[ 1092.680717]  ? __switch_to_asm+0x40/0x70
[ 1092.680721]  ? wake_up_q+0x80/0x80
[ 1092.680726]  kthread+0x120/0x140
[ 1092.680733]  ? task_done+0xb0/0xb0 [spl]
[ 1092.680737]  ? __kthread_parkme+0x70/0x70
[ 1092.680739]  ret_from_fork+0x35/0x40
@corny
Copy link
Author

corny commented Apr 18, 2019

correct

@corny
Copy link
Author

corny commented Apr 19, 2019

Finally I was able to access the dataset. I listed the available transactions:

zdb -ul <vdev>

then I tried several transaction ids. Finally one transaction worked:

zpool import -N -o readonly=on -f -R /pool -F -T <transaction_id> <pool>

It took more than two hours to finish the zpool import call.

@setharnold
Copy link

I hit the same VERIFY(size != 0) assert when performing a zfs recv:

https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1861235

Thanks

@behlendorf behlendorf added the Type: Defect Incorrect behavior (e.g. crash, hang) label Feb 3, 2020
@ColinIanKing
Copy link
Contributor

@setharnold can you elaborate with some more details?

@ColinIanKing
Copy link
Contributor

ColinIanKing commented Feb 24, 2020

What is interesting is the following commit modifies range_tree_clear() so it performs a zero size check and returns before calling range_tree_find_impl(). This commit is not in 18.10 and 19.04 Ubuntu ZFS releases.

commit a1d477c
Author: Matthew Ahrens mahrens@delphix.com
Date: Thu Sep 22 09:30:13 2016 -0700

OpenZFS 7614, 9064 - zfs device evacuation/removal

OpenZFS 7614 - zfs device evacuation/removal
OpenZFS 9064 - remove_mirror should wait for device removal to complete

the specific change is:

@@ -560,6 +536,9 @@ range_tree_clear(range_tree_t *rt, uint64_t start, uint64_t size)
 {
        range_seg_t *rs;

+       if (size == 0)
+               return;
+
        while ((rs = range_tree_find_impl(rt, start, size)) != NULL) {
                uint64_t free_start = MAX(rs->rs_start, start);
                uint64_t free_end = MIN(rs->rs_end, start + size);

I'm not sure why this check was added, but I guess it handles the cases were zero sized allocations are allowed and stops these from doing any unnecessary clearing and avoids the assertion. But the semantics change is not clear in the commit message.

@behlendorf - do you see any reason why backporting this 3 liner change is a bad idea for older releases. My guess is that it will fix this issue w/o any problems.

@behlendorf
Copy link
Contributor

@ColinIanKing that should prevent the VERIFY failure in range_tree_clear() -> range_tree_find_impl() which is being hit. However, it looks like you're immediately going to hit the same failure in dnode_free_range() -> range_tree_add() at the top of the function. The core issue here which needs to be addressed is the code has somehow ended up in the done: block of dnode_free_range() with a block count (nblks) of zero.

Are you by chance able to reproduce the issue? If so dnode_free_range() could be instrumented to see exactly how it ended up there.

As for the early return added to range_tree_clear() when a zero size it passed. That was done to make the interface to range_tree_clear() a little more tolerant for some new callers in the device removal code.

@ColinIanKing
Copy link
Contributor

Thanks for the analysis. I'll see if I can work this to pop out a reproducer somehow and then get some debug/instrumentation in the code to see why it's occurring

@ColinIanKing
Copy link
Contributor

ColinIanKing commented Apr 22, 2020

In this scenario, dmu_object_free has been called and this calls dnode_free_range using dnode_free_range(dn, 0, DMU_OBJECT_END, tx)

In this case, in dnode_free_range len is DMU_OBJECT_END and offset is 0, so..:

    if (len == DMU_OBJECT_END) {
            len = UINT64_MAX - off;
            trunc = TRUE;
    }

makes len is UINT64_MAX and trunc = TRUE. If one follows the code through we have this stanza:

    blkid = off >> blkshift;
    nblks = len >> blkshift;
    if (trunc)
            nblks += 1;

and this is the last place nblks gets updated. This implies blkshift is zero, nblks = UINT64_MAX >> 0 is UINT64_MAX, trunc is TRUE so nblks +=1 wraps nblks back to 0, hence the assert later on.

For blkshift to be zero blksz dn->dn_datablksz is zero, so this looks like some form of corruption. Any ideas?

@ColinIanKing
Copy link
Contributor

I noted that the earlier report mentioned that zfs had hung and the machine was forcefully rebooted. Could that create a broken dnode object that causes this kind of issue? If so, is there a way to fix these up like a fsck or something?

@behlendorf
Copy link
Contributor

For blkshift to be zero blksz dn->dn_datablksz is zero, so this looks like some form of corruption.

Everything is written transactionally so it's not possible to have a half updated dnode for example. Even if the node was hard power cycled. It is definitely possible there's some other subtle bug which caused us to write out a damaged dnode, and we only hit this error when trying to free it. If you're able to reproduce this, can you try the following to get some more information.

You may have already tried this, but let's enable the dnode verification checks. If you build zfs with the --enable-debug option it will by default enable the ZFS_DEBUG_DNODE_VERIFY bit in zfs_flags. This enables some additional sanity checks throughout the code to make sure the critical fields in a dnode are all reasonable. This includes checks for the dn->dn_datablkshift field, which might shed some more light on how this happens.

Now, if you have a pool which hit this we can do a little better and use zdb to dump the on-disk values for the dnode so we can manually inspect it. You'll just need to get the object number for the file, this is the same as the dnode/inode number, so if you can stat(1) the file and note down the value for the Inode: field. Then you can run zdb -dddd <pool>/<dataset> <object nr>. That should hopefully give us a better idea of the situation. Otherwise we might need to instrument the code to print the object number before the ASSERT hits.

This implies blkshift is zero, nblks = UINT64_MAX >> 0 is UINT64_MAX, trunc is TRUE so nblks +=1 wraps nblks back to 0, hence the assert later on.

This makes sense and backs up the corruption idea. In this case, if the datablkshift is 0 then we wouldn't expect the object to have any data blocks which need to be freed. We'd expect to hit one of the early returns in dnode_free_range() so we'd never reach the failing ASSERT. With the zdb output we'd hopefully be able to tell exactly how the dnode is damaged which is allowing this to happen. And possibly how it got that way.

@ColinIanKing
Copy link
Contributor

Added more debug, I get the following dn_type that trips the crash:

dmu_object_free: object = 0x211, dn->dn_type = 32

I believe dn_type 32 is DMU_OT_DSL_PERMS

@ColinIanKing
Copy link
Contributor

ColinIanKing commented May 29, 2020

sudo zdb -dddd srv/backups/millbarge/rpool/var/log 529
Dataset srv/backups/millbarge/rpool/var/log [ZPL], ID 39694, cr_txg 23197757, 554M, 274 objects, rootbp DVA[0]=<1:1d000d42000:1000> DVA[1]=<2:24416f4b000:1000> [L0 DMU objset] sha256 uncompressed LE contiguous unique double size=800L/800P birth=23437543L/23437543P fill=274 cksum=cf5fcb2f986c768c:7cc8638aeb1a5162:9de9f236f072e16:40c6a08d90b54951

    Object  lvl   iblk   dblk  dsize  dnsize  lsize   %full  type
       529    0      0      0      0     512      0    -nan  DSL permissions (K=UNKNOWN) (Z=UNKNOWN)
                                                 0   bonus  UNKNOWN
	dnode flags: USED_BYTES USERUSED_ACCOUNTED USEROBJUSED_ACCOUNTED SPILL_BLKPTR
	dnode maxblkid: 0
	UNKNOWN OBJECT TYPE
c < (1ULL << 24) >> 9 (0x7fffffffffffff < 0x8000)
ASSERT at ../../module/zfs/zio.c:266:zio_buf_alloc()Aborted

@ColinIanKing
Copy link
Contributor

Any ideas what to do with a broken object like the above?

@behlendorf
Copy link
Contributor

It definitely appears that at a minimum the dnode is badly damaged. The "(K=UNKNOWN) (Z=UNKNOWN)" output indicates that both the checksum and compression types are not valid. It's reasonable to suspect the the rest of the dnode contents aren't valid either.

There are a couple options available. Did you by chance try importing the pool and mounting the data set when building with --enable-debug. I'd have expected the dnode_verify() function to catch this and cause a panic. Though I see it doesn't currently include any sanity checks for the dn_checksum, dn_compression, or block pointers. And most of the values printed before the ASSERT looks reasonable, so it's possible it just didn't detect this specific damage. And then went happily on it's way until hitting the VERIFY in the range tree code when freeing.

Updating the dnode_verify() function to check these additional would help us confirm that theory. And if that's the case we could look in to detecting it in dnode_hold() and returning an error which could then be handled. If all the block pointers are damaged we wouldn't be able to reclaim the space used by this object, but you'd still be able to use the dataset.

@setharnold
Copy link

setharnold commented Jun 6, 2020

I wasn't able to build the module with debug support. In /etc/default/zfs I set:

ZFS_DKMS_ENABLE_DEBUG='yes'

and hit the following build errors:

build errors
DKMS make.log for zfs-0.7.5 for kernel 4.15.0-106-generic (x86_64)
Fri Jun  5 17:59:58 PDT 2020
make  all-recursive
make[1]: Entering directory '/var/lib/dkms/zfs/0.7.5/build'
Making all in module
make[2]: Entering directory '/var/lib/dkms/zfs/0.7.5/build/module'
list='icp'; for targetdir in $list; do \
	make -C $targetdir; \
done
make[3]: Entering directory '/var/lib/dkms/zfs/0.7.5/build/module/icp'
mkdir -p api core spi io os algs algs/aes algs/edonr algs/modes algs/sha1 algs/sha2 algs/skein asm-x86_64 asm-x86_64/aes asm-x86_64/modes asm-x86_64/sha1 asm-x86_64/sha2 asm-i386 asm-generic
make[3]: Leaving directory '/var/lib/dkms/zfs/0.7.5/build/module/icp'
make -C /lib/modules/4.15.0-106-generic/build M=`pwd`  CONFIG_ZFS=m modules
make[3]: Entering directory '/usr/src/linux-headers-4.15.0-106-generic'
  CC [M]  /var/lib/dkms/zfs/0.7.5/build/module/icp/illumos-crypto.o
  CC [M]  /var/lib/dkms/zfs/0.7.5/build/module/nvpair/nvpair.o
[...]
  CC [M]  /var/lib/dkms/zfs/0.7.5/build/module/zfs/dsl_synctask.o
  AS [M]  /var/lib/dkms/zfs/0.7.5/build/module/icp/asm-x86_64/sha2/sha256_impl.o
  AS [M]  /var/lib/dkms/zfs/0.7.5/build/module/icp/asm-x86_64/sha2/sha512_impl.o
/var/lib/dkms/zfs/0.7.5/build/module/icp/asm-x86_64/sha1/sha1-x86_64.o: warning: objtool: sha1_block_data_order()+0x11: unsupported stack pointer realignment
  CC [M]  /var/lib/dkms/zfs/0.7.5/build/module/zfs/edonr_zfs.o
  CC [M]  /var/lib/dkms/zfs/0.7.5/build/module/zfs/fm.o
/var/lib/dkms/zfs/0.7.5/build/module/icp/asm-x86_64/sha2/sha256_impl.o: warning: objtool: SHA256TransformBlocks()+0x19: unsupported stack pointer realignment
/var/lib/dkms/zfs/0.7.5/build/module/icp/asm-x86_64/sha2/sha512_impl.o: warning: objtool: SHA512TransformBlocks()+0x1c: unsupported stack pointer realignment
  CC [M]  /var/lib/dkms/zfs/0.7.5/build/module/zfs/gzip.o
  CC [M]  /var/lib/dkms/zfs/0.7.5/build/module/zfs/lzjb.o
  CC [M]  /var/lib/dkms/zfs/0.7.5/build/module/zfs/lz4.o
[...]
  CC [M]  /var/lib/dkms/zfs/0.7.5/build/module/zfs/space_reftree.o
  CC [M]  /var/lib/dkms/zfs/0.7.5/build/module/zfs/txg.o
  CC [M]  /var/lib/dkms/zfs/0.7.5/build/module/zfs/trace.o
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:58:1: error: conflicting types for ‘refcount_create’
 refcount_create(refcount_t *rc)
 ^~~~~~~~~~~~~~~
In file included from /var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:27:0:
/var/lib/dkms/zfs/0.7.5/build/include/sys/refcount.h:65:6: note: previous declaration of ‘refcount_create’ was here
 void refcount_create(zfs_refcount_t *rc);
      ^~~~~~~~~~~~~~~
In file included from /usr/src/spl-0.7.5/include/sys/t_lock.h:29:0,
                 from /var/lib/dkms/zfs/0.7.5/build/include/sys/zfs_context.h:35,
                 from /var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:26:
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c: In function ‘refcount_create’:
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:60:16: error: ‘refcount_t {aka struct refcount_struct}’ has no member named ‘rc_mtx’
  mutex_init(&rc->rc_mtx, NULL, MUTEX_DEFAULT, NULL);
                ^
/usr/src/spl-0.7.5/include/sys/mutex.h:49:24: note: in definition of macro ‘MUTEX’
 #define MUTEX(mp)  (&((mp)->m_mutex))
                        ^~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:60:2: note: in expansion of macro ‘mutex_init’
  mutex_init(&rc->rc_mtx, NULL, MUTEX_DEFAULT, NULL);
  ^~~~~~~~~~
In file included from ./include/linux/seqlock.h:36:0,
                 from ./include/linux/time.h:6,
                 from ./include/linux/stat.h:19,
                 from ./include/linux/module.h:10,
                 from /usr/src/spl-0.7.5/include/sys/sysmacros.h:28,
                 from /usr/src/spl-0.7.5/include/sys/types.h:29,
                 from /var/lib/dkms/zfs/0.7.5/build/include/sys/zfs_context.h:34,
                 from /var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:26:
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:60:16: error: ‘refcount_t {aka struct refcount_struct}’ has no member named ‘rc_mtx’
  mutex_init(&rc->rc_mtx, NULL, MUTEX_DEFAULT, NULL);
                ^
./include/linux/spinlock.h:304:17: note: in definition of macro ‘spin_lock_init’
  spinlock_check(_lock);    \
                 ^~~~~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:60:2: note: in expansion of macro ‘mutex_init’
  mutex_init(&rc->rc_mtx, NULL, MUTEX_DEFAULT, NULL);
  ^~~~~~~~~~
In file included from ./include/linux/seqlock.h:36:0,
                 from ./include/linux/time.h:6,
                 from ./include/linux/stat.h:19,
                 from ./include/linux/module.h:10,
                 from /usr/src/spl-0.7.5/include/sys/sysmacros.h:28,
                 from /usr/src/spl-0.7.5/include/sys/types.h:29,
                 from /var/lib/dkms/zfs/0.7.5/build/include/sys/zfs_context.h:34,
                 from /var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:26:
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:60:16: error: ‘refcount_t {aka struct refcount_struct}’ has no member named ‘rc_mtx’
  mutex_init(&rc->rc_mtx, NULL, MUTEX_DEFAULT, NULL);
                ^
./include/linux/spinlock.h:105:9: note: in definition of macro ‘raw_spin_lock_init’
  do { *(lock) = __RAW_SPIN_LOCK_UNLOCKED(lock); } while (0)
         ^~~~
/usr/src/spl-0.7.5/include/sys/mutex.h:105:2: note: in expansion of macro ‘spin_lock_init’
  spin_lock_init(&(mp)->m_lock);    \
  ^~~~~~~~~~~~~~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:60:2: note: in expansion of macro ‘mutex_init’
  mutex_init(&rc->rc_mtx, NULL, MUTEX_DEFAULT, NULL);
  ^~~~~~~~~~
In file included from /usr/src/spl-0.7.5/include/sys/t_lock.h:29:0,
                 from /var/lib/dkms/zfs/0.7.5/build/include/sys/zfs_context.h:35,
                 from /var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:26:
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:60:16: error: ‘refcount_t {aka struct refcount_struct}’ has no member named ‘rc_mtx’
  mutex_init(&rc->rc_mtx, NULL, MUTEX_DEFAULT, NULL);
                ^
/usr/src/spl-0.7.5/include/sys/mutex.h:106:24: note: in definition of macro ‘mutex_init’
  spl_mutex_clear_owner(mp);    \
                        ^~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:61:17: error: ‘refcount_t {aka struct refcount_struct}’ has no member named ‘rc_list’
  list_create(&rc->rc_list, sizeof (reference_t),
                 ^~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:63:17: error: ‘refcount_t {aka struct refcount_struct}’ has no member named ‘rc_removed’
  list_create(&rc->rc_removed, sizeof (reference_t),
                 ^~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:65:4: error: ‘refcount_t {aka struct refcount_struct}’ has no member named ‘rc_count’
  rc->rc_count = 0;
    ^~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:66:4: error: ‘refcount_t {aka struct refcount_struct}’ has no member named ‘rc_removed_count’
  rc->rc_removed_count = 0;
    ^~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:67:4: error: ‘refcount_t {aka struct refcount_struct}’ has no member named ‘rc_tracked’
  rc->rc_tracked = reference_tracking_enable;
    ^~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c: At top level:
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:71:1: error: conflicting types for ‘refcount_create_tracked’
 refcount_create_tracked(refcount_t *rc)
 ^~~~~~~~~~~~~~~~~~~~~~~
In file included from /var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:27:0:
/var/lib/dkms/zfs/0.7.5/build/include/sys/refcount.h:67:6: note: previous declaration of ‘refcount_create_tracked’ was here
 void refcount_create_tracked(zfs_refcount_t *rc);
      ^~~~~~~~~~~~~~~~~~~~~~~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c: In function ‘refcount_create_tracked’:
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:74:4: error: ‘refcount_t {aka struct refcount_struct}’ has no member named ‘rc_tracked’
  rc->rc_tracked = B_TRUE;
    ^~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c: At top level:
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:78:1: error: conflicting types for ‘refcount_create_untracked’
 refcount_create_untracked(refcount_t *rc)
 ^~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:27:0:
/var/lib/dkms/zfs/0.7.5/build/include/sys/refcount.h:66:6: note: previous declaration of ‘refcount_create_untracked’ was here
 void refcount_create_untracked(zfs_refcount_t *rc);
      ^~~~~~~~~~~~~~~~~~~~~~~~~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c: In function ‘refcount_create_untracked’:
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:81:4: error: ‘refcount_t {aka struct refcount_struct}’ has no member named ‘rc_tracked’
  rc->rc_tracked = B_FALSE;
    ^~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c: At top level:
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:85:1: error: conflicting types for ‘refcount_destroy_many’
 refcount_destroy_many(refcount_t *rc, uint64_t number)
 ^~~~~~~~~~~~~~~~~~~~~
In file included from /var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:27:0:
/var/lib/dkms/zfs/0.7.5/build/include/sys/refcount.h:69:6: note: previous declaration of ‘refcount_destroy_many’ was here
 void refcount_destroy_many(zfs_refcount_t *rc, uint64_t number);
      ^~~~~~~~~~~~~~~~~~~~~
In file included from ./include/linux/kernel.h:10:0,
                 from ./include/linux/list.h:9,
                 from ./include/linux/module.h:9,
                 from /usr/src/spl-0.7.5/include/sys/sysmacros.h:28,
                 from /usr/src/spl-0.7.5/include/sys/types.h:29,
                 from /var/lib/dkms/zfs/0.7.5/build/include/sys/zfs_context.h:34,
                 from /var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:26:
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c: In function ‘refcount_destroy_many’:
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:89:11: error: ‘refcount_t {aka struct refcount_struct}’ has no member named ‘rc_count’
  ASSERT(rc->rc_count == number);
           ^
./include/linux/compiler.h:77:42: note: in definition of macro ‘unlikely’
 # define unlikely(x) __builtin_expect(!!(x), 0)
                                          ^
/usr/src/spl-0.7.5/include/sys/debug.h:108:23: note: in expansion of macro ‘VERIFY’
 #define ASSERT(cond)  VERIFY(cond)
                       ^~~~~~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:89:2: note: in expansion of macro ‘ASSERT’
  ASSERT(rc->rc_count == number);
  ^~~~~~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:90:29: error: ‘refcount_t {aka struct refcount_struct}’ has no member named ‘rc_list’
  while ((ref = list_head(&rc->rc_list))) {
                             ^~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:91:18: error: ‘refcount_t {aka struct refcount_struct}’ has no member named ‘rc_list’
   list_remove(&rc->rc_list, ref);
                  ^~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:94:18: error: ‘refcount_t {aka struct refcount_struct}’ has no member named ‘rc_list’
  list_destroy(&rc->rc_list);
                  ^~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:96:29: error: ‘refcount_t {aka struct refcount_struct}’ has no member named ‘rc_removed’
  while ((ref = list_head(&rc->rc_removed))) {
                             ^~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:97:18: error: ‘refcount_t {aka struct refcount_struct}’ has no member named ‘rc_removed’
   list_remove(&rc->rc_removed, ref);
                  ^~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:101:18: error: ‘refcount_t {aka struct refcount_struct}’ has no member named ‘rc_removed’
  list_destroy(&rc->rc_removed);
                  ^~
In file included from /usr/src/spl-0.7.5/include/sys/sysmacros.h:31:0,
                 from /usr/src/spl-0.7.5/include/sys/types.h:29,
                 from /var/lib/dkms/zfs/0.7.5/build/include/sys/zfs_context.h:34,
                 from /var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:26:
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:102:19: error: ‘refcount_t {aka struct refcount_struct}’ has no member named ‘rc_mtx’
  mutex_destroy(&rc->rc_mtx);
                   ^
/usr/src/spl-0.7.5/include/sys/debug.h:66:19: note: in definition of macro ‘VERIFY3_IMPL’
  (void)((!((TYPE)(LEFT) OP (TYPE)(RIGHT))) &&   \
                   ^~~~
/usr/src/spl-0.7.5/include/sys/mutex.h:113:2: note: in expansion of macro ‘VERIFY3P’
  VERIFY3P(mutex_owner(mp), ==, NULL);   \
  ^~~~~~~~
/usr/src/spl-0.7.5/include/sys/mutex.h:63:27: note: in expansion of macro ‘ACCESS_ONCE’
 #define mutex_owner(mp)  (ACCESS_ONCE((mp)->m_owner))
                           ^~~~~~~~~~~
/usr/src/spl-0.7.5/include/sys/mutex.h:113:11: note: in expansion of macro ‘mutex_owner’
  VERIFY3P(mutex_owner(mp), ==, NULL);   \
           ^~~~~~~~~~~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:102:2: note: in expansion of macro ‘mutex_destroy’
  mutex_destroy(&rc->rc_mtx);
  ^~~~~~~~~~~~~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:102:19: error: ‘refcount_t {aka struct refcount_struct}’ has no member named ‘rc_mtx’
  mutex_destroy(&rc->rc_mtx);
                   ^
/usr/src/spl-0.7.5/include/sys/debug.h:66:19: note: in definition of macro ‘VERIFY3_IMPL’
  (void)((!((TYPE)(LEFT) OP (TYPE)(RIGHT))) &&   \
                   ^~~~
/usr/src/spl-0.7.5/include/sys/mutex.h:113:2: note: in expansion of macro ‘VERIFY3P’
  VERIFY3P(mutex_owner(mp), ==, NULL);   \
  ^~~~~~~~
/usr/src/spl-0.7.5/include/sys/mutex.h:63:27: note: in expansion of macro ‘ACCESS_ONCE’
 #define mutex_owner(mp)  (ACCESS_ONCE((mp)->m_owner))
                           ^~~~~~~~~~~
/usr/src/spl-0.7.5/include/sys/mutex.h:113:11: note: in expansion of macro ‘mutex_owner’
  VERIFY3P(mutex_owner(mp), ==, NULL);   \
           ^~~~~~~~~~~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:102:2: note: in expansion of macro ‘mutex_destroy’
  mutex_destroy(&rc->rc_mtx);
  ^~~~~~~~~~~~~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:102:19: error: ‘refcount_t {aka struct refcount_struct}’ has no member named ‘rc_mtx’
  mutex_destroy(&rc->rc_mtx);
                   ^
/usr/src/spl-0.7.5/include/sys/debug.h:70:12: note: in definition of macro ‘VERIFY3_IMPL’
      CAST (LEFT), CAST (RIGHT)))
            ^~~~
/usr/src/spl-0.7.5/include/sys/mutex.h:113:2: note: in expansion of macro ‘VERIFY3P’
  VERIFY3P(mutex_owner(mp), ==, NULL);   \
  ^~~~~~~~
/usr/src/spl-0.7.5/include/sys/mutex.h:63:27: note: in expansion of macro ‘ACCESS_ONCE’
 #define mutex_owner(mp)  (ACCESS_ONCE((mp)->m_owner))
                           ^~~~~~~~~~~
/usr/src/spl-0.7.5/include/sys/mutex.h:113:11: note: in expansion of macro ‘mutex_owner’
  VERIFY3P(mutex_owner(mp), ==, NULL);   \
           ^~~~~~~~~~~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:102:2: note: in expansion of macro ‘mutex_destroy’
  mutex_destroy(&rc->rc_mtx);
  ^~~~~~~~~~~~~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:102:19: error: ‘refcount_t {aka struct refcount_struct}’ has no member named ‘rc_mtx’
  mutex_destroy(&rc->rc_mtx);
                   ^
/usr/src/spl-0.7.5/include/sys/debug.h:70:12: note: in definition of macro ‘VERIFY3_IMPL’
      CAST (LEFT), CAST (RIGHT)))
            ^~~~
/usr/src/spl-0.7.5/include/sys/mutex.h:113:2: note: in expansion of macro ‘VERIFY3P’
  VERIFY3P(mutex_owner(mp), ==, NULL);   \
  ^~~~~~~~
/usr/src/spl-0.7.5/include/sys/mutex.h:63:27: note: in expansion of macro ‘ACCESS_ONCE’
 #define mutex_owner(mp)  (ACCESS_ONCE((mp)->m_owner))
                           ^~~~~~~~~~~
/usr/src/spl-0.7.5/include/sys/mutex.h:113:11: note: in expansion of macro ‘mutex_owner’
  VERIFY3P(mutex_owner(mp), ==, NULL);   \
           ^~~~~~~~~~~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:102:2: note: in expansion of macro ‘mutex_destroy’
  mutex_destroy(&rc->rc_mtx);
  ^~~~~~~~~~~~~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c: At top level:
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:106:1: error: conflicting types for ‘refcount_destroy’
 refcount_destroy(refcount_t *rc)
 ^~~~~~~~~~~~~~~~
In file included from /var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:27:0:
/var/lib/dkms/zfs/0.7.5/build/include/sys/refcount.h:68:6: note: previous declaration of ‘refcount_destroy’ was here
 void refcount_destroy(zfs_refcount_t *rc);
      ^~~~~~~~~~~~~~~~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:112:1: error: conflicting types for ‘refcount_is_zero’
 refcount_is_zero(refcount_t *rc)
 ^~~~~~~~~~~~~~~~
In file included from /var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:27:0:
/var/lib/dkms/zfs/0.7.5/build/include/sys/refcount.h:70:5: note: previous declaration of ‘refcount_is_zero’ was here
 int refcount_is_zero(zfs_refcount_t *rc);
     ^~~~~~~~~~~~~~~~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c: In function ‘refcount_is_zero’:
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:114:12: error: ‘refcount_t {aka struct refcount_struct}’ has no member named ‘rc_count’
  return (rc->rc_count == 0);
            ^~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c: At top level:
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:118:1: error: conflicting types for ‘refcount_count’
 refcount_count(refcount_t *rc)
 ^~~~~~~~~~~~~~
In file included from /var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:27:0:
/var/lib/dkms/zfs/0.7.5/build/include/sys/refcount.h:71:9: note: previous declaration of ‘refcount_count’ was here
 int64_t refcount_count(zfs_refcount_t *rc);
         ^~~~~~~~~~~~~~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c: In function ‘refcount_count’:
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:120:12: error: ‘refcount_t {aka struct refcount_struct}’ has no member named ‘rc_count’
  return (rc->rc_count);
            ^~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c: At top level:
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:124:1: error: conflicting types for ‘refcount_add_many’
 refcount_add_many(refcount_t *rc, uint64_t number, void *holder)
 ^~~~~~~~~~~~~~~~~
In file included from /var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:27:0:
/var/lib/dkms/zfs/0.7.5/build/include/sys/refcount.h:74:9: note: previous declaration of ‘refcount_add_many’ was here
 int64_t refcount_add_many(zfs_refcount_t *rc, uint64_t number,
         ^~~~~~~~~~~~~~~~~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c: In function ‘refcount_add_many’:
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:129:8: error: ‘refcount_t {aka struct refcount_struct}’ has no member named ‘rc_tracked’
  if (rc->rc_tracked) {
        ^~
In file included from /usr/src/spl-0.7.5/include/sys/sysmacros.h:31:0,
                 from /usr/src/spl-0.7.5/include/sys/types.h:29,
                 from /var/lib/dkms/zfs/0.7.5/build/include/sys/zfs_context.h:34,
                 from /var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:26:
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:134:17: error: ‘refcount_t {aka struct refcount_struct}’ has no member named ‘rc_mtx’
  mutex_enter(&rc->rc_mtx);
                 ^
/usr/src/spl-0.7.5/include/sys/debug.h:66:19: note: in definition of macro ‘VERIFY3_IMPL’
  (void)((!((TYPE)(LEFT) OP (TYPE)(RIGHT))) &&   \
                   ^~~~
/usr/src/spl-0.7.5/include/sys/debug.h:113:26: note: in expansion of macro ‘VERIFY3P’
 #define ASSERT3P(x,y,z)  VERIFY3P(x, y, z)
                          ^~~~~~~~
/usr/src/spl-0.7.5/include/sys/mutex.h:140:2: note: in expansion of macro ‘ASSERT3P’
  ASSERT3P(mutex_owner(mp), !=, current);   \
  ^~~~~~~~
/usr/src/spl-0.7.5/include/sys/mutex.h:63:27: note: in expansion of macro ‘ACCESS_ONCE’
 #define mutex_owner(mp)  (ACCESS_ONCE((mp)->m_owner))
                           ^~~~~~~~~~~
/usr/src/spl-0.7.5/include/sys/mutex.h:140:11: note: in expansion of macro ‘mutex_owner’
  ASSERT3P(mutex_owner(mp), !=, current);   \
           ^~~~~~~~~~~
/usr/src/spl-0.7.5/include/sys/mutex.h:148:25: note: in expansion of macro ‘mutex_enter_nested’
 #define mutex_enter(mp) mutex_enter_nested((mp), 0)
                         ^~~~~~~~~~~~~~~~~~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:134:2: note: in expansion of macro ‘mutex_enter’
  mutex_enter(&rc->rc_mtx);
  ^~~~~~~~~~~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:134:17: error: ‘refcount_t {aka struct refcount_struct}’ has no member named ‘rc_mtx’
  mutex_enter(&rc->rc_mtx);
                 ^
/usr/src/spl-0.7.5/include/sys/debug.h:66:19: note: in definition of macro ‘VERIFY3_IMPL’
  (void)((!((TYPE)(LEFT) OP (TYPE)(RIGHT))) &&   \
                   ^~~~
/usr/src/spl-0.7.5/include/sys/debug.h:113:26: note: in expansion of macro ‘VERIFY3P’
 #define ASSERT3P(x,y,z)  VERIFY3P(x, y, z)
                          ^~~~~~~~
/usr/src/spl-0.7.5/include/sys/mutex.h:140:2: note: in expansion of macro ‘ASSERT3P’
  ASSERT3P(mutex_owner(mp), !=, current);   \
  ^~~~~~~~
/usr/src/spl-0.7.5/include/sys/mutex.h:63:27: note: in expansion of macro ‘ACCESS_ONCE’
 #define mutex_owner(mp)  (ACCESS_ONCE((mp)->m_owner))
                           ^~~~~~~~~~~
/usr/src/spl-0.7.5/include/sys/mutex.h:140:11: note: in expansion of macro ‘mutex_owner’
  ASSERT3P(mutex_owner(mp), !=, current);   \
           ^~~~~~~~~~~
/usr/src/spl-0.7.5/include/sys/mutex.h:148:25: note: in expansion of macro ‘mutex_enter_nested’
 #define mutex_enter(mp) mutex_enter_nested((mp), 0)
                         ^~~~~~~~~~~~~~~~~~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:134:2: note: in expansion of macro ‘mutex_enter’
  mutex_enter(&rc->rc_mtx);
  ^~~~~~~~~~~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:134:17: error: ‘refcount_t {aka struct refcount_struct}’ has no member named ‘rc_mtx’
  mutex_enter(&rc->rc_mtx);
                 ^
/usr/src/spl-0.7.5/include/sys/debug.h:70:12: note: in definition of macro ‘VERIFY3_IMPL’
      CAST (LEFT), CAST (RIGHT)))
            ^~~~
/usr/src/spl-0.7.5/include/sys/debug.h:113:26: note: in expansion of macro ‘VERIFY3P’
 #define ASSERT3P(x,y,z)  VERIFY3P(x, y, z)
                          ^~~~~~~~
/usr/src/spl-0.7.5/include/sys/mutex.h:140:2: note: in expansion of macro ‘ASSERT3P’
  ASSERT3P(mutex_owner(mp), !=, current);   \
  ^~~~~~~~
/usr/src/spl-0.7.5/include/sys/mutex.h:63:27: note: in expansion of macro ‘ACCESS_ONCE’
 #define mutex_owner(mp)  (ACCESS_ONCE((mp)->m_owner))
                           ^~~~~~~~~~~
/usr/src/spl-0.7.5/include/sys/mutex.h:140:11: note: in expansion of macro ‘mutex_owner’
  ASSERT3P(mutex_owner(mp), !=, current);   \
           ^~~~~~~~~~~
/usr/src/spl-0.7.5/include/sys/mutex.h:148:25: note: in expansion of macro ‘mutex_enter_nested’
 #define mutex_enter(mp) mutex_enter_nested((mp), 0)
                         ^~~~~~~~~~~~~~~~~~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:134:2: note: in expansion of macro ‘mutex_enter’
  mutex_enter(&rc->rc_mtx);
  ^~~~~~~~~~~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:134:17: error: ‘refcount_t {aka struct refcount_struct}’ has no member named ‘rc_mtx’
  mutex_enter(&rc->rc_mtx);
                 ^
/usr/src/spl-0.7.5/include/sys/debug.h:70:12: note: in definition of macro ‘VERIFY3_IMPL’
      CAST (LEFT), CAST (RIGHT)))
            ^~~~
/usr/src/spl-0.7.5/include/sys/debug.h:113:26: note: in expansion of macro ‘VERIFY3P’
 #define ASSERT3P(x,y,z)  VERIFY3P(x, y, z)
                          ^~~~~~~~
/usr/src/spl-0.7.5/include/sys/mutex.h:140:2: note: in expansion of macro ‘ASSERT3P’
  ASSERT3P(mutex_owner(mp), !=, current);   \
  ^~~~~~~~
/usr/src/spl-0.7.5/include/sys/mutex.h:63:27: note: in expansion of macro ‘ACCESS_ONCE’
 #define mutex_owner(mp)  (ACCESS_ONCE((mp)->m_owner))
                           ^~~~~~~~~~~
/usr/src/spl-0.7.5/include/sys/mutex.h:140:11: note: in expansion of macro ‘mutex_owner’
  ASSERT3P(mutex_owner(mp), !=, current);   \
           ^~~~~~~~~~~
/usr/src/spl-0.7.5/include/sys/mutex.h:148:25: note: in expansion of macro ‘mutex_enter_nested’
 #define mutex_enter(mp) mutex_enter_nested((mp), 0)
                         ^~~~~~~~~~~~~~~~~~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:134:2: note: in expansion of macro ‘mutex_enter’
  mutex_enter(&rc->rc_mtx);
  ^~~~~~~~~~~
In file included from /usr/src/spl-0.7.5/include/sys/t_lock.h:29:0,
                 from /var/lib/dkms/zfs/0.7.5/build/include/sys/zfs_context.h:35,
                 from /var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:26:
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:134:17: error: ‘refcount_t {aka struct refcount_struct}’ has no member named ‘rc_mtx’
  mutex_enter(&rc->rc_mtx);
                 ^
/usr/src/spl-0.7.5/include/sys/mutex.h:49:24: note: in definition of macro ‘MUTEX’
 #define MUTEX(mp)  (&((mp)->m_mutex))
                        ^~
/usr/src/spl-0.7.5/include/sys/mutex.h:148:25: note: in expansion of macro ‘mutex_enter_nested’
 #define mutex_enter(mp) mutex_enter_nested((mp), 0)
                         ^~~~~~~~~~~~~~~~~~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:134:2: note: in expansion of macro ‘mutex_enter’
  mutex_enter(&rc->rc_mtx);
  ^~~~~~~~~~~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:134:17: error: ‘refcount_t {aka struct refcount_struct}’ has no member named ‘rc_mtx’
  mutex_enter(&rc->rc_mtx);
                 ^
/usr/src/spl-0.7.5/include/sys/mutex.h:144:22: note: in definition of macro ‘mutex_enter_nested’
  spl_mutex_set_owner(mp);    \
                      ^~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:134:2: note: in expansion of macro ‘mutex_enter’
  mutex_enter(&rc->rc_mtx);
  ^~~~~~~~~~~
In file included from ./include/linux/kernel.h:10:0,
                 from ./include/linux/list.h:9,
                 from ./include/linux/module.h:9,
                 from /usr/src/spl-0.7.5/include/sys/sysmacros.h:28,
                 from /usr/src/spl-0.7.5/include/sys/types.h:29,
                 from /var/lib/dkms/zfs/0.7.5/build/include/sys/zfs_context.h:34,
                 from /var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:26:
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:135:11: error: ‘refcount_t {aka struct refcount_struct}’ has no member named ‘rc_count’
  ASSERT(rc->rc_count >= 0);
           ^
./include/linux/compiler.h:77:42: note: in definition of macro ‘unlikely’
 # define unlikely(x) __builtin_expect(!!(x), 0)
                                          ^
/usr/src/spl-0.7.5/include/sys/debug.h:108:23: note: in expansion of macro ‘VERIFY’
 #define ASSERT(cond)  VERIFY(cond)
                       ^~~~~~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:135:2: note: in expansion of macro ‘ASSERT’
  ASSERT(rc->rc_count >= 0);
  ^~~~~~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:136:8: error: ‘refcount_t {aka struct refcount_struct}’ has no member named ‘rc_tracked’
  if (rc->rc_tracked)
        ^~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:137:23: error: ‘refcount_t {aka struct refcount_struct}’ has no member named ‘rc_list’
   list_insert_head(&rc->rc_list, ref);
                       ^~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:138:4: error: ‘refcount_t {aka struct refcount_struct}’ has no member named ‘rc_count’
  rc->rc_count += number;
    ^~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:139:12: error: ‘refcount_t {aka struct refcount_struct}’ has no member named ‘rc_count’
  count = rc->rc_count;
            ^~
In file included from /usr/src/spl-0.7.5/include/sys/t_lock.h:29:0,
                 from /var/lib/dkms/zfs/0.7.5/build/include/sys/zfs_context.h:35,
                 from /var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:26:
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:140:16: error: ‘refcount_t {aka struct refcount_struct}’ has no member named ‘rc_mtx’
  mutex_exit(&rc->rc_mtx);
                ^
/usr/src/spl-0.7.5/include/sys/mutex.h:171:24: note: in definition of macro ‘mutex_exit’
  spl_mutex_clear_owner(mp);    \
                        ^~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:140:16: error: ‘refcount_t {aka struct refcount_struct}’ has no member named ‘rc_mtx’
  mutex_exit(&rc->rc_mtx);
                ^
/usr/src/spl-0.7.5/include/sys/mutex.h:172:14: note: in definition of macro ‘mutex_exit’
  spin_lock(&(mp)->m_lock);    \
              ^~
  CC [M]  /var/lib/dkms/zfs/0.7.5/build/module/zfs/uberblock.o
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:140:16: error: ‘refcount_t {aka struct refcount_struct}’ has no member named ‘rc_mtx’
  mutex_exit(&rc->rc_mtx);
                ^
/usr/src/spl-0.7.5/include/sys/mutex.h:49:24: note: in definition of macro ‘MUTEX’
 #define MUTEX(mp)  (&((mp)->m_mutex))
                        ^~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:140:2: note: in expansion of macro ‘mutex_exit’
  mutex_exit(&rc->rc_mtx);
  ^~~~~~~~~~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:140:16: error: ‘refcount_t {aka struct refcount_struct}’ has no member named ‘rc_mtx’
  mutex_exit(&rc->rc_mtx);
                ^
/usr/src/spl-0.7.5/include/sys/mutex.h:176:16: note: in definition of macro ‘mutex_exit’
  spin_unlock(&(mp)->m_lock);    \
                ^~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c: At top level:
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:146:1: error: conflicting types for ‘zfs_refcount_add’
 zfs_refcount_add(refcount_t *rc, void *holder)
 ^~~~~~~~~~~~~~~~
In file included from /var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:27:0:
/var/lib/dkms/zfs/0.7.5/build/include/sys/refcount.h:72:9: note: previous declaration of ‘zfs_refcount_add’ was here
 int64_t zfs_refcount_add(zfs_refcount_t *rc, void *holder_tag);
         ^~~~~~~~~~~~~~~~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:152:1: error: conflicting types for ‘refcount_remove_many’
 refcount_remove_many(refcount_t *rc, uint64_t number, void *holder)
 ^~~~~~~~~~~~~~~~~~~~
In file included from /var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:27:0:
/var/lib/dkms/zfs/0.7.5/build/include/sys/refcount.h:76:9: note: previous declaration of ‘refcount_remove_many’ was here
 int64_t refcount_remove_many(zfs_refcount_t *rc, uint64_t number,
         ^~~~~~~~~~~~~~~~~~~~
In file included from /usr/src/spl-0.7.5/include/sys/sysmacros.h:31:0,
                 from /usr/src/spl-0.7.5/include/sys/types.h:29,
                 from /var/lib/dkms/zfs/0.7.5/build/include/sys/zfs_context.h:34,
                 from /var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:26:
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c: In function ‘refcount_remove_many’:
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:157:17: error: ‘refcount_t {aka struct refcount_struct}’ has no member named ‘rc_mtx’
  mutex_enter(&rc->rc_mtx);
                 ^
/usr/src/spl-0.7.5/include/sys/debug.h:66:19: note: in definition of macro ‘VERIFY3_IMPL’
  (void)((!((TYPE)(LEFT) OP (TYPE)(RIGHT))) &&   \
                   ^~~~
/usr/src/spl-0.7.5/include/sys/debug.h:113:26: note: in expansion of macro ‘VERIFY3P’
 #define ASSERT3P(x,y,z)  VERIFY3P(x, y, z)
                          ^~~~~~~~
/usr/src/spl-0.7.5/include/sys/mutex.h:140:2: note: in expansion of macro ‘ASSERT3P’
  ASSERT3P(mutex_owner(mp), !=, current);   \
  ^~~~~~~~
/usr/src/spl-0.7.5/include/sys/mutex.h:63:27: note: in expansion of macro ‘ACCESS_ONCE’
 #define mutex_owner(mp)  (ACCESS_ONCE((mp)->m_owner))
                           ^~~~~~~~~~~
/usr/src/spl-0.7.5/include/sys/mutex.h:140:11: note: in expansion of macro ‘mutex_owner’
  ASSERT3P(mutex_owner(mp), !=, current);   \
           ^~~~~~~~~~~
/usr/src/spl-0.7.5/include/sys/mutex.h:148:25: note: in expansion of macro ‘mutex_enter_nested’
 #define mutex_enter(mp) mutex_enter_nested((mp), 0)
                         ^~~~~~~~~~~~~~~~~~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:157:2: note: in expansion of macro ‘mutex_enter’
  mutex_enter(&rc->rc_mtx);
  ^~~~~~~~~~~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:157:17: error: ‘refcount_t {aka struct refcount_struct}’ has no member named ‘rc_mtx’
  mutex_enter(&rc->rc_mtx);
                 ^
/usr/src/spl-0.7.5/include/sys/debug.h:66:19: note: in definition of macro ‘VERIFY3_IMPL’
  (void)((!((TYPE)(LEFT) OP (TYPE)(RIGHT))) &&   \
                   ^~~~
/usr/src/spl-0.7.5/include/sys/debug.h:113:26: note: in expansion of macro ‘VERIFY3P’
 #define ASSERT3P(x,y,z)  VERIFY3P(x, y, z)
                          ^~~~~~~~
/usr/src/spl-0.7.5/include/sys/mutex.h:140:2: note: in expansion of macro ‘ASSERT3P’
  ASSERT3P(mutex_owner(mp), !=, current);   \
  ^~~~~~~~
/usr/src/spl-0.7.5/include/sys/mutex.h:63:27: note: in expansion of macro ‘ACCESS_ONCE’
 #define mutex_owner(mp)  (ACCESS_ONCE((mp)->m_owner))
                           ^~~~~~~~~~~
/usr/src/spl-0.7.5/include/sys/mutex.h:140:11: note: in expansion of macro ‘mutex_owner’
  ASSERT3P(mutex_owner(mp), !=, current);   \
           ^~~~~~~~~~~
/usr/src/spl-0.7.5/include/sys/mutex.h:148:25: note: in expansion of macro ‘mutex_enter_nested’
 #define mutex_enter(mp) mutex_enter_nested((mp), 0)
                         ^~~~~~~~~~~~~~~~~~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:157:2: note: in expansion of macro ‘mutex_enter’
  mutex_enter(&rc->rc_mtx);
  ^~~~~~~~~~~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:157:17: error: ‘refcount_t {aka struct refcount_struct}’ has no member named ‘rc_mtx’
  mutex_enter(&rc->rc_mtx);
                 ^
/usr/src/spl-0.7.5/include/sys/debug.h:70:12: note: in definition of macro ‘VERIFY3_IMPL’
      CAST (LEFT), CAST (RIGHT)))
            ^~~~
/usr/src/spl-0.7.5/include/sys/debug.h:113:26: note: in expansion of macro ‘VERIFY3P’
 #define ASSERT3P(x,y,z)  VERIFY3P(x, y, z)
                          ^~~~~~~~
/usr/src/spl-0.7.5/include/sys/mutex.h:140:2: note: in expansion of macro ‘ASSERT3P’
  ASSERT3P(mutex_owner(mp), !=, current);   \
  ^~~~~~~~
/usr/src/spl-0.7.5/include/sys/mutex.h:63:27: note: in expansion of macro ‘ACCESS_ONCE’
 #define mutex_owner(mp)  (ACCESS_ONCE((mp)->m_owner))
                           ^~~~~~~~~~~
/usr/src/spl-0.7.5/include/sys/mutex.h:140:11: note: in expansion of macro ‘mutex_owner’
  ASSERT3P(mutex_owner(mp), !=, current);   \
           ^~~~~~~~~~~
/usr/src/spl-0.7.5/include/sys/mutex.h:148:25: note: in expansion of macro ‘mutex_enter_nested’
 #define mutex_enter(mp) mutex_enter_nested((mp), 0)
                         ^~~~~~~~~~~~~~~~~~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:157:2: note: in expansion of macro ‘mutex_enter’
  mutex_enter(&rc->rc_mtx);
  ^~~~~~~~~~~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:157:17: error: ‘refcount_t {aka struct refcount_struct}’ has no member named ‘rc_mtx’
  mutex_enter(&rc->rc_mtx);
                 ^
/usr/src/spl-0.7.5/include/sys/debug.h:70:12: note: in definition of macro ‘VERIFY3_IMPL’
      CAST (LEFT), CAST (RIGHT)))
            ^~~~
/usr/src/spl-0.7.5/include/sys/debug.h:113:26: note: in expansion of macro ‘VERIFY3P’
 #define ASSERT3P(x,y,z)  VERIFY3P(x, y, z)
                          ^~~~~~~~
/usr/src/spl-0.7.5/include/sys/mutex.h:140:2: note: in expansion of macro ‘ASSERT3P’
  ASSERT3P(mutex_owner(mp), !=, current);   \
  ^~~~~~~~
/usr/src/spl-0.7.5/include/sys/mutex.h:63:27: note: in expansion of macro ‘ACCESS_ONCE’
 #define mutex_owner(mp)  (ACCESS_ONCE((mp)->m_owner))
                           ^~~~~~~~~~~
/usr/src/spl-0.7.5/include/sys/mutex.h:140:11: note: in expansion of macro ‘mutex_owner’
  ASSERT3P(mutex_owner(mp), !=, current);   \
           ^~~~~~~~~~~
/usr/src/spl-0.7.5/include/sys/mutex.h:148:25: note: in expansion of macro ‘mutex_enter_nested’
 #define mutex_enter(mp) mutex_enter_nested((mp), 0)
                         ^~~~~~~~~~~~~~~~~~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:157:2: note: in expansion of macro ‘mutex_enter’
  mutex_enter(&rc->rc_mtx);
  ^~~~~~~~~~~
In file included from /usr/src/spl-0.7.5/include/sys/t_lock.h:29:0,
                 from /var/lib/dkms/zfs/0.7.5/build/include/sys/zfs_context.h:35,
                 from /var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:26:
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:157:17: error: ‘refcount_t {aka struct refcount_struct}’ has no member named ‘rc_mtx’
  mutex_enter(&rc->rc_mtx);
                 ^
/usr/src/spl-0.7.5/include/sys/mutex.h:49:24: note: in definition of macro ‘MUTEX’
 #define MUTEX(mp)  (&((mp)->m_mutex))
                        ^~
/usr/src/spl-0.7.5/include/sys/mutex.h:148:25: note: in expansion of macro ‘mutex_enter_nested’
 #define mutex_enter(mp) mutex_enter_nested((mp), 0)
                         ^~~~~~~~~~~~~~~~~~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:157:2: note: in expansion of macro ‘mutex_enter’
  mutex_enter(&rc->rc_mtx);
  ^~~~~~~~~~~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:157:17: error: ‘refcount_t {aka struct refcount_struct}’ has no member named ‘rc_mtx’
  mutex_enter(&rc->rc_mtx);
                 ^
/usr/src/spl-0.7.5/include/sys/mutex.h:144:22: note: in definition of macro ‘mutex_enter_nested’
  spl_mutex_set_owner(mp);    \
                      ^~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:157:2: note: in expansion of macro ‘mutex_enter’
  mutex_enter(&rc->rc_mtx);
  ^~~~~~~~~~~
In file included from ./include/linux/kernel.h:10:0,
                 from ./include/linux/list.h:9,
                 from ./include/linux/module.h:9,
                 from /usr/src/spl-0.7.5/include/sys/sysmacros.h:28,
                 from /usr/src/spl-0.7.5/include/sys/types.h:29,
                 from /var/lib/dkms/zfs/0.7.5/build/include/sys/zfs_context.h:34,
                 from /var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:26:
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:158:11: error: ‘refcount_t {aka struct refcount_struct}’ has no member named ‘rc_count’
  ASSERT(rc->rc_count >= number);
           ^
./include/linux/compiler.h:77:42: note: in definition of macro ‘unlikely’
 # define unlikely(x) __builtin_expect(!!(x), 0)
                                          ^
/usr/src/spl-0.7.5/include/sys/debug.h:108:23: note: in expansion of macro ‘VERIFY’
 #define ASSERT(cond)  VERIFY(cond)
                       ^~~~~~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:158:2: note: in expansion of macro ‘ASSERT’
  ASSERT(rc->rc_count >= number);
  ^~~~~~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:160:9: error: ‘refcount_t {aka struct refcount_struct}’ has no member named ‘rc_tracked’
  if (!rc->rc_tracked) {
         ^~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:161:5: error: ‘refcount_t {aka struct refcount_struct}’ has no member named ‘rc_count’
   rc->rc_count -= number;
     ^~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:162:13: error: ‘refcount_t {aka struct refcount_struct}’ has no member named ‘rc_count’
   count = rc->rc_count;
             ^~
In file included from /usr/src/spl-0.7.5/include/sys/t_lock.h:29:0,
                 from /var/lib/dkms/zfs/0.7.5/build/include/sys/zfs_context.h:35,
                 from /var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:26:
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:163:17: error: ‘refcount_t {aka struct refcount_struct}’ has no member named ‘rc_mtx’
   mutex_exit(&rc->rc_mtx);
                 ^
/usr/src/spl-0.7.5/include/sys/mutex.h:171:24: note: in definition of macro ‘mutex_exit’
  spl_mutex_clear_owner(mp);    \
                        ^~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:163:17: error: ‘refcount_t {aka struct refcount_struct}’ has no member named ‘rc_mtx’
   mutex_exit(&rc->rc_mtx);
                 ^
/usr/src/spl-0.7.5/include/sys/mutex.h:172:14: note: in definition of macro ‘mutex_exit’
  spin_lock(&(mp)->m_lock);    \
              ^~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:163:17: error: ‘refcount_t {aka struct refcount_struct}’ has no member named ‘rc_mtx’
   mutex_exit(&rc->rc_mtx);
                 ^
/usr/src/spl-0.7.5/include/sys/mutex.h:49:24: note: in definition of macro ‘MUTEX’
 #define MUTEX(mp)  (&((mp)->m_mutex))
                        ^~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:163:3: note: in expansion of macro ‘mutex_exit’
   mutex_exit(&rc->rc_mtx);
   ^~~~~~~~~~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:163:17: error: ‘refcount_t {aka struct refcount_struct}’ has no member named ‘rc_mtx’
   mutex_exit(&rc->rc_mtx);
                 ^
/usr/src/spl-0.7.5/include/sys/mutex.h:176:16: note: in definition of macro ‘mutex_exit’
  spin_unlock(&(mp)->m_lock);    \
                ^~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:167:26: error: ‘refcount_t {aka struct refcount_struct}’ has no member named ‘rc_list’
  for (ref = list_head(&rc->rc_list); ref;
                          ^~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:168:25: error: ‘refcount_t {aka struct refcount_struct}’ has no member named ‘rc_list’
      ref = list_next(&rc->rc_list, ref)) {
                         ^~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:170:19: error: ‘refcount_t {aka struct refcount_struct}’ has no member named ‘rc_list’
    list_remove(&rc->rc_list, ref);
                   ^~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:175:25: error: ‘refcount_t {aka struct refcount_struct}’ has no member named ‘rc_removed’
     list_insert_head(&rc->rc_removed, ref);
                         ^~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:176:7: error: ‘refcount_t {aka struct refcount_struct}’ has no member named ‘rc_removed_count’
     rc->rc_removed_count++;
       ^~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:177:11: error: ‘refcount_t {aka struct refcount_struct}’ has no member named ‘rc_removed_count’
     if (rc->rc_removed_count > reference_history) {
           ^~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:178:25: error: ‘refcount_t {aka struct refcount_struct}’ has no member named ‘rc_removed’
      ref = list_tail(&rc->rc_removed);
                         ^~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:179:21: error: ‘refcount_t {aka struct refcount_struct}’ has no member named ‘rc_removed’
      list_remove(&rc->rc_removed, ref);
                     ^~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:183:8: error: ‘refcount_t {aka struct refcount_struct}’ has no member named ‘rc_removed_count’
      rc->rc_removed_count--;
        ^~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:188:6: error: ‘refcount_t {aka struct refcount_struct}’ has no member named ‘rc_count’
    rc->rc_count -= number;
      ^~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:189:14: error: ‘refcount_t {aka struct refcount_struct}’ has no member named ‘rc_count’
    count = rc->rc_count;
              ^~
In file included from /usr/src/spl-0.7.5/include/sys/t_lock.h:29:0,
                 from /var/lib/dkms/zfs/0.7.5/build/include/sys/zfs_context.h:35,
                 from /var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:26:
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:190:18: error: ‘refcount_t {aka struct refcount_struct}’ has no member named ‘rc_mtx’
    mutex_exit(&rc->rc_mtx);
                  ^
/usr/src/spl-0.7.5/include/sys/mutex.h:171:24: note: in definition of macro ‘mutex_exit’
  spl_mutex_clear_owner(mp);    \
                        ^~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:190:18: error: ‘refcount_t {aka struct refcount_struct}’ has no member named ‘rc_mtx’
    mutex_exit(&rc->rc_mtx);
                  ^
/usr/src/spl-0.7.5/include/sys/mutex.h:172:14: note: in definition of macro ‘mutex_exit’
  spin_lock(&(mp)->m_lock);    \
              ^~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:190:18: error: ‘refcount_t {aka struct refcount_struct}’ has no member named ‘rc_mtx’
    mutex_exit(&rc->rc_mtx);
                  ^
/usr/src/spl-0.7.5/include/sys/mutex.h:49:24: note: in definition of macro ‘MUTEX’
 #define MUTEX(mp)  (&((mp)->m_mutex))
                        ^~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:190:4: note: in expansion of macro ‘mutex_exit’
    mutex_exit(&rc->rc_mtx);
    ^~~~~~~~~~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:190:18: error: ‘refcount_t {aka struct refcount_struct}’ has no member named ‘rc_mtx’
    mutex_exit(&rc->rc_mtx);
                  ^
/usr/src/spl-0.7.5/include/sys/mutex.h:176:16: note: in definition of macro ‘mutex_exit’
  spin_unlock(&(mp)->m_lock);    \
                ^~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c: At top level:
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:200:1: error: conflicting types for ‘refcount_remove’
 refcount_remove(refcount_t *rc, void *holder)
 ^~~~~~~~~~~~~~~
In file included from /var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:27:0:
/var/lib/dkms/zfs/0.7.5/build/include/sys/refcount.h:73:9: note: previous declaration of ‘refcount_remove’ was here
 int64_t refcount_remove(zfs_refcount_t *rc, void *holder_tag);
         ^~~~~~~~~~~~~~~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:206:1: error: conflicting types for ‘refcount_transfer’
 refcount_transfer(refcount_t *dst, refcount_t *src)
 ^~~~~~~~~~~~~~~~~
In file included from /var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:27:0:
/var/lib/dkms/zfs/0.7.5/build/include/sys/refcount.h:78:6: note: previous declaration of ‘refcount_transfer’ was here
 void refcount_transfer(zfs_refcount_t *dst, zfs_refcount_t *src);
      ^~~~~~~~~~~~~~~~~
In file included from /usr/src/spl-0.7.5/include/sys/sysmacros.h:31:0,
                 from /usr/src/spl-0.7.5/include/sys/types.h:29,
                 from /var/lib/dkms/zfs/0.7.5/build/include/sys/zfs_context.h:34,
                 from /var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:26:
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c: In function ‘refcount_transfer’:
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:216:18: error: ‘refcount_t {aka struct refcount_struct}’ has no member named ‘rc_mtx’
  mutex_enter(&src->rc_mtx);
                  ^
/usr/src/spl-0.7.5/include/sys/debug.h:66:19: note: in definition of macro ‘VERIFY3_IMPL’
  (void)((!((TYPE)(LEFT) OP (TYPE)(RIGHT))) &&   \
                   ^~~~
/usr/src/spl-0.7.5/include/sys/debug.h:113:26: note: in expansion of macro ‘VERIFY3P’
 #define ASSERT3P(x,y,z)  VERIFY3P(x, y, z)
                          ^~~~~~~~
/usr/src/spl-0.7.5/include/sys/mutex.h:140:2: note: in expansion of macro ‘ASSERT3P’
  ASSERT3P(mutex_owner(mp), !=, current);   \
  ^~~~~~~~
/usr/src/spl-0.7.5/include/sys/mutex.h:63:27: note: in expansion of macro ‘ACCESS_ONCE’
 #define mutex_owner(mp)  (ACCESS_ONCE((mp)->m_owner))
                           ^~~~~~~~~~~
/usr/src/spl-0.7.5/include/sys/mutex.h:140:11: note: in expansion of macro ‘mutex_owner’
  ASSERT3P(mutex_owner(mp), !=, current);   \
           ^~~~~~~~~~~
/usr/src/spl-0.7.5/include/sys/mutex.h:148:25: note: in expansion of macro ‘mutex_enter_nested’
 #define mutex_enter(mp) mutex_enter_nested((mp), 0)
                         ^~~~~~~~~~~~~~~~~~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:216:2: note: in expansion of macro ‘mutex_enter’
  mutex_enter(&src->rc_mtx);
  ^~~~~~~~~~~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:216:18: error: ‘refcount_t {aka struct refcount_struct}’ has no member named ‘rc_mtx’
  mutex_enter(&src->rc_mtx);
                  ^
/usr/src/spl-0.7.5/include/sys/debug.h:66:19: note: in definition of macro ‘VERIFY3_IMPL’
  (void)((!((TYPE)(LEFT) OP (TYPE)(RIGHT))) &&   \
                   ^~~~
/usr/src/spl-0.7.5/include/sys/debug.h:113:26: note: in expansion of macro ‘VERIFY3P’
 #define ASSERT3P(x,y,z)  VERIFY3P(x, y, z)
                          ^~~~~~~~
/usr/src/spl-0.7.5/include/sys/mutex.h:140:2: note: in expansion of macro ‘ASSERT3P’
  ASSERT3P(mutex_owner(mp), !=, current);   \
  ^~~~~~~~
/usr/src/spl-0.7.5/include/sys/mutex.h:63:27: note: in expansion of macro ‘ACCESS_ONCE’
 #define mutex_owner(mp)  (ACCESS_ONCE((mp)->m_owner))
                           ^~~~~~~~~~~
/usr/src/spl-0.7.5/include/sys/mutex.h:140:11: note: in expansion of macro ‘mutex_owner’
  ASSERT3P(mutex_owner(mp), !=, current);   \
           ^~~~~~~~~~~
/usr/src/spl-0.7.5/include/sys/mutex.h:148:25: note: in expansion of macro ‘mutex_enter_nested’
 #define mutex_enter(mp) mutex_enter_nested((mp), 0)
                         ^~~~~~~~~~~~~~~~~~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:216:2: note: in expansion of macro ‘mutex_enter’
  mutex_enter(&src->rc_mtx);
  ^~~~~~~~~~~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:216:18: error: ‘refcount_t {aka struct refcount_struct}’ has no member named ‘rc_mtx’
  mutex_enter(&src->rc_mtx);
                  ^
/usr/src/spl-0.7.5/include/sys/debug.h:70:12: note: in definition of macro ‘VERIFY3_IMPL’
      CAST (LEFT), CAST (RIGHT)))
            ^~~~
/usr/src/spl-0.7.5/include/sys/debug.h:113:26: note: in expansion of macro ‘VERIFY3P’
 #define ASSERT3P(x,y,z)  VERIFY3P(x, y, z)
                          ^~~~~~~~
/usr/src/spl-0.7.5/include/sys/mutex.h:140:2: note: in expansion of macro ‘ASSERT3P’
  ASSERT3P(mutex_owner(mp), !=, current);   \
  ^~~~~~~~
/usr/src/spl-0.7.5/include/sys/mutex.h:63:27: note: in expansion of macro ‘ACCESS_ONCE’
 #define mutex_owner(mp)  (ACCESS_ONCE((mp)->m_owner))
                           ^~~~~~~~~~~
/usr/src/spl-0.7.5/include/sys/mutex.h:140:11: note: in expansion of macro ‘mutex_owner’
  ASSERT3P(mutex_owner(mp), !=, current);   \
           ^~~~~~~~~~~
/usr/src/spl-0.7.5/include/sys/mutex.h:148:25: note: in expansion of macro ‘mutex_enter_nested’
 #define mutex_enter(mp) mutex_enter_nested((mp), 0)
                         ^~~~~~~~~~~~~~~~~~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:216:2: note: in expansion of macro ‘mutex_enter’
  mutex_enter(&src->rc_mtx);
  ^~~~~~~~~~~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:216:18: error: ‘refcount_t {aka struct refcount_struct}’ has no member named ‘rc_mtx’
  mutex_enter(&src->rc_mtx);
                  ^
/usr/src/spl-0.7.5/include/sys/debug.h:70:12: note: in definition of macro ‘VERIFY3_IMPL’
      CAST (LEFT), CAST (RIGHT)))
            ^~~~
/usr/src/spl-0.7.5/include/sys/debug.h:113:26: note: in expansion of macro ‘VERIFY3P’
 #define ASSERT3P(x,y,z)  VERIFY3P(x, y, z)
                          ^~~~~~~~
/usr/src/spl-0.7.5/include/sys/mutex.h:140:2: note: in expansion of macro ‘ASSERT3P’
  ASSERT3P(mutex_owner(mp), !=, current);   \
  ^~~~~~~~
/usr/src/spl-0.7.5/include/sys/mutex.h:63:27: note: in expansion of macro ‘ACCESS_ONCE’
 #define mutex_owner(mp)  (ACCESS_ONCE((mp)->m_owner))
                           ^~~~~~~~~~~
/usr/src/spl-0.7.5/include/sys/mutex.h:140:11: note: in expansion of macro ‘mutex_owner’
  ASSERT3P(mutex_owner(mp), !=, current);   \
           ^~~~~~~~~~~
/usr/src/spl-0.7.5/include/sys/mutex.h:148:25: note: in expansion of macro ‘mutex_enter_nested’
 #define mutex_enter(mp) mutex_enter_nested((mp), 0)
                         ^~~~~~~~~~~~~~~~~~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:216:2: note: in expansion of macro ‘mutex_enter’
  mutex_enter(&src->rc_mtx);
  ^~~~~~~~~~~
In file included from /usr/src/spl-0.7.5/include/sys/t_lock.h:29:0,
                 from /var/lib/dkms/zfs/0.7.5/build/include/sys/zfs_context.h:35,
                 from /var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:26:
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:216:18: error: ‘refcount_t {aka struct refcount_struct}’ has no member named ‘rc_mtx’
  mutex_enter(&src->rc_mtx);
                  ^
/usr/src/spl-0.7.5/include/sys/mutex.h:49:24: note: in definition of macro ‘MUTEX’
 #define MUTEX(mp)  (&((mp)->m_mutex))
                        ^~
/usr/src/spl-0.7.5/include/sys/mutex.h:148:25: note: in expansion of macro ‘mutex_enter_nested’
 #define mutex_enter(mp) mutex_enter_nested((mp), 0)
                         ^~~~~~~~~~~~~~~~~~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:216:2: note: in expansion of macro ‘mutex_enter’
  mutex_enter(&src->rc_mtx);
  ^~~~~~~~~~~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:216:18: error: ‘refcount_t {aka struct refcount_struct}’ has no member named ‘rc_mtx’
  mutex_enter(&src->rc_mtx);
                  ^
/usr/src/spl-0.7.5/include/sys/mutex.h:144:22: note: in definition of macro ‘mutex_enter_nested’
  spl_mutex_set_owner(mp);    \
                      ^~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:216:2: note: in expansion of macro ‘mutex_enter’
  mutex_enter(&src->rc_mtx);
  ^~~~~~~~~~~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:217:13: error: ‘refcount_t {aka struct refcount_struct}’ has no member named ‘rc_count’
  count = src->rc_count;
             ^~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:218:21: error: ‘refcount_t {aka struct refcount_struct}’ has no member named ‘rc_removed_count’
  removed_count = src->rc_removed_count;
                     ^~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:219:5: error: ‘refcount_t {aka struct refcount_struct}’ has no member named ‘rc_count’
  src->rc_count = 0;
     ^~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:220:5: error: ‘refcount_t {aka struct refcount_struct}’ has no member named ‘rc_removed_count’
  src->rc_removed_count = 0;
     ^~
In file included from /var/lib/dkms/zfs/0.7.5/build/include/sys/zfs_context.h:55:0,
                 from /var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:26:
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:221:28: error: ‘refcount_t {aka struct refcount_struct}’ has no member named ‘rc_list’
  list_move_tail(&list, &src->rc_list);
                            ^
/usr/src/spl-0.7.5/include/sys/list.h:204:58: note: in definition of macro ‘list_move_tail’
 #define list_move_tail(dst, src) spl_list_move_tail(dst, src)
                                                          ^~~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:222:31: error: ‘refcount_t {aka struct refcount_struct}’ has no member named ‘rc_removed’
  list_move_tail(&removed, &src->rc_removed);
                               ^
/usr/src/spl-0.7.5/include/sys/list.h:204:58: note: in definition of macro ‘list_move_tail’
 #define list_move_tail(dst, src) spl_list_move_tail(dst, src)
                                                          ^~~
In file included from /usr/src/spl-0.7.5/include/sys/t_lock.h:29:0,
                 from /var/lib/dkms/zfs/0.7.5/build/include/sys/zfs_context.h:35,
                 from /var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:26:
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:223:17: error: ‘refcount_t {aka struct refcount_struct}’ has no member named ‘rc_mtx’
  mutex_exit(&src->rc_mtx);
                 ^
/usr/src/spl-0.7.5/include/sys/mutex.h:171:24: note: in definition of macro ‘mutex_exit’
  spl_mutex_clear_owner(mp);    \
                        ^~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:223:17: error: ‘refcount_t {aka struct refcount_struct}’ has no member named ‘rc_mtx’
  mutex_exit(&src->rc_mtx);
                 ^
/usr/src/spl-0.7.5/include/sys/mutex.h:172:14: note: in definition of macro ‘mutex_exit’
  spin_lock(&(mp)->m_lock);    \
              ^~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:223:17: error: ‘refcount_t {aka struct refcount_struct}’ has no member named ‘rc_mtx’
  mutex_exit(&src->rc_mtx);
                 ^
/usr/src/spl-0.7.5/include/sys/mutex.h:49:24: note: in definition of macro ‘MUTEX’
 #define MUTEX(mp)  (&((mp)->m_mutex))
                        ^~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:223:2: note: in expansion of macro ‘mutex_exit’
  mutex_exit(&src->rc_mtx);
  ^~~~~~~~~~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:223:17: error: ‘refcount_t {aka struct refcount_struct}’ has no member named ‘rc_mtx’
  mutex_exit(&src->rc_mtx);
                 ^
/usr/src/spl-0.7.5/include/sys/mutex.h:176:16: note: in definition of macro ‘mutex_exit’
  spin_unlock(&(mp)->m_lock);    \
                ^~
In file included from /usr/src/spl-0.7.5/include/sys/sysmacros.h:31:0,
                 from /usr/src/spl-0.7.5/include/sys/types.h:29,
                 from /var/lib/dkms/zfs/0.7.5/build/include/sys/zfs_context.h:34,
                 from /var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:26:
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:225:18: error: ‘refcount_t {aka struct refcount_struct}’ has no member named ‘rc_mtx’
  mutex_enter(&dst->rc_mtx);
                  ^
/usr/src/spl-0.7.5/include/sys/debug.h:66:19: note: in definition of macro ‘VERIFY3_IMPL’
  (void)((!((TYPE)(LEFT) OP (TYPE)(RIGHT))) &&   \
                   ^~~~
/usr/src/spl-0.7.5/include/sys/debug.h:113:26: note: in expansion of macro ‘VERIFY3P’
 #define ASSERT3P(x,y,z)  VERIFY3P(x, y, z)
                          ^~~~~~~~
/usr/src/spl-0.7.5/include/sys/mutex.h:140:2: note: in expansion of macro ‘ASSERT3P’
  ASSERT3P(mutex_owner(mp), !=, current);   \
  ^~~~~~~~
/usr/src/spl-0.7.5/include/sys/mutex.h:63:27: note: in expansion of macro ‘ACCESS_ONCE’
 #define mutex_owner(mp)  (ACCESS_ONCE((mp)->m_owner))
                           ^~~~~~~~~~~
/usr/src/spl-0.7.5/include/sys/mutex.h:140:11: note: in expansion of macro ‘mutex_owner’
  ASSERT3P(mutex_owner(mp), !=, current);   \
           ^~~~~~~~~~~
/usr/src/spl-0.7.5/include/sys/mutex.h:148:25: note: in expansion of macro ‘mutex_enter_nested’
 #define mutex_enter(mp) mutex_enter_nested((mp), 0)
                         ^~~~~~~~~~~~~~~~~~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:225:2: note: in expansion of macro ‘mutex_enter’
  mutex_enter(&dst->rc_mtx);
  ^~~~~~~~~~~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:225:18: error: ‘refcount_t {aka struct refcount_struct}’ has no member named ‘rc_mtx’
  mutex_enter(&dst->rc_mtx);
                  ^
/usr/src/spl-0.7.5/include/sys/debug.h:66:19: note: in definition of macro ‘VERIFY3_IMPL’
  (void)((!((TYPE)(LEFT) OP (TYPE)(RIGHT))) &&   \
                   ^~~~
/usr/src/spl-0.7.5/include/sys/debug.h:113:26: note: in expansion of macro ‘VERIFY3P’
 #define ASSERT3P(x,y,z)  VERIFY3P(x, y, z)
                          ^~~~~~~~
/usr/src/spl-0.7.5/include/sys/mutex.h:140:2: note: in expansion of macro ‘ASSERT3P’
  ASSERT3P(mutex_owner(mp), !=, current);   \
  ^~~~~~~~
/usr/src/spl-0.7.5/include/sys/mutex.h:63:27: note: in expansion of macro ‘ACCESS_ONCE’
 #define mutex_owner(mp)  (ACCESS_ONCE((mp)->m_owner))
                           ^~~~~~~~~~~
/usr/src/spl-0.7.5/include/sys/mutex.h:140:11: note: in expansion of macro ‘mutex_owner’
  ASSERT3P(mutex_owner(mp), !=, current);   \
           ^~~~~~~~~~~
/usr/src/spl-0.7.5/include/sys/mutex.h:148:25: note: in expansion of macro ‘mutex_enter_nested’
 #define mutex_enter(mp) mutex_enter_nested((mp), 0)
                         ^~~~~~~~~~~~~~~~~~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:225:2: note: in expansion of macro ‘mutex_enter’
  mutex_enter(&dst->rc_mtx);
  ^~~~~~~~~~~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:225:18: error: ‘refcount_t {aka struct refcount_struct}’ has no member named ‘rc_mtx’
  mutex_enter(&dst->rc_mtx);
                  ^
/usr/src/spl-0.7.5/include/sys/debug.h:70:12: note: in definition of macro ‘VERIFY3_IMPL’
      CAST (LEFT), CAST (RIGHT)))
            ^~~~
/usr/src/spl-0.7.5/include/sys/debug.h:113:26: note: in expansion of macro ‘VERIFY3P’
 #define ASSERT3P(x,y,z)  VERIFY3P(x, y, z)
                          ^~~~~~~~
/usr/src/spl-0.7.5/include/sys/mutex.h:140:2: note: in expansion of macro ‘ASSERT3P’
  ASSERT3P(mutex_owner(mp), !=, current);   \
  ^~~~~~~~
/usr/src/spl-0.7.5/include/sys/mutex.h:63:27: note: in expansion of macro ‘ACCESS_ONCE’
 #define mutex_owner(mp)  (ACCESS_ONCE((mp)->m_owner))
                           ^~~~~~~~~~~
/usr/src/spl-0.7.5/include/sys/mutex.h:140:11: note: in expansion of macro ‘mutex_owner’
  ASSERT3P(mutex_owner(mp), !=, current);   \
           ^~~~~~~~~~~
/usr/src/spl-0.7.5/include/sys/mutex.h:148:25: note: in expansion of macro ‘mutex_enter_nested’
 #define mutex_enter(mp) mutex_enter_nested((mp), 0)
                         ^~~~~~~~~~~~~~~~~~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:225:2: note: in expansion of macro ‘mutex_enter’
  mutex_enter(&dst->rc_mtx);
  ^~~~~~~~~~~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:225:18: error: ‘refcount_t {aka struct refcount_struct}’ has no member named ‘rc_mtx’
  mutex_enter(&dst->rc_mtx);
                  ^
/usr/src/spl-0.7.5/include/sys/debug.h:70:12: note: in definition of macro ‘VERIFY3_IMPL’
      CAST (LEFT), CAST (RIGHT)))
            ^~~~
/usr/src/spl-0.7.5/include/sys/debug.h:113:26: note: in expansion of macro ‘VERIFY3P’
 #define ASSERT3P(x,y,z)  VERIFY3P(x, y, z)
                          ^~~~~~~~
/usr/src/spl-0.7.5/include/sys/mutex.h:140:2: note: in expansion of macro ‘ASSERT3P’
  ASSERT3P(mutex_owner(mp), !=, current);   \
  ^~~~~~~~
/usr/src/spl-0.7.5/include/sys/mutex.h:63:27: note: in expansion of macro ‘ACCESS_ONCE’
 #define mutex_owner(mp)  (ACCESS_ONCE((mp)->m_owner))
                           ^~~~~~~~~~~
/usr/src/spl-0.7.5/include/sys/mutex.h:140:11: note: in expansion of macro ‘mutex_owner’
  ASSERT3P(mutex_owner(mp), !=, current);   \
           ^~~~~~~~~~~
/usr/src/spl-0.7.5/include/sys/mutex.h:148:25: note: in expansion of macro ‘mutex_enter_nested’
 #define mutex_enter(mp) mutex_enter_nested((mp), 0)
                         ^~~~~~~~~~~~~~~~~~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:225:2: note: in expansion of macro ‘mutex_enter’
  mutex_enter(&dst->rc_mtx);
  ^~~~~~~~~~~
In file included from /usr/src/spl-0.7.5/include/sys/t_lock.h:29:0,
                 from /var/lib/dkms/zfs/0.7.5/build/include/sys/zfs_context.h:35,
                 from /var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:26:
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:225:18: error: ‘refcount_t {aka struct refcount_struct}’ has no member named ‘rc_mtx’
  mutex_enter(&dst->rc_mtx);
                  ^
/usr/src/spl-0.7.5/include/sys/mutex.h:49:24: note: in definition of macro ‘MUTEX’
 #define MUTEX(mp)  (&((mp)->m_mutex))
                        ^~
/usr/src/spl-0.7.5/include/sys/mutex.h:148:25: note: in expansion of macro ‘mutex_enter_nested’
 #define mutex_enter(mp) mutex_enter_nested((mp), 0)
                         ^~~~~~~~~~~~~~~~~~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:225:2: note: in expansion of macro ‘mutex_enter’
  mutex_enter(&dst->rc_mtx);
  ^~~~~~~~~~~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:225:18: error: ‘refcount_t {aka struct refcount_struct}’ has no member named ‘rc_mtx’
  mutex_enter(&dst->rc_mtx);
                  ^
/usr/src/spl-0.7.5/include/sys/mutex.h:144:22: note: in definition of macro ‘mutex_enter_nested’
  spl_mutex_set_owner(mp);    \
                      ^~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:225:2: note: in expansion of macro ‘mutex_enter’
  mutex_enter(&dst->rc_mtx);
  ^~~~~~~~~~~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:226:5: error: ‘refcount_t {aka struct refcount_struct}’ has no member named ‘rc_count’
  dst->rc_count += count;
     ^~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:227:5: error: ‘refcount_t {aka struct refcount_struct}’ has no member named ‘rc_removed_count’
  dst->rc_removed_count += removed_count;
     ^~
In file included from /var/lib/dkms/zfs/0.7.5/build/include/sys/zfs_context.h:55:0,
                 from /var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:26:
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:228:21: error: ‘refcount_t {aka struct refcount_struct}’ has no member named ‘rc_list’
  list_move_tail(&dst->rc_list, &list);
                     ^
/usr/src/spl-0.7.5/include/sys/list.h:204:53: note: in definition of macro ‘list_move_tail’
 #define list_move_tail(dst, src) spl_list_move_tail(dst, src)
                                                     ^~~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:229:21: error: ‘refcount_t {aka struct refcount_struct}’ has no member named ‘rc_removed’
  list_move_tail(&dst->rc_removed, &removed);
                     ^
/usr/src/spl-0.7.5/include/sys/list.h:204:53: note: in definition of macro ‘list_move_tail’
 #define list_move_tail(dst, src) spl_list_move_tail(dst, src)
                                                     ^~~
In file included from /usr/src/spl-0.7.5/include/sys/t_lock.h:29:0,
                 from /var/lib/dkms/zfs/0.7.5/build/include/sys/zfs_context.h:35,
                 from /var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:26:
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:230:17: error: ‘refcount_t {aka struct refcount_struct}’ has no member named ‘rc_mtx’
  mutex_exit(&dst->rc_mtx);
                 ^
/usr/src/spl-0.7.5/include/sys/mutex.h:171:24: note: in definition of macro ‘mutex_exit’
  spl_mutex_clear_owner(mp);    \
                        ^~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:230:17: error: ‘refcount_t {aka struct refcount_struct}’ has no member named ‘rc_mtx’
  mutex_exit(&dst->rc_mtx);
                 ^
/usr/src/spl-0.7.5/include/sys/mutex.h:172:14: note: in definition of macro ‘mutex_exit’
  spin_lock(&(mp)->m_lock);    \
              ^~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:230:17: error: ‘refcount_t {aka struct refcount_struct}’ has no member named ‘rc_mtx’
  mutex_exit(&dst->rc_mtx);
                 ^
/usr/src/spl-0.7.5/include/sys/mutex.h:49:24: note: in definition of macro ‘MUTEX’
 #define MUTEX(mp)  (&((mp)->m_mutex))
                        ^~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:230:2: note: in expansion of macro ‘mutex_exit’
  mutex_exit(&dst->rc_mtx);
  ^~~~~~~~~~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:230:17: error: ‘refcount_t {aka struct refcount_struct}’ has no member named ‘rc_mtx’
  mutex_exit(&dst->rc_mtx);
                 ^
/usr/src/spl-0.7.5/include/sys/mutex.h:176:16: note: in definition of macro ‘mutex_exit’
  spin_unlock(&(mp)->m_lock);    \
                ^~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c: At top level:
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:237:1: error: conflicting types for ‘refcount_transfer_ownership’
 refcount_transfer_ownership(refcount_t *rc, void *current_holder,
 ^~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:27:0:
/var/lib/dkms/zfs/0.7.5/build/include/sys/refcount.h:79:6: note: previous declaration of ‘refcount_transfer_ownership’ was here
 void refcount_transfer_ownership(zfs_refcount_t *, void *, void *);
      ^~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/src/spl-0.7.5/include/sys/sysmacros.h:31:0,
                 from /usr/src/spl-0.7.5/include/sys/types.h:29,
                 from /var/lib/dkms/zfs/0.7.5/build/include/sys/zfs_context.h:34,
                 from /var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:26:
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c: In function ‘refcount_transfer_ownership’:
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:243:17: error: ‘refcount_t {aka struct refcount_struct}’ has no member named ‘rc_mtx’
  mutex_enter(&rc->rc_mtx);
                 ^
/usr/src/spl-0.7.5/include/sys/debug.h:66:19: note: in definition of macro ‘VERIFY3_IMPL’
  (void)((!((TYPE)(LEFT) OP (TYPE)(RIGHT))) &&   \
                   ^~~~
/usr/src/spl-0.7.5/include/sys/debug.h:113:26: note: in expansion of macro ‘VERIFY3P’
 #define ASSERT3P(x,y,z)  VERIFY3P(x, y, z)
                          ^~~~~~~~
/usr/src/spl-0.7.5/include/sys/mutex.h:140:2: note: in expansion of macro ‘ASSERT3P’
  ASSERT3P(mutex_owner(mp), !=, current);   \
  ^~~~~~~~
/usr/src/spl-0.7.5/include/sys/mutex.h:63:27: note: in expansion of macro ‘ACCESS_ONCE’
 #define mutex_owner(mp)  (ACCESS_ONCE((mp)->m_owner))
                           ^~~~~~~~~~~
/usr/src/spl-0.7.5/include/sys/mutex.h:140:11: note: in expansion of macro ‘mutex_owner’
  ASSERT3P(mutex_owner(mp), !=, current);   \
           ^~~~~~~~~~~
/usr/src/spl-0.7.5/include/sys/mutex.h:148:25: note: in expansion of macro ‘mutex_enter_nested’
 #define mutex_enter(mp) mutex_enter_nested((mp), 0)
                         ^~~~~~~~~~~~~~~~~~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:243:2: note: in expansion of macro ‘mutex_enter’
  mutex_enter(&rc->rc_mtx);
  ^~~~~~~~~~~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:243:17: error: ‘refcount_t {aka struct refcount_struct}’ has no member named ‘rc_mtx’
  mutex_enter(&rc->rc_mtx);
                 ^
/usr/src/spl-0.7.5/include/sys/debug.h:66:19: note: in definition of macro ‘VERIFY3_IMPL’
  (void)((!((TYPE)(LEFT) OP (TYPE)(RIGHT))) &&   \
                   ^~~~
/usr/src/spl-0.7.5/include/sys/debug.h:113:26: note: in expansion of macro ‘VERIFY3P’
 #define ASSERT3P(x,y,z)  VERIFY3P(x, y, z)
                          ^~~~~~~~
/usr/src/spl-0.7.5/include/sys/mutex.h:140:2: note: in expansion of macro ‘ASSERT3P’
  ASSERT3P(mutex_owner(mp), !=, current);   \
  ^~~~~~~~
/usr/src/spl-0.7.5/include/sys/mutex.h:63:27: note: in expansion of macro ‘ACCESS_ONCE’
 #define mutex_owner(mp)  (ACCESS_ONCE((mp)->m_owner))
                           ^~~~~~~~~~~
/usr/src/spl-0.7.5/include/sys/mutex.h:140:11: note: in expansion of macro ‘mutex_owner’
  ASSERT3P(mutex_owner(mp), !=, current);   \
           ^~~~~~~~~~~
/usr/src/spl-0.7.5/include/sys/mutex.h:148:25: note: in expansion of macro ‘mutex_enter_nested’
 #define mutex_enter(mp) mutex_enter_nested((mp), 0)
                         ^~~~~~~~~~~~~~~~~~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:243:2: note: in expansion of macro ‘mutex_enter’
  mutex_enter(&rc->rc_mtx);
  ^~~~~~~~~~~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:243:17: error: ‘refcount_t {aka struct refcount_struct}’ has no member named ‘rc_mtx’
  mutex_enter(&rc->rc_mtx);
                 ^
/usr/src/spl-0.7.5/include/sys/debug.h:70:12: note: in definition of macro ‘VERIFY3_IMPL’
      CAST (LEFT), CAST (RIGHT)))
            ^~~~
/usr/src/spl-0.7.5/include/sys/debug.h:113:26: note: in expansion of macro ‘VERIFY3P’
 #define ASSERT3P(x,y,z)  VERIFY3P(x, y, z)
                          ^~~~~~~~
/usr/src/spl-0.7.5/include/sys/mutex.h:140:2: note: in expansion of macro ‘ASSERT3P’
  ASSERT3P(mutex_owner(mp), !=, current);   \
  ^~~~~~~~
/usr/src/spl-0.7.5/include/sys/mutex.h:63:27: note: in expansion of macro ‘ACCESS_ONCE’
 #define mutex_owner(mp)  (ACCESS_ONCE((mp)->m_owner))
                           ^~~~~~~~~~~
/usr/src/spl-0.7.5/include/sys/mutex.h:140:11: note: in expansion of macro ‘mutex_owner’
  ASSERT3P(mutex_owner(mp), !=, current);   \
           ^~~~~~~~~~~
/usr/src/spl-0.7.5/include/sys/mutex.h:148:25: note: in expansion of macro ‘mutex_enter_nested’
 #define mutex_enter(mp) mutex_enter_nested((mp), 0)
                         ^~~~~~~~~~~~~~~~~~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:243:2: note: in expansion of macro ‘mutex_enter’
  mutex_enter(&rc->rc_mtx);
  ^~~~~~~~~~~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:243:17: error: ‘refcount_t {aka struct refcount_struct}’ has no member named ‘rc_mtx’
  mutex_enter(&rc->rc_mtx);
                 ^
/usr/src/spl-0.7.5/include/sys/debug.h:70:12: note: in definition of macro ‘VERIFY3_IMPL’
      CAST (LEFT), CAST (RIGHT)))
            ^~~~
/usr/src/spl-0.7.5/include/sys/debug.h:113:26: note: in expansion of macro ‘VERIFY3P’
 #define ASSERT3P(x,y,z)  VERIFY3P(x, y, z)
                          ^~~~~~~~
/usr/src/spl-0.7.5/include/sys/mutex.h:140:2: note: in expansion of macro ‘ASSERT3P’
  ASSERT3P(mutex_owner(mp), !=, current);   \
  ^~~~~~~~
/usr/src/spl-0.7.5/include/sys/mutex.h:63:27: note: in expansion of macro ‘ACCESS_ONCE’
 #define mutex_owner(mp)  (ACCESS_ONCE((mp)->m_owner))
                           ^~~~~~~~~~~
/usr/src/spl-0.7.5/include/sys/mutex.h:140:11: note: in expansion of macro ‘mutex_owner’
  ASSERT3P(mutex_owner(mp), !=, current);   \
           ^~~~~~~~~~~
/usr/src/spl-0.7.5/include/sys/mutex.h:148:25: note: in expansion of macro ‘mutex_enter_nested’
 #define mutex_enter(mp) mutex_enter_nested((mp), 0)
                         ^~~~~~~~~~~~~~~~~~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:243:2: note: in expansion of macro ‘mutex_enter’
  mutex_enter(&rc->rc_mtx);
  ^~~~~~~~~~~
In file included from /usr/src/spl-0.7.5/include/sys/t_lock.h:29:0,
                 from /var/lib/dkms/zfs/0.7.5/build/include/sys/zfs_context.h:35,
                 from /var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:26:
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:243:17: error: ‘refcount_t {aka struct refcount_struct}’ has no member named ‘rc_mtx’
  mutex_enter(&rc->rc_mtx);
                 ^
/usr/src/spl-0.7.5/include/sys/mutex.h:49:24: note: in definition of macro ‘MUTEX’
 #define MUTEX(mp)  (&((mp)->m_mutex))
                        ^~
/usr/src/spl-0.7.5/include/sys/mutex.h:148:25: note: in expansion of macro ‘mutex_enter_nested’
 #define mutex_enter(mp) mutex_enter_nested((mp), 0)
                         ^~~~~~~~~~~~~~~~~~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:243:2: note: in expansion of macro ‘mutex_enter’
  mutex_enter(&rc->rc_mtx);
  ^~~~~~~~~~~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:243:17: error: ‘refcount_t {aka struct refcount_struct}’ has no member named ‘rc_mtx’
  mutex_enter(&rc->rc_mtx);
                 ^
/usr/src/spl-0.7.5/include/sys/mutex.h:144:22: note: in definition of macro ‘mutex_enter_nested’
  spl_mutex_set_owner(mp);    \
                      ^~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:243:2: note: in expansion of macro ‘mutex_enter’
  mutex_enter(&rc->rc_mtx);
  ^~~~~~~~~~~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:244:9: error: ‘refcount_t {aka struct refcount_struct}’ has no member named ‘rc_tracked’
  if (!rc->rc_tracked) {
         ^~
In file included from /usr/src/spl-0.7.5/include/sys/t_lock.h:29:0,
                 from /var/lib/dkms/zfs/0.7.5/build/include/sys/zfs_context.h:35,
                 from /var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:26:
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:245:17: error: ‘refcount_t {aka struct refcount_struct}’ has no member named ‘rc_mtx’
   mutex_exit(&rc->rc_mtx);
                 ^
/usr/src/spl-0.7.5/include/sys/mutex.h:171:24: note: in definition of macro ‘mutex_exit’
  spl_mutex_clear_owner(mp);    \
                        ^~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:245:17: error: ‘refcount_t {aka struct refcount_struct}’ has no member named ‘rc_mtx’
   mutex_exit(&rc->rc_mtx);
                 ^
/usr/src/spl-0.7.5/include/sys/mutex.h:172:14: note: in definition of macro ‘mutex_exit’
  spin_lock(&(mp)->m_lock);    \
              ^~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:245:17: error: ‘refcount_t {aka struct refcount_struct}’ has no member named ‘rc_mtx’
   mutex_exit(&rc->rc_mtx);
                 ^
/usr/src/spl-0.7.5/include/sys/mutex.h:49:24: note: in definition of macro ‘MUTEX’
 #define MUTEX(mp)  (&((mp)->m_mutex))
                        ^~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:245:3: note: in expansion of macro ‘mutex_exit’
   mutex_exit(&rc->rc_mtx);
   ^~~~~~~~~~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:245:17: error: ‘refcount_t {aka struct refcount_struct}’ has no member named ‘rc_mtx’
   mutex_exit(&rc->rc_mtx);
                 ^
/usr/src/spl-0.7.5/include/sys/mutex.h:176:16: note: in definition of macro ‘mutex_exit’
  spin_unlock(&(mp)->m_lock);    \
                ^~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:249:26: error: ‘refcount_t {aka struct refcount_struct}’ has no member named ‘rc_list’
  for (ref = list_head(&rc->rc_list); ref;
                          ^~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:250:25: error: ‘refcount_t {aka struct refcount_struct}’ has no member named ‘rc_list’
      ref = list_next(&rc->rc_list, ref)) {
                         ^~
In file included from /usr/src/spl-0.7.5/include/sys/t_lock.h:29:0,
                 from /var/lib/dkms/zfs/0.7.5/build/include/sys/zfs_context.h:35,
                 from /var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:26:
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:258:16: error: ‘refcount_t {aka struct refcount_struct}’ has no member named ‘rc_mtx’
  mutex_exit(&rc->rc_mtx);
                ^
/usr/src/spl-0.7.5/include/sys/mutex.h:171:24: note: in definition of macro ‘mutex_exit’
  spl_mutex_clear_owner(mp);    \
                        ^~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:258:16: error: ‘refcount_t {aka struct refcount_struct}’ has no member named ‘rc_mtx’
  mutex_exit(&rc->rc_mtx);
                ^
/usr/src/spl-0.7.5/include/sys/mutex.h:172:14: note: in definition of macro ‘mutex_exit’
  spin_lock(&(mp)->m_lock);    \
              ^~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:258:16: error: ‘refcount_t {aka struct refcount_struct}’ has no member named ‘rc_mtx’
  mutex_exit(&rc->rc_mtx);
                ^
/usr/src/spl-0.7.5/include/sys/mutex.h:49:24: note: in definition of macro ‘MUTEX’
 #define MUTEX(mp)  (&((mp)->m_mutex))
                        ^~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:258:2: note: in expansion of macro ‘mutex_exit’
  mutex_exit(&rc->rc_mtx);
  ^~~~~~~~~~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:258:16: error: ‘refcount_t {aka struct refcount_struct}’ has no member named ‘rc_mtx’
  mutex_exit(&rc->rc_mtx);
                ^
/usr/src/spl-0.7.5/include/sys/mutex.h:176:16: note: in definition of macro ‘mutex_exit’
  spin_unlock(&(mp)->m_lock);    \
                ^~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c: At top level:
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:267:1: error: conflicting types for ‘refcount_held’
 refcount_held(refcount_t *rc, void *holder)
 ^~~~~~~~~~~~~
In file included from /var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:27:0:
/var/lib/dkms/zfs/0.7.5/build/include/sys/refcount.h:80:11: note: previous declaration of ‘refcount_held’ was here
 boolean_t refcount_held(zfs_refcount_t *, void *);
           ^~~~~~~~~~~~~
In file included from /usr/src/spl-0.7.5/include/sys/sysmacros.h:31:0,
                 from /usr/src/spl-0.7.5/include/sys/types.h:29,
                 from /var/lib/dkms/zfs/0.7.5/build/include/sys/zfs_context.h:34,
                 from /var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:26:
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c: In function ‘refcount_held’:
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:271:17: error: ‘refcount_t {aka struct refcount_struct}’ has no member named ‘rc_mtx’
  mutex_enter(&rc->rc_mtx);
                 ^
/usr/src/spl-0.7.5/include/sys/debug.h:66:19: note: in definition of macro ‘VERIFY3_IMPL’
  (void)((!((TYPE)(LEFT) OP (TYPE)(RIGHT))) &&   \
                   ^~~~
/usr/src/spl-0.7.5/include/sys/debug.h:113:26: note: in expansion of macro ‘VERIFY3P’
 #define ASSERT3P(x,y,z)  VERIFY3P(x, y, z)
                          ^~~~~~~~
/usr/src/spl-0.7.5/include/sys/mutex.h:140:2: note: in expansion of macro ‘ASSERT3P’
  ASSERT3P(mutex_owner(mp), !=, current);   \
  ^~~~~~~~
/usr/src/spl-0.7.5/include/sys/mutex.h:63:27: note: in expansion of macro ‘ACCESS_ONCE’
 #define mutex_owner(mp)  (ACCESS_ONCE((mp)->m_owner))
                           ^~~~~~~~~~~
/usr/src/spl-0.7.5/include/sys/mutex.h:140:11: note: in expansion of macro ‘mutex_owner’
  ASSERT3P(mutex_owner(mp), !=, current);   \
           ^~~~~~~~~~~
/usr/src/spl-0.7.5/include/sys/mutex.h:148:25: note: in expansion of macro ‘mutex_enter_nested’
 #define mutex_enter(mp) mutex_enter_nested((mp), 0)
                         ^~~~~~~~~~~~~~~~~~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:271:2: note: in expansion of macro ‘mutex_enter’
  mutex_enter(&rc->rc_mtx);
  ^~~~~~~~~~~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:271:17: error: ‘refcount_t {aka struct refcount_struct}’ has no member named ‘rc_mtx’
  mutex_enter(&rc->rc_mtx);
                 ^
/usr/src/spl-0.7.5/include/sys/debug.h:66:19: note: in definition of macro ‘VERIFY3_IMPL’
  (void)((!((TYPE)(LEFT) OP (TYPE)(RIGHT))) &&   \
                   ^~~~
/usr/src/spl-0.7.5/include/sys/debug.h:113:26: note: in expansion of macro ‘VERIFY3P’
 #define ASSERT3P(x,y,z)  VERIFY3P(x, y, z)
                          ^~~~~~~~
/usr/src/spl-0.7.5/include/sys/mutex.h:140:2: note: in expansion of macro ‘ASSERT3P’
  ASSERT3P(mutex_owner(mp), !=, current);   \
  ^~~~~~~~
/usr/src/spl-0.7.5/include/sys/mutex.h:63:27: note: in expansion of macro ‘ACCESS_ONCE’
 #define mutex_owner(mp)  (ACCESS_ONCE((mp)->m_owner))
                           ^~~~~~~~~~~
/usr/src/spl-0.7.5/include/sys/mutex.h:140:11: note: in expansion of macro ‘mutex_owner’
  ASSERT3P(mutex_owner(mp), !=, current);   \
           ^~~~~~~~~~~
/usr/src/spl-0.7.5/include/sys/mutex.h:148:25: note: in expansion of macro ‘mutex_enter_nested’
 #define mutex_enter(mp) mutex_enter_nested((mp), 0)
                         ^~~~~~~~~~~~~~~~~~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:271:2: note: in expansion of macro ‘mutex_enter’
  mutex_enter(&rc->rc_mtx);
  ^~~~~~~~~~~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:271:17: error: ‘refcount_t {aka struct refcount_struct}’ has no member named ‘rc_mtx’
  mutex_enter(&rc->rc_mtx);
                 ^
/usr/src/spl-0.7.5/include/sys/debug.h:70:12: note: in definition of macro ‘VERIFY3_IMPL’
      CAST (LEFT), CAST (RIGHT)))
            ^~~~
/usr/src/spl-0.7.5/include/sys/debug.h:113:26: note: in expansion of macro ‘VERIFY3P’
 #define ASSERT3P(x,y,z)  VERIFY3P(x, y, z)
                          ^~~~~~~~
/usr/src/spl-0.7.5/include/sys/mutex.h:140:2: note: in expansion of macro ‘ASSERT3P’
  ASSERT3P(mutex_owner(mp), !=, current);   \
  ^~~~~~~~
/usr/src/spl-0.7.5/include/sys/mutex.h:63:27: note: in expansion of macro ‘ACCESS_ONCE’
 #define mutex_owner(mp)  (ACCESS_ONCE((mp)->m_owner))
                           ^~~~~~~~~~~
/usr/src/spl-0.7.5/include/sys/mutex.h:140:11: note: in expansion of macro ‘mutex_owner’
  ASSERT3P(mutex_owner(mp), !=, current);   \
           ^~~~~~~~~~~
/usr/src/spl-0.7.5/include/sys/mutex.h:148:25: note: in expansion of macro ‘mutex_enter_nested’
 #define mutex_enter(mp) mutex_enter_nested((mp), 0)
                         ^~~~~~~~~~~~~~~~~~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:271:2: note: in expansion of macro ‘mutex_enter’
  mutex_enter(&rc->rc_mtx);
  ^~~~~~~~~~~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:271:17: error: ‘refcount_t {aka struct refcount_struct}’ has no member named ‘rc_mtx’
  mutex_enter(&rc->rc_mtx);
                 ^
/usr/src/spl-0.7.5/include/sys/debug.h:70:12: note: in definition of macro ‘VERIFY3_IMPL’
      CAST (LEFT), CAST (RIGHT)))
            ^~~~
/usr/src/spl-0.7.5/include/sys/debug.h:113:26: note: in expansion of macro ‘VERIFY3P’
 #define ASSERT3P(x,y,z)  VERIFY3P(x, y, z)
                          ^~~~~~~~
/usr/src/spl-0.7.5/include/sys/mutex.h:140:2: note: in expansion of macro ‘ASSERT3P’
  ASSERT3P(mutex_owner(mp), !=, current);   \
  ^~~~~~~~
/usr/src/spl-0.7.5/include/sys/mutex.h:63:27: note: in expansion of macro ‘ACCESS_ONCE’
 #define mutex_owner(mp)  (ACCESS_ONCE((mp)->m_owner))
                           ^~~~~~~~~~~
/usr/src/spl-0.7.5/include/sys/mutex.h:140:11: note: in expansion of macro ‘mutex_owner’
  ASSERT3P(mutex_owner(mp), !=, current);   \
           ^~~~~~~~~~~
/usr/src/spl-0.7.5/include/sys/mutex.h:148:25: note: in expansion of macro ‘mutex_enter_nested’
 #define mutex_enter(mp) mutex_enter_nested((mp), 0)
                         ^~~~~~~~~~~~~~~~~~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:271:2: note: in expansion of macro ‘mutex_enter’
  mutex_enter(&rc->rc_mtx);
  ^~~~~~~~~~~
In file included from /usr/src/spl-0.7.5/include/sys/t_lock.h:29:0,
                 from /var/lib/dkms/zfs/0.7.5/build/include/sys/zfs_context.h:35,
                 from /var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:26:
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:271:17: error: ‘refcount_t {aka struct refcount_struct}’ has no member named ‘rc_mtx’
  mutex_enter(&rc->rc_mtx);
                 ^
/usr/src/spl-0.7.5/include/sys/mutex.h:49:24: note: in definition of macro ‘MUTEX’
 #define MUTEX(mp)  (&((mp)->m_mutex))
                        ^~
/usr/src/spl-0.7.5/include/sys/mutex.h:148:25: note: in expansion of macro ‘mutex_enter_nested’
 #define mutex_enter(mp) mutex_enter_nested((mp), 0)
                         ^~~~~~~~~~~~~~~~~~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:271:2: note: in expansion of macro ‘mutex_enter’
  mutex_enter(&rc->rc_mtx);
  ^~~~~~~~~~~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:271:17: error: ‘refcount_t {aka struct refcount_struct}’ has no member named ‘rc_mtx’
  mutex_enter(&rc->rc_mtx);
                 ^
/usr/src/spl-0.7.5/include/sys/mutex.h:144:22: note: in definition of macro ‘mutex_enter_nested’
  spl_mutex_set_owner(mp);    \
                      ^~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:271:2: note: in expansion of macro ‘mutex_enter’
  mutex_enter(&rc->rc_mtx);
  ^~~~~~~~~~~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:273:9: error: ‘refcount_t {aka struct refcount_struct}’ has no member named ‘rc_tracked’
  if (!rc->rc_tracked) {
         ^~
In file included from /usr/src/spl-0.7.5/include/sys/t_lock.h:29:0,
                 from /var/lib/dkms/zfs/0.7.5/build/include/sys/zfs_context.h:35,
                 from /var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:26:
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:274:17: error: ‘refcount_t {aka struct refcount_struct}’ has no member named ‘rc_mtx’
   mutex_exit(&rc->rc_mtx);
                 ^
/usr/src/spl-0.7.5/include/sys/mutex.h:171:24: note: in definition of macro ‘mutex_exit’
  spl_mutex_clear_owner(mp);    \
                        ^~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:274:17: error: ‘refcount_t {aka struct refcount_struct}’ has no member named ‘rc_mtx’
   mutex_exit(&rc->rc_mtx);
                 ^
/usr/src/spl-0.7.5/include/sys/mutex.h:172:14: note: in definition of macro ‘mutex_exit’
  spin_lock(&(mp)->m_lock);    \
              ^~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:274:17: error: ‘refcount_t {aka struct refcount_struct}’ has no member named ‘rc_mtx’
   mutex_exit(&rc->rc_mtx);
                 ^
/usr/src/spl-0.7.5/include/sys/mutex.h:49:24: note: in definition of macro ‘MUTEX’
 #define MUTEX(mp)  (&((mp)->m_mutex))
                        ^~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:274:3: note: in expansion of macro ‘mutex_exit’
   mutex_exit(&rc->rc_mtx);
   ^~~~~~~~~~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:274:17: error: ‘refcount_t {aka struct refcount_struct}’ has no member named ‘rc_mtx’
   mutex_exit(&rc->rc_mtx);
                 ^
/usr/src/spl-0.7.5/include/sys/mutex.h:176:16: note: in definition of macro ‘mutex_exit’
  spin_unlock(&(mp)->m_lock);    \
                ^~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:275:13: error: ‘refcount_t {aka struct refcount_struct}’ has no member named ‘rc_count’
   return (rc->rc_count > 0);
             ^~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:278:26: error: ‘refcount_t {aka struct refcount_struct}’ has no member named ‘rc_list’
  for (ref = list_head(&rc->rc_list); ref;
                          ^~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:279:25: error: ‘refcount_t {aka struct refcount_struct}’ has no member named ‘rc_list’
      ref = list_next(&rc->rc_list, ref)) {
                         ^~
In file included from /usr/src/spl-0.7.5/include/sys/t_lock.h:29:0,
                 from /var/lib/dkms/zfs/0.7.5/build/include/sys/zfs_context.h:35,
                 from /var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:26:
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:281:18: error: ‘refcount_t {aka struct refcount_struct}’ has no member named ‘rc_mtx’
    mutex_exit(&rc->rc_mtx);
                  ^
/usr/src/spl-0.7.5/include/sys/mutex.h:171:24: note: in definition of macro ‘mutex_exit’
  spl_mutex_clear_owner(mp);    \
                        ^~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:281:18: error: ‘refcount_t {aka struct refcount_struct}’ has no member named ‘rc_mtx’
    mutex_exit(&rc->rc_mtx);
                  ^
/usr/src/spl-0.7.5/include/sys/mutex.h:172:14: note: in definition of macro ‘mutex_exit’
  spin_lock(&(mp)->m_lock);    \
              ^~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:281:18: error: ‘refcount_t {aka struct refcount_struct}’ has no member named ‘rc_mtx’
    mutex_exit(&rc->rc_mtx);
                  ^
/usr/src/spl-0.7.5/include/sys/mutex.h:49:24: note: in definition of macro ‘MUTEX’
 #define MUTEX(mp)  (&((mp)->m_mutex))
                        ^~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:281:4: note: in expansion of macro ‘mutex_exit’
    mutex_exit(&rc->rc_mtx);
    ^~~~~~~~~~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:281:18: error: ‘refcount_t {aka struct refcount_struct}’ has no member named ‘rc_mtx’
    mutex_exit(&rc->rc_mtx);
                  ^
/usr/src/spl-0.7.5/include/sys/mutex.h:176:16: note: in definition of macro ‘mutex_exit’
  spin_unlock(&(mp)->m_lock);    \
                ^~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:285:16: error: ‘refcount_t {aka struct refcount_struct}’ has no member named ‘rc_mtx’
  mutex_exit(&rc->rc_mtx);
                ^
/usr/src/spl-0.7.5/include/sys/mutex.h:171:24: note: in definition of macro ‘mutex_exit’
  spl_mutex_clear_owner(mp);    \
                        ^~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:285:16: error: ‘refcount_t {aka struct refcount_struct}’ has no member named ‘rc_mtx’
  mutex_exit(&rc->rc_mtx);
                ^
/usr/src/spl-0.7.5/include/sys/mutex.h:172:14: note: in definition of macro ‘mutex_exit’
  spin_lock(&(mp)->m_lock);    \
              ^~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:285:16: error: ‘refcount_t {aka struct refcount_struct}’ has no member named ‘rc_mtx’
  mutex_exit(&rc->rc_mtx);
                ^
/usr/src/spl-0.7.5/include/sys/mutex.h:49:24: note: in definition of macro ‘MUTEX’
 #define MUTEX(mp)  (&((mp)->m_mutex))
                        ^~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:285:2: note: in expansion of macro ‘mutex_exit’
  mutex_exit(&rc->rc_mtx);
  ^~~~~~~~~~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:285:16: error: ‘refcount_t {aka struct refcount_struct}’ has no member named ‘rc_mtx’
  mutex_exit(&rc->rc_mtx);
                ^
/usr/src/spl-0.7.5/include/sys/mutex.h:176:16: note: in definition of macro ‘mutex_exit’
  spin_unlock(&(mp)->m_lock);    \
                ^~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c: At top level:
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:295:1: error: conflicting types for ‘refcount_not_held’
 refcount_not_held(refcount_t *rc, void *holder)
 ^~~~~~~~~~~~~~~~~
In file included from /var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:27:0:
/var/lib/dkms/zfs/0.7.5/build/include/sys/refcount.h:81:11: note: previous declaration of ‘refcount_not_held’ was here
 boolean_t refcount_not_held(zfs_refcount_t *, void *);
           ^~~~~~~~~~~~~~~~~
In file included from /usr/src/spl-0.7.5/include/sys/sysmacros.h:31:0,
                 from /usr/src/spl-0.7.5/include/sys/types.h:29,
                 from /var/lib/dkms/zfs/0.7.5/build/include/sys/zfs_context.h:34,
                 from /var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:26:
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c: In function ‘refcount_not_held’:
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:299:17: error: ‘refcount_t {aka struct refcount_struct}’ has no member named ‘rc_mtx’
  mutex_enter(&rc->rc_mtx);
                 ^
/usr/src/spl-0.7.5/include/sys/debug.h:66:19: note: in definition of macro ‘VERIFY3_IMPL’
  (void)((!((TYPE)(LEFT) OP (TYPE)(RIGHT))) &&   \
                   ^~~~
/usr/src/spl-0.7.5/include/sys/debug.h:113:26: note: in expansion of macro ‘VERIFY3P’
 #define ASSERT3P(x,y,z)  VERIFY3P(x, y, z)
                          ^~~~~~~~
/usr/src/spl-0.7.5/include/sys/mutex.h:140:2: note: in expansion of macro ‘ASSERT3P’
  ASSERT3P(mutex_owner(mp), !=, current);   \
  ^~~~~~~~
/usr/src/spl-0.7.5/include/sys/mutex.h:63:27: note: in expansion of macro ‘ACCESS_ONCE’
 #define mutex_owner(mp)  (ACCESS_ONCE((mp)->m_owner))
                           ^~~~~~~~~~~
/usr/src/spl-0.7.5/include/sys/mutex.h:140:11: note: in expansion of macro ‘mutex_owner’
  ASSERT3P(mutex_owner(mp), !=, current);   \
           ^~~~~~~~~~~
/usr/src/spl-0.7.5/include/sys/mutex.h:148:25: note: in expansion of macro ‘mutex_enter_nested’
 #define mutex_enter(mp) mutex_enter_nested((mp), 0)
                         ^~~~~~~~~~~~~~~~~~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:299:2: note: in expansion of macro ‘mutex_enter’
  mutex_enter(&rc->rc_mtx);
  ^~~~~~~~~~~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:299:17: error: ‘refcount_t {aka struct refcount_struct}’ has no member named ‘rc_mtx’
  mutex_enter(&rc->rc_mtx);
                 ^
/usr/src/spl-0.7.5/include/sys/debug.h:66:19: note: in definition of macro ‘VERIFY3_IMPL’
  (void)((!((TYPE)(LEFT) OP (TYPE)(RIGHT))) &&   \
                   ^~~~
/usr/src/spl-0.7.5/include/sys/debug.h:113:26: note: in expansion of macro ‘VERIFY3P’
 #define ASSERT3P(x,y,z)  VERIFY3P(x, y, z)
                          ^~~~~~~~
/usr/src/spl-0.7.5/include/sys/mutex.h:140:2: note: in expansion of macro ‘ASSERT3P’
  ASSERT3P(mutex_owner(mp), !=, current);   \
  ^~~~~~~~
/usr/src/spl-0.7.5/include/sys/mutex.h:63:27: note: in expansion of macro ‘ACCESS_ONCE’
 #define mutex_owner(mp)  (ACCESS_ONCE((mp)->m_owner))
                           ^~~~~~~~~~~
/usr/src/spl-0.7.5/include/sys/mutex.h:140:11: note: in expansion of macro ‘mutex_owner’
  ASSERT3P(mutex_owner(mp), !=, current);   \
           ^~~~~~~~~~~
/usr/src/spl-0.7.5/include/sys/mutex.h:148:25: note: in expansion of macro ‘mutex_enter_nested’
 #define mutex_enter(mp) mutex_enter_nested((mp), 0)
                         ^~~~~~~~~~~~~~~~~~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:299:2: note: in expansion of macro ‘mutex_enter’
  mutex_enter(&rc->rc_mtx);
  ^~~~~~~~~~~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:299:17: error: ‘refcount_t {aka struct refcount_struct}’ has no member named ‘rc_mtx’
  mutex_enter(&rc->rc_mtx);
                 ^
/usr/src/spl-0.7.5/include/sys/debug.h:70:12: note: in definition of macro ‘VERIFY3_IMPL’
      CAST (LEFT), CAST (RIGHT)))
            ^~~~
/usr/src/spl-0.7.5/include/sys/debug.h:113:26: note: in expansion of macro ‘VERIFY3P’
 #define ASSERT3P(x,y,z)  VERIFY3P(x, y, z)
                          ^~~~~~~~
/usr/src/spl-0.7.5/include/sys/mutex.h:140:2: note: in expansion of macro ‘ASSERT3P’
  ASSERT3P(mutex_owner(mp), !=, current);   \
  ^~~~~~~~
/usr/src/spl-0.7.5/include/sys/mutex.h:63:27: note: in expansion of macro ‘ACCESS_ONCE’
 #define mutex_owner(mp)  (ACCESS_ONCE((mp)->m_owner))
                           ^~~~~~~~~~~
/usr/src/spl-0.7.5/include/sys/mutex.h:140:11: note: in expansion of macro ‘mutex_owner’
  ASSERT3P(mutex_owner(mp), !=, current);   \
           ^~~~~~~~~~~
/usr/src/spl-0.7.5/include/sys/mutex.h:148:25: note: in expansion of macro ‘mutex_enter_nested’
 #define mutex_enter(mp) mutex_enter_nested((mp), 0)
                         ^~~~~~~~~~~~~~~~~~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:299:2: note: in expansion of macro ‘mutex_enter’
  mutex_enter(&rc->rc_mtx);
  ^~~~~~~~~~~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:299:17: error: ‘refcount_t {aka struct refcount_struct}’ has no member named ‘rc_mtx’
  mutex_enter(&rc->rc_mtx);
                 ^
/usr/src/spl-0.7.5/include/sys/debug.h:70:12: note: in definition of macro ‘VERIFY3_IMPL’
      CAST (LEFT), CAST (RIGHT)))
            ^~~~
/usr/src/spl-0.7.5/include/sys/debug.h:113:26: note: in expansion of macro ‘VERIFY3P’
 #define ASSERT3P(x,y,z)  VERIFY3P(x, y, z)
                          ^~~~~~~~
/usr/src/spl-0.7.5/include/sys/mutex.h:140:2: note: in expansion of macro ‘ASSERT3P’
  ASSERT3P(mutex_owner(mp), !=, current);   \
  ^~~~~~~~
/usr/src/spl-0.7.5/include/sys/mutex.h:63:27: note: in expansion of macro ‘ACCESS_ONCE’
 #define mutex_owner(mp)  (ACCESS_ONCE((mp)->m_owner))
                           ^~~~~~~~~~~
/usr/src/spl-0.7.5/include/sys/mutex.h:140:11: note: in expansion of macro ‘mutex_owner’
  ASSERT3P(mutex_owner(mp), !=, current);   \
           ^~~~~~~~~~~
/usr/src/spl-0.7.5/include/sys/mutex.h:148:25: note: in expansion of macro ‘mutex_enter_nested’
 #define mutex_enter(mp) mutex_enter_nested((mp), 0)
                         ^~~~~~~~~~~~~~~~~~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:299:2: note: in expansion of macro ‘mutex_enter’
  mutex_enter(&rc->rc_mtx);
  ^~~~~~~~~~~
In file included from /usr/src/spl-0.7.5/include/sys/t_lock.h:29:0,
                 from /var/lib/dkms/zfs/0.7.5/build/include/sys/zfs_context.h:35,
                 from /var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:26:
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:299:17: error: ‘refcount_t {aka struct refcount_struct}’ has no member named ‘rc_mtx’
  mutex_enter(&rc->rc_mtx);
                 ^
/usr/src/spl-0.7.5/include/sys/mutex.h:49:24: note: in definition of macro ‘MUTEX’
 #define MUTEX(mp)  (&((mp)->m_mutex))
                        ^~
/usr/src/spl-0.7.5/include/sys/mutex.h:148:25: note: in expansion of macro ‘mutex_enter_nested’
 #define mutex_enter(mp) mutex_enter_nested((mp), 0)
                         ^~~~~~~~~~~~~~~~~~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:299:2: note: in expansion of macro ‘mutex_enter’
  mutex_enter(&rc->rc_mtx);
  ^~~~~~~~~~~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:299:17: error: ‘refcount_t {aka struct refcount_struct}’ has no member named ‘rc_mtx’
  mutex_enter(&rc->rc_mtx);
                 ^
/usr/src/spl-0.7.5/include/sys/mutex.h:144:22: note: in definition of macro ‘mutex_enter_nested’
  spl_mutex_set_owner(mp);    \
                      ^~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:299:2: note: in expansion of macro ‘mutex_enter’
  mutex_enter(&rc->rc_mtx);
  ^~~~~~~~~~~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:301:9: error: ‘refcount_t {aka struct refcount_struct}’ has no member named ‘rc_tracked’
  if (!rc->rc_tracked) {
         ^~
In file included from /usr/src/spl-0.7.5/include/sys/t_lock.h:29:0,
                 from /var/lib/dkms/zfs/0.7.5/build/include/sys/zfs_context.h:35,
                 from /var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:26:
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:302:17: error: ‘refcount_t {aka struct refcount_struct}’ has no member named ‘rc_mtx’
   mutex_exit(&rc->rc_mtx);
                 ^
/usr/src/spl-0.7.5/include/sys/mutex.h:171:24: note: in definition of macro ‘mutex_exit’
  spl_mutex_clear_owner(mp);    \
                        ^~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:302:17: error: ‘refcount_t {aka struct refcount_struct}’ has no member named ‘rc_mtx’
   mutex_exit(&rc->rc_mtx);
                 ^
/usr/src/spl-0.7.5/include/sys/mutex.h:172:14: note: in definition of macro ‘mutex_exit’
  spin_lock(&(mp)->m_lock);    \
              ^~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:302:17: error: ‘refcount_t {aka struct refcount_struct}’ has no member named ‘rc_mtx’
   mutex_exit(&rc->rc_mtx);
                 ^
/usr/src/spl-0.7.5/include/sys/mutex.h:49:24: note: in definition of macro ‘MUTEX’
 #define MUTEX(mp)  (&((mp)->m_mutex))
                        ^~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:302:3: note: in expansion of macro ‘mutex_exit’
   mutex_exit(&rc->rc_mtx);
   ^~~~~~~~~~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:302:17: error: ‘refcount_t {aka struct refcount_struct}’ has no member named ‘rc_mtx’
   mutex_exit(&rc->rc_mtx);
                 ^
/usr/src/spl-0.7.5/include/sys/mutex.h:176:16: note: in definition of macro ‘mutex_exit’
  spin_unlock(&(mp)->m_lock);    \
                ^~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:306:26: error: ‘refcount_t {aka struct refcount_struct}’ has no member named ‘rc_list’
  for (ref = list_head(&rc->rc_list); ref;
                          ^~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:307:25: error: ‘refcount_t {aka struct refcount_struct}’ has no member named ‘rc_list’
      ref = list_next(&rc->rc_list, ref)) {
                         ^~
In file included from /usr/src/spl-0.7.5/include/sys/t_lock.h:29:0,
                 from /var/lib/dkms/zfs/0.7.5/build/include/sys/zfs_context.h:35,
                 from /var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:26:
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:309:18: error: ‘refcount_t {aka struct refcount_struct}’ has no member named ‘rc_mtx’
    mutex_exit(&rc->rc_mtx);
                  ^
/usr/src/spl-0.7.5/include/sys/mutex.h:171:24: note: in definition of macro ‘mutex_exit’
  spl_mutex_clear_owner(mp);    \
                        ^~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:309:18: error: ‘refcount_t {aka struct refcount_struct}’ has no member named ‘rc_mtx’
    mutex_exit(&rc->rc_mtx);
                  ^
/usr/src/spl-0.7.5/include/sys/mutex.h:172:14: note: in definition of macro ‘mutex_exit’
  spin_lock(&(mp)->m_lock);    \
              ^~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:309:18: error: ‘refcount_t {aka struct refcount_struct}’ has no member named ‘rc_mtx’
    mutex_exit(&rc->rc_mtx);
                  ^
/usr/src/spl-0.7.5/include/sys/mutex.h:49:24: note: in definition of macro ‘MUTEX’
 #define MUTEX(mp)  (&((mp)->m_mutex))
                        ^~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:309:4: note: in expansion of macro ‘mutex_exit’
    mutex_exit(&rc->rc_mtx);
    ^~~~~~~~~~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:309:18: error: ‘refcount_t {aka struct refcount_struct}’ has no member named ‘rc_mtx’
    mutex_exit(&rc->rc_mtx);
                  ^
/usr/src/spl-0.7.5/include/sys/mutex.h:176:16: note: in definition of macro ‘mutex_exit’
  spin_unlock(&(mp)->m_lock);    \
                ^~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:313:16: error: ‘refcount_t {aka struct refcount_struct}’ has no member named ‘rc_mtx’
  mutex_exit(&rc->rc_mtx);
                ^
/usr/src/spl-0.7.5/include/sys/mutex.h:171:24: note: in definition of macro ‘mutex_exit’
  spl_mutex_clear_owner(mp);    \
                        ^~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:313:16: error: ‘refcount_t {aka struct refcount_struct}’ has no member named ‘rc_mtx’
  mutex_exit(&rc->rc_mtx);
                ^
/usr/src/spl-0.7.5/include/sys/mutex.h:172:14: note: in definition of macro ‘mutex_exit’
  spin_lock(&(mp)->m_lock);    \
              ^~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:313:16: error: ‘refcount_t {aka struct refcount_struct}’ has no member named ‘rc_mtx’
  mutex_exit(&rc->rc_mtx);
                ^
/usr/src/spl-0.7.5/include/sys/mutex.h:49:24: note: in definition of macro ‘MUTEX’
 #define MUTEX(mp)  (&((mp)->m_mutex))
                        ^~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:313:2: note: in expansion of macro ‘mutex_exit’
  mutex_exit(&rc->rc_mtx);
  ^~~~~~~~~~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:313:16: error: ‘refcount_t {aka struct refcount_struct}’ has no member named ‘rc_mtx’
  mutex_exit(&rc->rc_mtx);
                ^
/usr/src/spl-0.7.5/include/sys/mutex.h:176:16: note: in definition of macro ‘mutex_exit’
  spin_unlock(&(mp)->m_lock);    \
                ^~
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c: In function ‘refcount_is_zero’:
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:115:1: error: control reaches end of non-void function [-Werror=return-type]
 }
 ^
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c: In function ‘refcount_count’:
/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.c:121:1: error: control reaches end of non-void function [-Werror=return-type]
 }
 ^
cc1: all warnings being treated as errors
scripts/Makefile.build:330: recipe for target '/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.o' failed
make[5]: *** [/var/lib/dkms/zfs/0.7.5/build/module/zfs/refcount.o] Error 1
make[5]: *** Waiting for unfinished jobs....
  LD [M]  /var/lib/dkms/zfs/0.7.5/build/module/icp/icp.o
scripts/Makefile.build:604: recipe for target '/var/lib/dkms/zfs/0.7.5/build/module/zfs' failed
make[4]: *** [/var/lib/dkms/zfs/0.7.5/build/module/zfs] Error 2
Makefile:1577: recipe for target '_module_/var/lib/dkms/zfs/0.7.5/build/module' failed
make[3]: *** [_module_/var/lib/dkms/zfs/0.7.5/build/module] Error 2
make[3]: Leaving directory '/usr/src/linux-headers-4.15.0-106-generic'
Makefile:21: recipe for target 'modules' failed
make[2]: *** [modules] Error 2
make[2]: Leaving directory '/var/lib/dkms/zfs/0.7.5/build/module'
Makefile:727: recipe for target 'all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory '/var/lib/dkms/zfs/0.7.5/build'
Makefile:598: recipe for target 'all' failed
make: *** [all] Error 2

Thanks

@ColinIanKing
Copy link
Contributor

@seth when I get a spare moment I'll provide you with the appropriate deb package for testing.

@deviantintegral
Copy link

There looks to be a same or similar issue with openzfs 2.0 on Ubuntu 18.04 using the packages from the jonathanf PPA, currently 2.0.0-0york0~18.04. I was running two zfs send / recv streams between two pools on the same server, and ran into:

[1025891.132829] VERIFY3(size != 0) failed (0 != 0)
[1025891.132835] PANIC at range_tree.c:437:range_tree_remove_impl()
[1025891.132836] Showing stack for process 9023
[1025891.132838] CPU: 0 PID: 9023 Comm: z_wr_iss Tainted: P        W  OE    4.15.0-128-generic #131-Ubuntu
[1025891.132839] Hardware name: MSI MS-7758/Z77A-G43 (MS-7758), BIOS V2.13 03/07/2014
[1025891.132840] Call Trace:
[1025891.132846]  dump_stack+0x6d/0x8e
[1025891.132852]  spl_dumpstack+0x29/0x30 [spl]
[1025891.132854]  spl_panic+0xc8/0x110 [spl]
[1025891.132892]  ? bmov+0x17/0x20 [zfs]
[1025891.132894]  ? __kernel_fpu_end+0x33/0x80
[1025891.132895]  ? __kernel_fpu_begin+0x3c/0xb0
[1025891.132930]  ? abd_iter_advance+0x2d/0x60 [zfs]
[1025891.132948]  ? abd_iterate_func+0x17b/0x190 [zfs]
[1025891.132952]  ? fletcher_4_incremental_native+0x170/0x170 [zcommon]
[1025891.132972]  ? zfs_btree_find_parent_idx+0x80/0xd0 [zfs]
[1025891.132991]  ? zfs_btree_find.part.13+0x150/0x2b0 [zfs]
[1025891.133022]  range_tree_remove_impl+0x266/0xf80 [zfs]
[1025891.133051]  ? metaslab_block_find+0x137/0x150 [zfs]
[1025891.133079]  ? metaslab_df_alloc+0xc6/0x5f0 [zfs]
[1025891.133081]  ? getrawmonotonic64+0x43/0xd0
[1025891.133111]  range_tree_remove+0x10/0x20 [zfs]
[1025891.133139]  ? range_tree_remove+0x10/0x20 [zfs]
[1025891.133167]  metaslab_alloc_dva+0x549/0x1200 [zfs]
[1025891.133195]  metaslab_alloc+0xb2/0x240 [zfs]
[1025891.133230]  zio_dva_allocate+0xd5/0x840 [zfs]
[1025891.133232]  ? _cond_resched+0x19/0x40
[1025891.133233]  ? mutex_lock+0x12/0x40
[1025891.133236]  ? tsd_hash_search.isra.2+0x47/0xa0 [spl]
[1025891.133270]  zio_execute+0x94/0x100 [zfs]
[1025891.133273]  taskq_thread+0x2b8/0x4e0 [spl]
[1025891.133276]  ? wake_up_q+0x80/0x80
[1025891.133309]  ? zio_reexecute+0x400/0x400 [zfs]
[1025891.133311]  kthread+0x121/0x140
[1025891.133313]  ? task_done+0xb0/0xb0 [spl]
[1025891.133314]  ? kthread_create_worker_on_cpu+0x70/0x70
[1025891.133315]  ret_from_fork+0x35/0x40

One of the zfs recv commands completely hung and was unable to be killed, forcing a reboot of the system.

@SpComb
Copy link

SpComb commented Apr 26, 2021

There looks to be a same or similar issue with openzfs 2.0

This issue is a range_tree_find_impl() panic while mounting a dataset, your stack trace is a range_tree_remove_impl() panic with send/recv. Perhaps related to #11893?

@stale
Copy link

stale bot commented Apr 27, 2022

This issue has been automatically marked as "stale" because it has not had any activity for a while. It will be closed in 90 days if no further activity occurs. Thank you for your contributions.

@stale stale bot added the Status: Stale No recent activity for issue label Apr 27, 2022
@stale stale bot closed this as completed Aug 12, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Status: Stale No recent activity for issue Type: Defect Incorrect behavior (e.g. crash, hang)
Projects
None yet
Development

No branches or pull requests

7 participants
@corny @behlendorf @deviantintegral @SpComb @setharnold @ColinIanKing and others