Print this page
8115 parallel zfs mount
*** 19,28 ****
--- 19,29 ----
* CDDL HEADER END
*/
/*
* Copyright (c) 1991, 2010, Oracle and/or its affiliates. All rights reserved.
* Copyright 2013 Nexenta Systems, Inc. All rights reserved.
+ * Copyright 2017 RackTop Systems.
*/
#ifndef _SYS_MUTEX_H
#define _SYS_MUTEX_H
*** 71,80 ****
--- 72,83 ----
char pad_pad[64 - sizeof (kmutex_t)];
#endif
} pad_mutex_t;
#endif /* _KERNEL */
+ extern char *volatile panicstr; /* panic string pointer */
+
#define MUTEX_HELD(x) (mutex_owned(x))
#define MUTEX_NOT_HELD(x) (!mutex_owned(x) || panicstr)
/*
* We're simulating the kernel mutex API here, and the
*** 81,96 ****
* user-level has a different signature, so rename.
*/
#define mutex_init kmutex_init
#define mutex_destroy kmutex_destroy
extern void kmutex_init(kmutex_t *, char *, kmutex_type_t, void *);
extern void kmutex_destroy(kmutex_t *);
! extern void mutex_enter(kmutex_t *);
extern int mutex_tryenter(kmutex_t *);
- extern void mutex_exit(kmutex_t *);
extern int mutex_owned(const kmutex_t *);
extern void *mutex_owner(const kmutex_t *);
#ifdef __cplusplus
--- 84,107 ----
* user-level has a different signature, so rename.
*/
#define mutex_init kmutex_init
#define mutex_destroy kmutex_destroy
+ /*
+ * We want to avoid binding against the versions of these
+ * functions in libc which causes bad things to happen.
+ */
+ #define mutex_enter kmutex_enter
+ #define mutex_exit kmutex_exit
+
extern void kmutex_init(kmutex_t *, char *, kmutex_type_t, void *);
extern void kmutex_destroy(kmutex_t *);
! extern void kmutex_enter(kmutex_t *);
! extern void kmutex_exit(kmutex_t *);
!
extern int mutex_tryenter(kmutex_t *);
extern int mutex_owned(const kmutex_t *);
extern void *mutex_owner(const kmutex_t *);
#ifdef __cplusplus