/* Generated by Cython 0.21.1 */

#define PY_SSIZE_T_CLEAN
#ifndef CYTHON_USE_PYLONG_INTERNALS
#ifdef PYLONG_BITS_IN_DIGIT
#define CYTHON_USE_PYLONG_INTERNALS 0
#else
#include "pyconfig.h"
#ifdef PYLONG_BITS_IN_DIGIT
#define CYTHON_USE_PYLONG_INTERNALS 1
#else
#define CYTHON_USE_PYLONG_INTERNALS 0
#endif
#endif
#endif
#include "Python.h"
#ifndef Py_PYTHON_H
    #error Python headers needed to compile C extensions, please install development version of Python.
#elif PY_VERSION_HEX < 0x02060000 || (0x03000000 <= PY_VERSION_HEX && PY_VERSION_HEX < 0x03020000)
    #error Cython requires Python 2.6+ or Python 3.2+.
#else
#define CYTHON_ABI "0_21_1"
#include <stddef.h>
#ifndef offsetof
#define offsetof(type, member) ( (size_t) & ((type*)0) -> member )
#endif
#if !defined(WIN32) && !defined(MS_WINDOWS)
  #ifndef __stdcall
    #define __stdcall
  #endif
  #ifndef __cdecl
    #define __cdecl
  #endif
  #ifndef __fastcall
    #define __fastcall
  #endif
#endif
#ifndef DL_IMPORT
  #define DL_IMPORT(t) t
#endif
#ifndef DL_EXPORT
  #define DL_EXPORT(t) t
#endif
#ifndef PY_LONG_LONG
  #define PY_LONG_LONG LONG_LONG
#endif
#ifndef Py_HUGE_VAL
  #define Py_HUGE_VAL HUGE_VAL
#endif
#ifdef PYPY_VERSION
#define CYTHON_COMPILING_IN_PYPY 1
#define CYTHON_COMPILING_IN_CPYTHON 0
#else
#define CYTHON_COMPILING_IN_PYPY 0
#define CYTHON_COMPILING_IN_CPYTHON 1
#endif
#if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x02070600
#define Py_OptimizeFlag 0
#endif
#define __PYX_BUILD_PY_SSIZE_T "n"
#define CYTHON_FORMAT_SSIZE_T "z"
#if PY_MAJOR_VERSION < 3
  #define __Pyx_BUILTIN_MODULE_NAME "__builtin__"
  #define __Pyx_PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos) \
          PyCode_New(a+k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)
  #define __Pyx_DefaultClassType PyClass_Type
#else
  #define __Pyx_BUILTIN_MODULE_NAME "builtins"
  #define __Pyx_PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos) \
          PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)
  #define __Pyx_DefaultClassType PyType_Type
#endif
#if PY_MAJOR_VERSION >= 3
  #define Py_TPFLAGS_CHECKTYPES 0
  #define Py_TPFLAGS_HAVE_INDEX 0
  #define Py_TPFLAGS_HAVE_NEWBUFFER 0
#endif
#if PY_VERSION_HEX < 0x030400a1 && !defined(Py_TPFLAGS_HAVE_FINALIZE)
  #define Py_TPFLAGS_HAVE_FINALIZE 0
#endif
#if PY_VERSION_HEX > 0x03030000 && defined(PyUnicode_KIND)
  #define CYTHON_PEP393_ENABLED 1
  #define __Pyx_PyUnicode_READY(op)       (likely(PyUnicode_IS_READY(op)) ? \
                                              0 : _PyUnicode_Ready((PyObject *)(op)))
  #define __Pyx_PyUnicode_GET_LENGTH(u)   PyUnicode_GET_LENGTH(u)
  #define __Pyx_PyUnicode_READ_CHAR(u, i) PyUnicode_READ_CHAR(u, i)
  #define __Pyx_PyUnicode_KIND(u)         PyUnicode_KIND(u)
  #define __Pyx_PyUnicode_DATA(u)         PyUnicode_DATA(u)
  #define __Pyx_PyUnicode_READ(k, d, i)   PyUnicode_READ(k, d, i)
#else
  #define CYTHON_PEP393_ENABLED 0
  #define __Pyx_PyUnicode_READY(op)       (0)
  #define __Pyx_PyUnicode_GET_LENGTH(u)   PyUnicode_GET_SIZE(u)
  #define __Pyx_PyUnicode_READ_CHAR(u, i) ((Py_UCS4)(PyUnicode_AS_UNICODE(u)[i]))
  #define __Pyx_PyUnicode_KIND(u)         (sizeof(Py_UNICODE))
  #define __Pyx_PyUnicode_DATA(u)         ((void*)PyUnicode_AS_UNICODE(u))
  #define __Pyx_PyUnicode_READ(k, d, i)   ((void)(k), (Py_UCS4)(((Py_UNICODE*)d)[i]))
#endif
#if CYTHON_COMPILING_IN_PYPY
  #define __Pyx_PyUnicode_Concat(a, b)      PyNumber_Add(a, b)
  #define __Pyx_PyUnicode_ConcatSafe(a, b)  PyNumber_Add(a, b)
  #define __Pyx_PyFrozenSet_Size(s)         PyObject_Size(s)
#else
  #define __Pyx_PyUnicode_Concat(a, b)      PyUnicode_Concat(a, b)
  #define __Pyx_PyUnicode_ConcatSafe(a, b)  ((unlikely((a) == Py_None) || unlikely((b) == Py_None)) ? \
      PyNumber_Add(a, b) : __Pyx_PyUnicode_Concat(a, b))
  #define __Pyx_PyFrozenSet_Size(s)         PySet_Size(s)
#endif
#define __Pyx_PyString_FormatSafe(a, b)   ((unlikely((a) == Py_None)) ? PyNumber_Remainder(a, b) : __Pyx_PyString_Format(a, b))
#define __Pyx_PyUnicode_FormatSafe(a, b)  ((unlikely((a) == Py_None)) ? PyNumber_Remainder(a, b) : PyUnicode_Format(a, b))
#if PY_MAJOR_VERSION >= 3
  #define __Pyx_PyString_Format(a, b)  PyUnicode_Format(a, b)
#else
  #define __Pyx_PyString_Format(a, b)  PyString_Format(a, b)
#endif
#if PY_MAJOR_VERSION >= 3
  #define PyBaseString_Type            PyUnicode_Type
  #define PyStringObject               PyUnicodeObject
  #define PyString_Type                PyUnicode_Type
  #define PyString_Check               PyUnicode_Check
  #define PyString_CheckExact          PyUnicode_CheckExact
#endif
#if PY_MAJOR_VERSION >= 3
  #define __Pyx_PyBaseString_Check(obj) PyUnicode_Check(obj)
  #define __Pyx_PyBaseString_CheckExact(obj) PyUnicode_CheckExact(obj)
#else
  #define __Pyx_PyBaseString_Check(obj) (PyString_Check(obj) || PyUnicode_Check(obj))
  #define __Pyx_PyBaseString_CheckExact(obj) (PyString_CheckExact(obj) || PyUnicode_CheckExact(obj))
#endif
#ifndef PySet_CheckExact
  #define PySet_CheckExact(obj)        (Py_TYPE(obj) == &PySet_Type)
#endif
#define __Pyx_TypeCheck(obj, type) PyObject_TypeCheck(obj, (PyTypeObject *)type)
#if PY_MAJOR_VERSION >= 3
  #define PyIntObject                  PyLongObject
  #define PyInt_Type                   PyLong_Type
  #define PyInt_Check(op)              PyLong_Check(op)
  #define PyInt_CheckExact(op)         PyLong_CheckExact(op)
  #define PyInt_FromString             PyLong_FromString
  #define PyInt_FromUnicode            PyLong_FromUnicode
  #define PyInt_FromLong               PyLong_FromLong
  #define PyInt_FromSize_t             PyLong_FromSize_t
  #define PyInt_FromSsize_t            PyLong_FromSsize_t
  #define PyInt_AsLong                 PyLong_AsLong
  #define PyInt_AS_LONG                PyLong_AS_LONG
  #define PyInt_AsSsize_t              PyLong_AsSsize_t
  #define PyInt_AsUnsignedLongMask     PyLong_AsUnsignedLongMask
  #define PyInt_AsUnsignedLongLongMask PyLong_AsUnsignedLongLongMask
  #define PyNumber_Int                 PyNumber_Long
#endif
#if PY_MAJOR_VERSION >= 3
  #define PyBoolObject                 PyLongObject
#endif
#if PY_MAJOR_VERSION >= 3 && CYTHON_COMPILING_IN_PYPY
  #ifndef PyUnicode_InternFromString
    #define PyUnicode_InternFromString(s) PyUnicode_FromString(s)
  #endif
#endif
#if PY_VERSION_HEX < 0x030200A4
  typedef long Py_hash_t;
  #define __Pyx_PyInt_FromHash_t PyInt_FromLong
  #define __Pyx_PyInt_AsHash_t   PyInt_AsLong
#else
  #define __Pyx_PyInt_FromHash_t PyInt_FromSsize_t
  #define __Pyx_PyInt_AsHash_t   PyInt_AsSsize_t
#endif
#if PY_MAJOR_VERSION >= 3
  #define __Pyx_PyMethod_New(func, self, klass) ((self) ? PyMethod_New(func, self) : PyInstanceMethod_New(func))
#else
  #define __Pyx_PyMethod_New(func, self, klass) PyMethod_New(func, self, klass)
#endif
#ifndef CYTHON_INLINE
  #if defined(__GNUC__)
    #define CYTHON_INLINE __inline__
  #elif defined(_MSC_VER)
    #define CYTHON_INLINE __inline
  #elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
    #define CYTHON_INLINE inline
  #else
    #define CYTHON_INLINE
  #endif
#endif
#ifndef CYTHON_RESTRICT
  #if defined(__GNUC__)
    #define CYTHON_RESTRICT __restrict__
  #elif defined(_MSC_VER) && _MSC_VER >= 1400
    #define CYTHON_RESTRICT __restrict
  #elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
    #define CYTHON_RESTRICT restrict
  #else
    #define CYTHON_RESTRICT
  #endif
#endif
#ifdef NAN
#define __PYX_NAN() ((float) NAN)
#else
static CYTHON_INLINE float __PYX_NAN() {
  /* Initialize NaN. The sign is irrelevant, an exponent with all bits 1 and
   a nonzero mantissa means NaN. If the first bit in the mantissa is 1, it is
   a quiet NaN. */
  float value;
  memset(&value, 0xFF, sizeof(value));
  return value;
}
#endif
#ifdef __cplusplus
template<typename T>
void __Pyx_call_destructor(T* x) {
    x->~T();
}
#endif


#if PY_MAJOR_VERSION >= 3
  #define __Pyx_PyNumber_Divide(x,y)         PyNumber_TrueDivide(x,y)
  #define __Pyx_PyNumber_InPlaceDivide(x,y)  PyNumber_InPlaceTrueDivide(x,y)
#else
  #define __Pyx_PyNumber_Divide(x,y)         PyNumber_Divide(x,y)
  #define __Pyx_PyNumber_InPlaceDivide(x,y)  PyNumber_InPlaceDivide(x,y)
#endif

#ifndef __PYX_EXTERN_C
  #ifdef __cplusplus
    #define __PYX_EXTERN_C extern "C"
  #else
    #define __PYX_EXTERN_C extern
  #endif
#endif

#if defined(WIN32) || defined(MS_WINDOWS)
#define _USE_MATH_DEFINES
#endif
#include <math.h>
#define __PYX_HAVE__llfuse__capi
#define __PYX_HAVE_API__llfuse__capi
#include "fuse_opt.h"
#include "stdint.h"
#include "sys/types.h"
#include "sys/stat.h"
#include "sys/statvfs.h"
#include "string.h"
#include "stdlib.h"
#include "fuse_lowlevel.h"
#include "errno.h"
#include "dirent.h"
#include "sys/extattr.h"
#include "unistd.h"
#include "signal.h"
#include "sys/time.h"
#include "lock.c"
#include "time.c"
#include "version.c"
#ifdef _OPENMP
#include <omp.h>
#endif /* _OPENMP */

#ifdef PYREX_WITHOUT_ASSERTIONS
#define CYTHON_WITHOUT_ASSERTIONS
#endif

#ifndef CYTHON_UNUSED
# if defined(__GNUC__)
#   if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4))
#     define CYTHON_UNUSED __attribute__ ((__unused__))
#   else
#     define CYTHON_UNUSED
#   endif
# elif defined(__ICC) || (defined(__INTEL_COMPILER) && !defined(_MSC_VER))
#   define CYTHON_UNUSED __attribute__ ((__unused__))
# else
#   define CYTHON_UNUSED
# endif
#endif
typedef struct {PyObject **p; char *s; const Py_ssize_t n; const char* encoding;
                const char is_unicode; const char is_str; const char intern; } __Pyx_StringTabEntry;

#define __PYX_DEFAULT_STRING_ENCODING_IS_ASCII 0
#define __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT 0
#define __PYX_DEFAULT_STRING_ENCODING ""
#define __Pyx_PyObject_FromString __Pyx_PyBytes_FromString
#define __Pyx_PyObject_FromStringAndSize __Pyx_PyBytes_FromStringAndSize
#define __Pyx_fits_Py_ssize_t(v, type, is_signed)  (    \
    (sizeof(type) < sizeof(Py_ssize_t))  ||             \
    (sizeof(type) > sizeof(Py_ssize_t) &&               \
          likely(v < (type)PY_SSIZE_T_MAX ||            \
                 v == (type)PY_SSIZE_T_MAX)  &&         \
          (!is_signed || likely(v > (type)PY_SSIZE_T_MIN ||       \
                                v == (type)PY_SSIZE_T_MIN)))  ||  \
    (sizeof(type) == sizeof(Py_ssize_t) &&              \
          (is_signed || likely(v < (type)PY_SSIZE_T_MAX ||        \
                               v == (type)PY_SSIZE_T_MAX)))  )
static CYTHON_INLINE char* __Pyx_PyObject_AsString(PyObject*);
static CYTHON_INLINE char* __Pyx_PyObject_AsStringAndSize(PyObject*, Py_ssize_t* length);
#define __Pyx_PyByteArray_FromString(s) PyByteArray_FromStringAndSize((const char*)s, strlen((const char*)s))
#define __Pyx_PyByteArray_FromStringAndSize(s, l) PyByteArray_FromStringAndSize((const char*)s, l)
#define __Pyx_PyBytes_FromString        PyBytes_FromString
#define __Pyx_PyBytes_FromStringAndSize PyBytes_FromStringAndSize
static CYTHON_INLINE PyObject* __Pyx_PyUnicode_FromString(const char*);
#if PY_MAJOR_VERSION < 3
    #define __Pyx_PyStr_FromString        __Pyx_PyBytes_FromString
    #define __Pyx_PyStr_FromStringAndSize __Pyx_PyBytes_FromStringAndSize
#else
    #define __Pyx_PyStr_FromString        __Pyx_PyUnicode_FromString
    #define __Pyx_PyStr_FromStringAndSize __Pyx_PyUnicode_FromStringAndSize
#endif
#define __Pyx_PyObject_AsSString(s)    ((signed char*) __Pyx_PyObject_AsString(s))
#define __Pyx_PyObject_AsUString(s)    ((unsigned char*) __Pyx_PyObject_AsString(s))
#define __Pyx_PyObject_FromUString(s)  __Pyx_PyObject_FromString((const char*)s)
#define __Pyx_PyBytes_FromUString(s)   __Pyx_PyBytes_FromString((const char*)s)
#define __Pyx_PyByteArray_FromUString(s)   __Pyx_PyByteArray_FromString((const char*)s)
#define __Pyx_PyStr_FromUString(s)     __Pyx_PyStr_FromString((const char*)s)
#define __Pyx_PyUnicode_FromUString(s) __Pyx_PyUnicode_FromString((const char*)s)
#if PY_MAJOR_VERSION < 3
static CYTHON_INLINE size_t __Pyx_Py_UNICODE_strlen(const Py_UNICODE *u)
{
    const Py_UNICODE *u_end = u;
    while (*u_end++) ;
    return (size_t)(u_end - u - 1);
}
#else
#define __Pyx_Py_UNICODE_strlen Py_UNICODE_strlen
#endif
#define __Pyx_PyUnicode_FromUnicode(u)       PyUnicode_FromUnicode(u, __Pyx_Py_UNICODE_strlen(u))
#define __Pyx_PyUnicode_FromUnicodeAndLength PyUnicode_FromUnicode
#define __Pyx_PyUnicode_AsUnicode            PyUnicode_AsUnicode
#define __Pyx_Owned_Py_None(b) (Py_INCREF(Py_None), Py_None)
#define __Pyx_PyBool_FromLong(b) ((b) ? (Py_INCREF(Py_True), Py_True) : (Py_INCREF(Py_False), Py_False))
static CYTHON_INLINE int __Pyx_PyObject_IsTrue(PyObject*);
static CYTHON_INLINE PyObject* __Pyx_PyNumber_Int(PyObject* x);
static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject*);
static CYTHON_INLINE PyObject * __Pyx_PyInt_FromSize_t(size_t);
#if CYTHON_COMPILING_IN_CPYTHON
#define __pyx_PyFloat_AsDouble(x) (PyFloat_CheckExact(x) ? PyFloat_AS_DOUBLE(x) : PyFloat_AsDouble(x))
#else
#define __pyx_PyFloat_AsDouble(x) PyFloat_AsDouble(x)
#endif
#define __pyx_PyFloat_AsFloat(x) ((float) __pyx_PyFloat_AsDouble(x))
#if PY_MAJOR_VERSION < 3 && __PYX_DEFAULT_STRING_ENCODING_IS_ASCII
static int __Pyx_sys_getdefaultencoding_not_ascii;
static int __Pyx_init_sys_getdefaultencoding_params(void) {
    PyObject* sys;
    PyObject* default_encoding = NULL;
    PyObject* ascii_chars_u = NULL;
    PyObject* ascii_chars_b = NULL;
    const char* default_encoding_c;
    sys = PyImport_ImportModule("sys");
    if (!sys) goto bad;
    default_encoding = PyObject_CallMethod(sys, (char*) (const char*) "getdefaultencoding", NULL);
    Py_DECREF(sys);
    if (!default_encoding) goto bad;
    default_encoding_c = PyBytes_AsString(default_encoding);
    if (!default_encoding_c) goto bad;
    if (strcmp(default_encoding_c, "ascii") == 0) {
        __Pyx_sys_getdefaultencoding_not_ascii = 0;
    } else {
        char ascii_chars[128];
        int c;
        for (c = 0; c < 128; c++) {
            ascii_chars[c] = c;
        }
        __Pyx_sys_getdefaultencoding_not_ascii = 1;
        ascii_chars_u = PyUnicode_DecodeASCII(ascii_chars, 128, NULL);
        if (!ascii_chars_u) goto bad;
        ascii_chars_b = PyUnicode_AsEncodedString(ascii_chars_u, default_encoding_c, NULL);
        if (!ascii_chars_b || !PyBytes_Check(ascii_chars_b) || memcmp(ascii_chars, PyBytes_AS_STRING(ascii_chars_b), 128) != 0) {
            PyErr_Format(
                PyExc_ValueError,
                "This module compiled with c_string_encoding=ascii, but default encoding '%.200s' is not a superset of ascii.",
                default_encoding_c);
            goto bad;
        }
        Py_DECREF(ascii_chars_u);
        Py_DECREF(ascii_chars_b);
    }
    Py_DECREF(default_encoding);
    return 0;
bad:
    Py_XDECREF(default_encoding);
    Py_XDECREF(ascii_chars_u);
    Py_XDECREF(ascii_chars_b);
    return -1;
}
#endif
#if __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT && PY_MAJOR_VERSION >= 3
#define __Pyx_PyUnicode_FromStringAndSize(c_str, size) PyUnicode_DecodeUTF8(c_str, size, NULL)
#else
#define __Pyx_PyUnicode_FromStringAndSize(c_str, size) PyUnicode_Decode(c_str, size, __PYX_DEFAULT_STRING_ENCODING, NULL)
#if __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT
static char* __PYX_DEFAULT_STRING_ENCODING;
static int __Pyx_init_sys_getdefaultencoding_params(void) {
    PyObject* sys;
    PyObject* default_encoding = NULL;
    char* default_encoding_c;
    sys = PyImport_ImportModule("sys");
    if (!sys) goto bad;
    default_encoding = PyObject_CallMethod(sys, (char*) (const char*) "getdefaultencoding", NULL);
    Py_DECREF(sys);
    if (!default_encoding) goto bad;
    default_encoding_c = PyBytes_AsString(default_encoding);
    if (!default_encoding_c) goto bad;
    __PYX_DEFAULT_STRING_ENCODING = (char*) malloc(strlen(default_encoding_c));
    if (!__PYX_DEFAULT_STRING_ENCODING) goto bad;
    strcpy(__PYX_DEFAULT_STRING_ENCODING, default_encoding_c);
    Py_DECREF(default_encoding);
    return 0;
bad:
    Py_XDECREF(default_encoding);
    return -1;
}
#endif
#endif


/* Test for GCC > 2.95 */
#if defined(__GNUC__)     && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))
  #define likely(x)   __builtin_expect(!!(x), 1)
  #define unlikely(x) __builtin_expect(!!(x), 0)
#else /* !__GNUC__ or GCC < 2.95 */
  #define likely(x)   (x)
  #define unlikely(x) (x)
#endif /* __GNUC__ */

static PyObject *__pyx_m;
static PyObject *__pyx_d;
static PyObject *__pyx_b;
static PyObject *__pyx_empty_tuple;
static PyObject *__pyx_empty_bytes;
static int __pyx_lineno;
static int __pyx_clineno = 0;
static const char * __pyx_cfilenm= __FILE__;
static const char *__pyx_filename;


static const char *__pyx_f[] = {
  "llfuse/handlers.pxi",
  "llfuse/misc.pxi",
  "llfuse/fuse_api.pxi",
  "llfuse/capi.pyx",
};

/*--- Type declarations ---*/
struct __pyx_obj_6llfuse_4capi_Lock;
struct __pyx_obj_6llfuse_4capi_NoLockManager;

/* "src/llfuse/misc.pxi":185
 *         raise
 * 
 * cdef class Lock:             # <<<<<<<<<<<<<<
 *     '''
 *     This is the class of lock itself as well as a context manager to
 */
struct __pyx_obj_6llfuse_4capi_Lock {
  PyObject_HEAD
};


/* "src/llfuse/misc.pxi":278
 * 
 * 
 * cdef class NoLockManager:             # <<<<<<<<<<<<<<
 *     '''Context manager to execute code while the global lock is released'''
 * 
 */
struct __pyx_obj_6llfuse_4capi_NoLockManager {
  PyObject_HEAD
};

#ifndef CYTHON_REFNANNY
  #define CYTHON_REFNANNY 0
#endif
#if CYTHON_REFNANNY
  typedef struct {
    void (*INCREF)(void*, PyObject*, int);
    void (*DECREF)(void*, PyObject*, int);
    void (*GOTREF)(void*, PyObject*, int);
    void (*GIVEREF)(void*, PyObject*, int);
    void* (*SetupContext)(const char*, int, const char*);
    void (*FinishContext)(void**);
  } __Pyx_RefNannyAPIStruct;
  static __Pyx_RefNannyAPIStruct *__Pyx_RefNanny = NULL;
  static __Pyx_RefNannyAPIStruct *__Pyx_RefNannyImportAPI(const char *modname);
  #define __Pyx_RefNannyDeclarations void *__pyx_refnanny = NULL;
#ifdef WITH_THREAD
  #define __Pyx_RefNannySetupContext(name, acquire_gil) \
          if (acquire_gil) { \
              PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure(); \
              __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), __LINE__, __FILE__); \
              PyGILState_Release(__pyx_gilstate_save); \
          } else { \
              __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), __LINE__, __FILE__); \
          }
#else
  #define __Pyx_RefNannySetupContext(name, acquire_gil) \
          __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), __LINE__, __FILE__)
#endif
  #define __Pyx_RefNannyFinishContext() \
          __Pyx_RefNanny->FinishContext(&__pyx_refnanny)
  #define __Pyx_INCREF(r)  __Pyx_RefNanny->INCREF(__pyx_refnanny, (PyObject *)(r), __LINE__)
  #define __Pyx_DECREF(r)  __Pyx_RefNanny->DECREF(__pyx_refnanny, (PyObject *)(r), __LINE__)
  #define __Pyx_GOTREF(r)  __Pyx_RefNanny->GOTREF(__pyx_refnanny, (PyObject *)(r), __LINE__)
  #define __Pyx_GIVEREF(r) __Pyx_RefNanny->GIVEREF(__pyx_refnanny, (PyObject *)(r), __LINE__)
  #define __Pyx_XINCREF(r)  do { if((r) != NULL) {__Pyx_INCREF(r); }} while(0)
  #define __Pyx_XDECREF(r)  do { if((r) != NULL) {__Pyx_DECREF(r); }} while(0)
  #define __Pyx_XGOTREF(r)  do { if((r) != NULL) {__Pyx_GOTREF(r); }} while(0)
  #define __Pyx_XGIVEREF(r) do { if((r) != NULL) {__Pyx_GIVEREF(r);}} while(0)
#else
  #define __Pyx_RefNannyDeclarations
  #define __Pyx_RefNannySetupContext(name, acquire_gil)
  #define __Pyx_RefNannyFinishContext()
  #define __Pyx_INCREF(r) Py_INCREF(r)
  #define __Pyx_DECREF(r) Py_DECREF(r)
  #define __Pyx_GOTREF(r)
  #define __Pyx_GIVEREF(r)
  #define __Pyx_XINCREF(r) Py_XINCREF(r)
  #define __Pyx_XDECREF(r) Py_XDECREF(r)
  #define __Pyx_XGOTREF(r)
  #define __Pyx_XGIVEREF(r)
#endif
#define __Pyx_XDECREF_SET(r, v) do {                            \
        PyObject *tmp = (PyObject *) r;                         \
        r = v; __Pyx_XDECREF(tmp);                              \
    } while (0)
#define __Pyx_DECREF_SET(r, v) do {                             \
        PyObject *tmp = (PyObject *) r;                         \
        r = v; __Pyx_DECREF(tmp);                               \
    } while (0)
#define __Pyx_CLEAR(r)    do { PyObject* tmp = ((PyObject*)(r)); r = NULL; __Pyx_DECREF(tmp);} while(0)
#define __Pyx_XCLEAR(r)   do { if((r) != NULL) {PyObject* tmp = ((PyObject*)(r)); r = NULL; __Pyx_DECREF(tmp);}} while(0)

#if CYTHON_COMPILING_IN_CPYTHON
static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStr(PyObject* obj, PyObject* attr_name) {
    PyTypeObject* tp = Py_TYPE(obj);
    if (likely(tp->tp_getattro))
        return tp->tp_getattro(obj, attr_name);
#if PY_MAJOR_VERSION < 3
    if (likely(tp->tp_getattr))
        return tp->tp_getattr(obj, PyString_AS_STRING(attr_name));
#endif
    return PyObject_GetAttr(obj, attr_name);
}
#else
#define __Pyx_PyObject_GetAttrStr(o,n) PyObject_GetAttr(o,n)
#endif

static PyObject *__Pyx_GetBuiltinName(PyObject *name);

#ifndef __PYX_FORCE_INIT_THREADS
  #define __PYX_FORCE_INIT_THREADS 0
#endif

static CYTHON_INLINE PyObject *__Pyx_GetModuleGlobalName(PyObject *name);

#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x02070000
static CYTHON_INLINE PyObject* __Pyx_PyObject_LookupSpecial(PyObject* obj, PyObject* attr_name) {
    PyObject *res;
    PyTypeObject *tp = Py_TYPE(obj);
#if PY_MAJOR_VERSION < 3
    if (unlikely(PyInstance_Check(obj)))
        return __Pyx_PyObject_GetAttrStr(obj, attr_name);
#endif
    res = _PyType_Lookup(tp, attr_name);
    if (likely(res)) {
        descrgetfunc f = Py_TYPE(res)->tp_descr_get;
        if (!f) {
            Py_INCREF(res);
        } else {
            res = f(res, obj, (PyObject *)tp);
        }
    } else {
        PyErr_SetObject(PyExc_AttributeError, attr_name);
    }
    return res;
}
#else
#define __Pyx_PyObject_LookupSpecial(o,n) __Pyx_PyObject_GetAttrStr(o,n)
#endif

#if CYTHON_COMPILING_IN_CPYTHON
static CYTHON_INLINE PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg, PyObject *kw);
#else
#define __Pyx_PyObject_Call(func, arg, kw) PyObject_Call(func, arg, kw)
#endif

#if CYTHON_COMPILING_IN_CPYTHON
static CYTHON_INLINE PyObject* __Pyx_PyObject_CallMethO(PyObject *func, PyObject *arg);
#endif

static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg);

#if CYTHON_COMPILING_IN_CPYTHON
static CYTHON_INLINE PyObject* __Pyx_PyObject_CallNoArg(PyObject *func);
#else
#define __Pyx_PyObject_CallNoArg(func) __Pyx_PyObject_Call(func, __pyx_empty_tuple, NULL)
#endif

static CYTHON_INLINE void __Pyx_ExceptionSave(PyObject **type, PyObject **value, PyObject **tb);
static void __Pyx_ExceptionReset(PyObject *type, PyObject *value, PyObject *tb);

static int __Pyx_GetException(PyObject **type, PyObject **value, PyObject **tb);

static CYTHON_INLINE void __Pyx_ErrRestore(PyObject *type, PyObject *value, PyObject *tb);
static CYTHON_INLINE void __Pyx_ErrFetch(PyObject **type, PyObject **value, PyObject **tb);

static void __Pyx_WriteUnraisable(const char *name, int clineno,
                                  int lineno, const char *filename,
                                  int full_traceback);

static CYTHON_INLINE void __Pyx_RaiseUnboundLocalError(const char *varname);

static CYTHON_INLINE void __Pyx_ExceptionSwap(PyObject **type, PyObject **value, PyObject **tb);

#if CYTHON_COMPILING_IN_CPYTHON
#define __Pyx_PyObject_DelAttrStr(o,n) __Pyx_PyObject_SetAttrStr(o,n,NULL)
static CYTHON_INLINE int __Pyx_PyObject_SetAttrStr(PyObject* obj, PyObject* attr_name, PyObject* value) {
    PyTypeObject* tp = Py_TYPE(obj);
    if (likely(tp->tp_setattro))
        return tp->tp_setattro(obj, attr_name, value);
#if PY_MAJOR_VERSION < 3
    if (likely(tp->tp_setattr))
        return tp->tp_setattr(obj, PyString_AS_STRING(attr_name), value);
#endif
    return PyObject_SetAttr(obj, attr_name, value);
}
#else
#define __Pyx_PyObject_DelAttrStr(o,n)   PyObject_DelAttr(o,n)
#define __Pyx_PyObject_SetAttrStr(o,n,v) PyObject_SetAttr(o,n,v)
#endif

static CYTHON_INLINE void __Pyx_RaiseTooManyValuesError(Py_ssize_t expected);

static CYTHON_INLINE void __Pyx_RaiseNeedMoreValuesError(Py_ssize_t index);

static CYTHON_INLINE int __Pyx_IterFinish(void);

static int __Pyx_IternextUnpackEndCheck(PyObject *retval, Py_ssize_t expected);

#if PY_MAJOR_VERSION < 3
#define __Pyx_PyString_Join __Pyx_PyBytes_Join
#define __Pyx_PyBaseString_Join(s, v) (PyUnicode_CheckExact(s) ? PyUnicode_Join(s, v) : __Pyx_PyBytes_Join(s, v))
#else
#define __Pyx_PyString_Join PyUnicode_Join
#define __Pyx_PyBaseString_Join PyUnicode_Join
#endif
#if CYTHON_COMPILING_IN_CPYTHON
    #if PY_MAJOR_VERSION < 3
    #define __Pyx_PyBytes_Join _PyString_Join
    #else
    #define __Pyx_PyBytes_Join _PyBytes_Join
    #endif
#else
static CYTHON_INLINE PyObject* __Pyx_PyBytes_Join(PyObject* sep, PyObject* values);
#endif

static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause);

#if CYTHON_COMPILING_IN_CPYTHON
static CYTHON_INLINE int __Pyx_PyList_Append(PyObject* list, PyObject* x) {
    PyListObject* L = (PyListObject*) list;
    Py_ssize_t len = Py_SIZE(list);
    if (likely(L->allocated > len) & likely(len > (L->allocated >> 1))) {
        Py_INCREF(x);
        PyList_SET_ITEM(list, len, x);
        Py_SIZE(list) = len+1;
        return 0;
    }
    return PyList_Append(list, x);
}
#else
#define __Pyx_PyList_Append(L,x) PyList_Append(L,x)
#endif

static void __Pyx_RaiseArgtupleInvalid(const char* func_name, int exact,
    Py_ssize_t num_min, Py_ssize_t num_max, Py_ssize_t num_found);

static CYTHON_INLINE int __Pyx_CheckKeywordStrings(PyObject *kwdict, const char* function_name, int kw_allowed);

static void __Pyx_RaiseDoubleKeywordsError(const char* func_name, PyObject* kw_name);

static int __Pyx_ParseOptionalKeywords(PyObject *kwds, PyObject **argnames[], \
    PyObject *kwds2, PyObject *values[], Py_ssize_t num_pos_args, \
    const char* function_name);

static CYTHON_INLINE int __Pyx_ArgTypeTest(PyObject *obj, PyTypeObject *type, int none_allowed,
    const char *name, int exact);

#include <string.h>

static CYTHON_INLINE int __Pyx_PyBytes_Equals(PyObject* s1, PyObject* s2, int equals);

static CYTHON_INLINE int __Pyx_PyUnicode_Equals(PyObject* s1, PyObject* s2, int equals);

#define __Pyx_GetItemInt(o, i, type, is_signed, to_py_func, is_list, wraparound, boundscheck) \
    (__Pyx_fits_Py_ssize_t(i, type, is_signed) ? \
    __Pyx_GetItemInt_Fast(o, (Py_ssize_t)i, is_list, wraparound, boundscheck) : \
    (is_list ? (PyErr_SetString(PyExc_IndexError, "list index out of range"), (PyObject*)NULL) : \
               __Pyx_GetItemInt_Generic(o, to_py_func(i))))
#define __Pyx_GetItemInt_List(o, i, type, is_signed, to_py_func, is_list, wraparound, boundscheck) \
    (__Pyx_fits_Py_ssize_t(i, type, is_signed) ? \
    __Pyx_GetItemInt_List_Fast(o, (Py_ssize_t)i, wraparound, boundscheck) : \
    (PyErr_SetString(PyExc_IndexError, "list index out of range"), (PyObject*)NULL))
static CYTHON_INLINE PyObject *__Pyx_GetItemInt_List_Fast(PyObject *o, Py_ssize_t i,
                                                              int wraparound, int boundscheck);
#define __Pyx_GetItemInt_Tuple(o, i, type, is_signed, to_py_func, is_list, wraparound, boundscheck) \
    (__Pyx_fits_Py_ssize_t(i, type, is_signed) ? \
    __Pyx_GetItemInt_Tuple_Fast(o, (Py_ssize_t)i, wraparound, boundscheck) : \
    (PyErr_SetString(PyExc_IndexError, "tuple index out of range"), (PyObject*)NULL))
static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Tuple_Fast(PyObject *o, Py_ssize_t i,
                                                              int wraparound, int boundscheck);
static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Generic(PyObject *o, PyObject* j);
static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Fast(PyObject *o, Py_ssize_t i,
                                                     int is_list, int wraparound, int boundscheck);

static CYTHON_INLINE PyObject* __Pyx_decode_c_string(
         const char* cstring, Py_ssize_t start, Py_ssize_t stop,
         const char* encoding, const char* errors,
         PyObject* (*decode_func)(const char *s, Py_ssize_t size, const char *errors));

static PyObject* __Pyx_ImportFrom(PyObject* module, PyObject* name);

typedef struct {
    int code_line;
    PyCodeObject* code_object;
} __Pyx_CodeObjectCacheEntry;
struct __Pyx_CodeObjectCache {
    int count;
    int max_count;
    __Pyx_CodeObjectCacheEntry* entries;
};
static struct __Pyx_CodeObjectCache __pyx_code_cache = {0,0,NULL};
static int __pyx_bisect_code_objects(__Pyx_CodeObjectCacheEntry* entries, int count, int code_line);
static PyCodeObject *__pyx_find_code_object(int code_line);
static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object);

static void __Pyx_AddTraceback(const char *funcname, int c_line,
                               int py_line, const char *filename);

static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list, int level);

static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value);

static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *);

static CYTHON_INLINE PyObject* __Pyx_PyInt_From_fuse_ino_t(fuse_ino_t value);

static CYTHON_INLINE PyObject* __Pyx_PyInt_From_unsigned_long(unsigned long value);

static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value);

static CYTHON_INLINE PyObject* __Pyx_PyInt_From_time_t(time_t value);

static CYTHON_INLINE PyObject* __Pyx_PyInt_From_mode_t(mode_t value);

static CYTHON_INLINE PyObject* __Pyx_PyInt_From_uid_t(uid_t value);

static CYTHON_INLINE PyObject* __Pyx_PyInt_From_gid_t(gid_t value);

static CYTHON_INLINE PyObject* __Pyx_PyInt_From_off_t(off_t value);

static CYTHON_INLINE PyObject* __Pyx_PyInt_From_dev_t(dev_t value);

static CYTHON_INLINE uint64_t __Pyx_PyInt_As_uint64_t(PyObject *);

static CYTHON_INLINE PyObject* __Pyx_PyInt_From_uint64_t(uint64_t value);

static CYTHON_INLINE size_t __Pyx_PyInt_As_size_t(PyObject *);

static CYTHON_INLINE off_t __Pyx_PyInt_As_off_t(PyObject *);

static CYTHON_INLINE fuse_ino_t __Pyx_PyInt_As_fuse_ino_t(PyObject *);

static CYTHON_INLINE unsigned long __Pyx_PyInt_As_unsigned_long(PyObject *);

static CYTHON_INLINE ino_t __Pyx_PyInt_As_ino_t(PyObject *);

static CYTHON_INLINE mode_t __Pyx_PyInt_As_mode_t(PyObject *);

static CYTHON_INLINE nlink_t __Pyx_PyInt_As_nlink_t(PyObject *);

static CYTHON_INLINE uid_t __Pyx_PyInt_As_uid_t(PyObject *);

static CYTHON_INLINE gid_t __Pyx_PyInt_As_gid_t(PyObject *);

static CYTHON_INLINE dev_t __Pyx_PyInt_As_dev_t(PyObject *);

static CYTHON_INLINE blksize_t __Pyx_PyInt_As_blksize_t(PyObject *);

static CYTHON_INLINE blkcnt_t __Pyx_PyInt_As_blkcnt_t(PyObject *);

static CYTHON_INLINE time_t __Pyx_PyInt_As_time_t(PyObject *);

static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *);

static CYTHON_INLINE fsblkcnt_t __Pyx_PyInt_As_fsblkcnt_t(PyObject *);

static CYTHON_INLINE fsfilcnt_t __Pyx_PyInt_As_fsfilcnt_t(PyObject *);

static CYTHON_INLINE PyObject* __Pyx_PyInt_From_pid_t(pid_t value);

static int __Pyx_check_binary_version(void);

static int __Pyx_InitStrings(__Pyx_StringTabEntry *t);


/* Module declarations from 'fuse_opt' */

/* Module declarations from 'libc.stdint' */

/* Module declarations from 'fuse_common' */

/* Module declarations from 'libc.sys.types' */

/* Module declarations from 'libc.sys.stat' */

/* Module declarations from 'libc.sys.statvfs' */

/* Module declarations from 'libc.string' */

/* Module declarations from 'libc.stdlib' */

/* Module declarations from 'fuse_lowlevel' */

/* Module declarations from 'libc' */

/* Module declarations from 'libc.errno' */

/* Module declarations from 'libc.dirent' */

/* Module declarations from 'libc.xattr' */

/* Module declarations from 'posix.types' */

/* Module declarations from 'posix.unistd' */

/* Module declarations from 'posix.signal' */

/* Module declarations from 'posix.time' */

/* Module declarations from 'cpython.ref' */

/* Module declarations from 'cpython.bytes' */

/* Module declarations from 'cpython.exc' */

/* Module declarations from 'cpython' */

/* Module declarations from 'cpython.version' */

/* Module declarations from 'llfuse.capi' */
static PyTypeObject *__pyx_ptype_6llfuse_4capi_Lock = 0;
static PyTypeObject *__pyx_ptype_6llfuse_4capi_NoLockManager = 0;
static PyObject *__pyx_v_6llfuse_4capi_operations = 0;
static PyObject *__pyx_v_6llfuse_4capi_mountpoint_b = 0;
static struct fuse_session *__pyx_v_6llfuse_4capi_session;
static struct fuse_chan *__pyx_v_6llfuse_4capi_channel;
static struct fuse_lowlevel_ops __pyx_v_6llfuse_4capi_fuse_ops;
static PyObject *__pyx_v_6llfuse_4capi_exc_info = 0;
static void __pyx_f_6llfuse_4capi_fuse_init(void *, struct fuse_conn_info *); /*proto*/
static void __pyx_f_6llfuse_4capi_fuse_destroy(void *); /*proto*/
static void __pyx_f_6llfuse_4capi_fuse_lookup(fuse_req_t, fuse_ino_t, const char *); /*proto*/
static void __pyx_f_6llfuse_4capi_fuse_forget(fuse_req_t, fuse_ino_t, unsigned long); /*proto*/
static void __pyx_f_6llfuse_4capi_fuse_getattr(fuse_req_t, fuse_ino_t, struct fuse_file_info *); /*proto*/
static void __pyx_f_6llfuse_4capi_fuse_setattr(fuse_req_t, fuse_ino_t, struct stat *, int, struct fuse_file_info *); /*proto*/
static void __pyx_f_6llfuse_4capi_fuse_readlink(fuse_req_t, fuse_ino_t); /*proto*/
static void __pyx_f_6llfuse_4capi_fuse_mknod(fuse_req_t, fuse_ino_t, const char *, mode_t, dev_t); /*proto*/
static void __pyx_f_6llfuse_4capi_fuse_mkdir(fuse_req_t, fuse_ino_t, const char *, mode_t); /*proto*/
static void __pyx_f_6llfuse_4capi_fuse_unlink(fuse_req_t, fuse_ino_t, const char *); /*proto*/
static void __pyx_f_6llfuse_4capi_fuse_rmdir(fuse_req_t, fuse_ino_t, const char *); /*proto*/
static void __pyx_f_6llfuse_4capi_fuse_symlink(fuse_req_t, const char *, fuse_ino_t, const char *); /*proto*/
static void __pyx_f_6llfuse_4capi_fuse_rename(fuse_req_t, fuse_ino_t, const char *, fuse_ino_t, const char *); /*proto*/
static void __pyx_f_6llfuse_4capi_fuse_link(fuse_req_t, fuse_ino_t, fuse_ino_t, const char *); /*proto*/
static void __pyx_f_6llfuse_4capi_fuse_open(fuse_req_t, fuse_ino_t, struct fuse_file_info *); /*proto*/
static void __pyx_f_6llfuse_4capi_fuse_read(fuse_req_t, fuse_ino_t, size_t, off_t, struct fuse_file_info *); /*proto*/
static void __pyx_f_6llfuse_4capi_fuse_write(fuse_req_t, fuse_ino_t, const char *, size_t, off_t, struct fuse_file_info *); /*proto*/
static void __pyx_f_6llfuse_4capi_fuse_flush(fuse_req_t, fuse_ino_t, struct fuse_file_info *); /*proto*/
static void __pyx_f_6llfuse_4capi_fuse_release(fuse_req_t, fuse_ino_t, struct fuse_file_info *); /*proto*/
static void __pyx_f_6llfuse_4capi_fuse_fsync(fuse_req_t, fuse_ino_t, int, struct fuse_file_info *); /*proto*/
static void __pyx_f_6llfuse_4capi_fuse_opendir(fuse_req_t, fuse_ino_t, struct fuse_file_info *); /*proto*/
static void __pyx_f_6llfuse_4capi_fuse_readdir(fuse_req_t, fuse_ino_t, size_t, off_t, struct fuse_file_info *); /*proto*/
static void __pyx_f_6llfuse_4capi_fuse_releasedir(fuse_req_t, fuse_ino_t, struct fuse_file_info *); /*proto*/
static void __pyx_f_6llfuse_4capi_fuse_fsyncdir(fuse_req_t, fuse_ino_t, int, struct fuse_file_info *); /*proto*/
static void __pyx_f_6llfuse_4capi_fuse_statfs(fuse_req_t, fuse_ino_t); /*proto*/
static void __pyx_f_6llfuse_4capi_fuse_setxattr(fuse_req_t, fuse_ino_t, const char *, const char *, size_t, int); /*proto*/
static void __pyx_f_6llfuse_4capi_fuse_getxattr(fuse_req_t, fuse_ino_t, const char *, size_t); /*proto*/
static void __pyx_f_6llfuse_4capi_fuse_listxattr(fuse_req_t, fuse_ino_t, size_t); /*proto*/
static void __pyx_f_6llfuse_4capi_fuse_removexattr(fuse_req_t, fuse_ino_t, const char *); /*proto*/
static void __pyx_f_6llfuse_4capi_fuse_access(fuse_req_t, fuse_ino_t, int); /*proto*/
static void __pyx_f_6llfuse_4capi_fuse_create(fuse_req_t, fuse_ino_t, const char *, mode_t, struct fuse_file_info *); /*proto*/
static PyObject *__pyx_f_6llfuse_4capi_fill_entry_param(PyObject *, struct fuse_entry_param *); /*proto*/
static PyObject *__pyx_f_6llfuse_4capi_fill_c_stat(PyObject *, struct stat *); /*proto*/
static PyObject *__pyx_f_6llfuse_4capi_fill_statvfs(PyObject *, struct statvfs *); /*proto*/
static int __pyx_f_6llfuse_4capi_handle_exc(char *, PyObject *, fuse_req_t); /*proto*/
static PyObject *__pyx_f_6llfuse_4capi_get_request_context(fuse_req_t); /*proto*/
static void __pyx_f_6llfuse_4capi_init_fuse_ops(void); /*proto*/
static PyObject *__pyx_f_6llfuse_4capi_make_fuse_args(PyObject *, struct fuse_args *); /*proto*/
static PyObject *__pyx_f_6llfuse_4capi_str2bytes(PyObject *); /*proto*/
static PyObject *__pyx_f_6llfuse_4capi_bytes2str(PyObject *); /*proto*/
#define __Pyx_MODULE_NAME "llfuse.capi"
int __pyx_module_is_main_llfuse__capi = 0;

/* Implementation of 'llfuse.capi' */
static PyObject *__pyx_builtin_BaseException;
static PyObject *__pyx_builtin_TypeError;
static PyObject *__pyx_builtin_enumerate;
static PyObject *__pyx_builtin_range;
static PyObject *__pyx_builtin_RuntimeError;
static PyObject *__pyx_builtin_OSError;
static PyObject *__pyx_builtin_ValueError;
static int __pyx_pf_6llfuse_4capi_4Lock___init__(CYTHON_UNUSED struct __pyx_obj_6llfuse_4capi_Lock *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_6llfuse_4capi_4Lock_2acquire(CYTHON_UNUSED struct __pyx_obj_6llfuse_4capi_Lock *__pyx_v_self, PyObject *__pyx_v_timeout); /* proto */
static PyObject *__pyx_pf_6llfuse_4capi_4Lock_4release(CYTHON_UNUSED struct __pyx_obj_6llfuse_4capi_Lock *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_6llfuse_4capi_4Lock_6yield_(CYTHON_UNUSED struct __pyx_obj_6llfuse_4capi_Lock *__pyx_v_self, PyObject *__pyx_v_count); /* proto */
static PyObject *__pyx_pf_6llfuse_4capi_4Lock_8__enter__(struct __pyx_obj_6llfuse_4capi_Lock *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_6llfuse_4capi_4Lock_10__exit__(struct __pyx_obj_6llfuse_4capi_Lock *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_exc_type, CYTHON_UNUSED PyObject *__pyx_v_exc_val, CYTHON_UNUSED PyObject *__pyx_v_exc_tb); /* proto */
static int __pyx_pf_6llfuse_4capi_13NoLockManager___init__(CYTHON_UNUSED struct __pyx_obj_6llfuse_4capi_NoLockManager *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_6llfuse_4capi_13NoLockManager_2__enter__(CYTHON_UNUSED struct __pyx_obj_6llfuse_4capi_NoLockManager *__pyx_v_self); /* proto */
static PyObject *__pyx_pf_6llfuse_4capi_13NoLockManager_4__exit__(CYTHON_UNUSED struct __pyx_obj_6llfuse_4capi_NoLockManager *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_a); /* proto */
static PyObject *__pyx_pf_6llfuse_4capi__notify_loop(CYTHON_UNUSED PyObject *__pyx_self); /* proto */
static PyObject *__pyx_pf_6llfuse_4capi_2listdir(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_path); /* proto */
static PyObject *__pyx_pf_6llfuse_4capi_4setxattr(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_path, PyObject *__pyx_v_name, PyObject *__pyx_v_value, PyObject *__pyx_v_namespace); /* proto */
static PyObject *__pyx_pf_6llfuse_4capi_6getxattr(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_path, PyObject *__pyx_v_name, int __pyx_v_size_guess, PyObject *__pyx_v_namespace); /* proto */
static PyObject *__pyx_pf_6llfuse_4capi_8init(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_ops, PyObject *__pyx_v_mountpoint, PyObject *__pyx_v_args); /* proto */
static PyObject *__pyx_pf_6llfuse_4capi_10main(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_single); /* proto */
static PyObject *__pyx_pf_6llfuse_4capi_12close(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_unmount); /* proto */
static PyObject *__pyx_pf_6llfuse_4capi_14invalidate_inode(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_inode, PyObject *__pyx_v_attr_only); /* proto */
static PyObject *__pyx_pf_6llfuse_4capi_16invalidate_entry(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_inode_p, PyObject *__pyx_v_name); /* proto */
static PyObject *__pyx_pf_6llfuse_4capi_18get_ino_t_bits(CYTHON_UNUSED PyObject *__pyx_self); /* proto */
static PyObject *__pyx_pf_6llfuse_4capi_20get_off_t_bits(CYTHON_UNUSED PyObject *__pyx_self); /* proto */
static PyObject *__pyx_tp_new_6llfuse_4capi_Lock(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static PyObject *__pyx_tp_new_6llfuse_4capi_NoLockManager(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
static char __pyx_k_o[] = "-o";
static char __pyx_k_t[] = "t";
static char __pyx_k_os[] = "os";
static char __pyx_k__28[] = "\000";
static char __pyx_k__49[] = ".";
static char __pyx_k__50[] = "..";
static char __pyx_k_buf[] = "buf";
static char __pyx_k_ent[] = "ent";
static char __pyx_k_fse[] = "fse";
static char __pyx_k_get[] = "get";
static char __pyx_k_gid[] = "gid";
static char __pyx_k_ino[] = "ino";
static char __pyx_k_len[] = "len_";
static char __pyx_k_log[] = "log";
static char __pyx_k_ops[] = "ops";
static char __pyx_k_pid[] = "pid";
static char __pyx_k_put[] = "put";
static char __pyx_k_req[] = "req";
static char __pyx_k_res[] = "res";
static char __pyx_k_ret[] = "ret";
static char __pyx_k_sys[] = "sys";
static char __pyx_k_tmp[] = "tmp";
static char __pyx_k_uid[] = "uid";
static char __pyx_k_args[] = "args";
static char __pyx_k_dirp[] = "dirp";
static char __pyx_k_exit[] = "__exit__";
static char __pyx_k_init[] = "init";
static char __pyx_k_join[] = "join";
static char __pyx_k_link[] = "link";
static char __pyx_k_lock[] = "lock";
static char __pyx_k_main[] = "__main__";
static char __pyx_k_name[] = "name";
static char __pyx_k_open[] = "open";
static char __pyx_k_path[] = "path";
static char __pyx_k_read[] = "read";
static char __pyx_k_test[] = "__test__";
static char __pyx_k_user[] = "user";
static char __pyx_k_Queue[] = "Queue";
static char __pyx_k_block[] = "block";
static char __pyx_k_close[] = "close";
static char __pyx_k_cname[] = "cname";
static char __pyx_k_count[] = "count";
static char __pyx_k_cpath[] = "cpath";
static char __pyx_k_debug[] = "debug";
static char __pyx_k_enter[] = "__enter__";
static char __pyx_k_errno[] = "errno";
static char __pyx_k_error[] = "error";
static char __pyx_k_flush[] = "flush";
static char __pyx_k_fsync[] = "fsync";
static char __pyx_k_inode[] = "inode";
static char __pyx_k_mkdir[] = "mkdir";
static char __pyx_k_mknod[] = "mknod";
static char __pyx_k_names[] = "names";
static char __pyx_k_queue[] = "queue";
static char __pyx_k_range[] = "range";
static char __pyx_k_rmdir[] = "rmdir";
static char __pyx_k_start[] = "start";
static char __pyx_k_str_t[] = "str_t";
static char __pyx_k_umask[] = "umask";
static char __pyx_k_value[] = "value";
static char __pyx_k_write[] = "write";
static char __pyx_k_Thread[] = "Thread";
static char __pyx_k_access[] = "access";
static char __pyx_k_create[] = "create";
static char __pyx_k_cvalue[] = "cvalue";
static char __pyx_k_daemon[] = "daemon";
static char __pyx_k_decode[] = "decode";
static char __pyx_k_encode[] = "encode";
static char __pyx_k_exc_tb[] = "exc_tb";
static char __pyx_k_f_args[] = "f_args";
static char __pyx_k_forget[] = "forget";
static char __pyx_k_import[] = "__import__";
static char __pyx_k_llfuse[] = "llfuse";
static char __pyx_k_lookup[] = "lookup";
static char __pyx_k_main_2[] = "main";
static char __pyx_k_name_b[] = "name_b";
static char __pyx_k_path_b[] = "path_b";
static char __pyx_k_rename[] = "rename";
static char __pyx_k_single[] = "single";
static char __pyx_k_st_gid[] = "st_gid";
static char __pyx_k_st_ino[] = "st_ino";
static char __pyx_k_st_uid[] = "st_uid";
static char __pyx_k_statfs[] = "statfs";
static char __pyx_k_system[] = "system";
static char __pyx_k_target[] = "target";
static char __pyx_k_unlink[] = "unlink";
static char __pyx_k_ENOATTR[] = "ENOATTR";
static char __pyx_k_OSError[] = "OSError";
static char __pyx_k_abspath[] = "abspath";
static char __pyx_k_acquire[] = "acquire";
static char __pyx_k_bufsize[] = "bufsize";
static char __pyx_k_destroy[] = "destroy";
static char __pyx_k_exc_val[] = "exc_val";
static char __pyx_k_f_bfree[] = "f_bfree";
static char __pyx_k_f_bsize[] = "f_bsize";
static char __pyx_k_f_ffree[] = "f_ffree";
static char __pyx_k_f_files[] = "f_files";
static char __pyx_k_getattr[] = "getattr";
static char __pyx_k_inode_p[] = "inode_p";
static char __pyx_k_listdir[] = "listdir";
static char __pyx_k_logging[] = "logging";
static char __pyx_k_maxsize[] = "maxsize";
static char __pyx_k_opendir[] = "opendir";
static char __pyx_k_os_path[] = "os.path";
static char __pyx_k_readdir[] = "readdir";
static char __pyx_k_release[] = "release";
static char __pyx_k_setattr[] = "setattr";
static char __pyx_k_st_mode[] = "st_mode";
static char __pyx_k_st_rdev[] = "st_rdev";
static char __pyx_k_st_size[] = "st_size";
static char __pyx_k_symlink[] = "symlink";
static char __pyx_k_timeout[] = "timeout";
static char __pyx_k_unmount[] = "unmount";
static char __pyx_k_version[] = "__version__";
static char __pyx_k_exc_info[] = "exc_info";
static char __pyx_k_exc_type[] = "exc_type";
static char __pyx_k_f_bavail[] = "f_bavail";
static char __pyx_k_f_blocks[] = "f_blocks";
static char __pyx_k_f_favail[] = "f_favail";
static char __pyx_k_f_frsize[] = "f_frsize";
static char __pyx_k_fsyncdir[] = "fsyncdir";
static char __pyx_k_getxattr[] = "getxattr";
static char __pyx_k_readlink[] = "readlink";
static char __pyx_k_setxattr[] = "setxattr";
static char __pyx_k_st_atime[] = "st_atime";
static char __pyx_k_st_ctime[] = "st_ctime";
static char __pyx_k_st_mtime[] = "st_mtime";
static char __pyx_k_st_nlink[] = "st_nlink";
static char __pyx_k_strerror[] = "strerror";
static char __pyx_k_us_ascii[] = "us-ascii";
static char __pyx_k_FUSEError[] = "FUSEError";
static char __pyx_k_TypeError[] = "TypeError";
static char __pyx_k_attr_only[] = "attr_only";
static char __pyx_k_enumerate[] = "enumerate";
static char __pyx_k_exception[] = "exception";
static char __pyx_k_getLogger[] = "getLogger";
static char __pyx_k_listxattr[] = "listxattr";
static char __pyx_k_namespace[] = "namespace";
static char __pyx_k_st_blocks[] = "st_blocks";
static char __pyx_k_threading[] = "threading";
static char __pyx_k_Operations[] = "Operations";
static char __pyx_k_ROOT_INODE[] = "ROOT_INODE";
static char __pyx_k_ValueError[] = "ValueError";
static char __pyx_k_cnamespace[] = "cnamespace";
static char __pyx_k_generation[] = "generation";
static char __pyx_k_mountpoint[] = "mountpoint";
static char __pyx_k_namedtuple[] = "namedtuple";
static char __pyx_k_releasedir[] = "releasedir";
static char __pyx_k_size_guess[] = "size_guess";
static char __pyx_k_st_blksize[] = "st_blksize";
static char __pyx_k_stacktrace[] = "stacktrace";
static char __pyx_k_collections[] = "collections";
static char __pyx_k_llfuse_capi[] = "llfuse.capi";
static char __pyx_k_notify_loop[] = "_notify_loop";
static char __pyx_k_removexattr[] = "removexattr";
static char __pyx_k_st_atime_ns[] = "st_atime_ns";
static char __pyx_k_st_ctime_ns[] = "st_ctime_ns";
static char __pyx_k_st_mtime_ns[] = "st_mtime_ns";
static char __pyx_k_RuntimeError[] = "RuntimeError";
static char __pyx_k_attr_timeout[] = "attr_timeout";
static char __pyx_k_llfuse_pyapi[] = "llfuse.pyapi";
static char __pyx_k_notify_queue[] = "_notify_queue";
static char __pyx_k_BaseException[] = "BaseException";
static char __pyx_k_Python_LLFUSE[] = "Python-LLFUSE";
static char __pyx_k_entry_timeout[] = "entry_timeout";
static char __pyx_k_lock_released[] = "lock_released";
static char __pyx_k_RequestContext[] = "RequestContext";
static char __pyx_k_get_ino_t_bits[] = "get_ino_t_bits";
static char __pyx_k_get_off_t_bits[] = "get_off_t_bits";
static char __pyx_k_with_traceback[] = "with_traceback";
static char __pyx_k_EntryAttributes[] = "EntryAttributes";
static char __pyx_k_fuse_stacktrace[] = "fuse_stacktrace";
static char __pyx_k_inval_entry_req[] = "inval_entry_req";
static char __pyx_k_inval_inode_req[] = "inval_inode_req";
static char __pyx_k_surrogateescape[] = "surrogateescape";
static char __pyx_k_invalidate_entry[] = "invalidate_entry";
static char __pyx_k_invalidate_inode[] = "invalidate_inode";
static char __pyx_k_fuse_mount_failed[] = "fuse_mount failed";
static char __pyx_k_Calling_fuse_mount[] = "Calling fuse_mount";
static char __pyx_k_Initializing_llfuse[] = "Initializing llfuse";
static char __pyx_k_Calling_fuse_unmount[] = "Calling fuse_unmount";
static char __pyx_k_Exception_after_kill[] = "Exception after kill:";
static char __pyx_k_Lock_not_initialized[] = "Lock not initialized";
static char __pyx_k_getfilesystemencoding[] = "getfilesystemencoding";
static char __pyx_k_Weird_request_received_r[] = "Weird request received: %r";
static char __pyx_k_fuse_lowlevel_new_failed[] = "fuse_lowlevel_new() failed";
static char __pyx_k_fuse_session_loop_failed[] = "fuse_session_loop failed";
static char __pyx_k_Calling_fuse_lowlevel_new[] = "Calling fuse_lowlevel_new";
static char __pyx_k_Calling_fuse_session_loop[] = "Calling fuse_session_loop";
static char __pyx_k_fuse_session_loop_mt_failed[] = "fuse_session_loop_mt() failed";
static char __pyx_k_Calling_fuse_session_destroy[] = "Calling fuse_session_destroy";
static char __pyx_k_Calling_fuse_session_loop_mt[] = "Calling fuse_session_loop_mt";
static char __pyx_k_Calling_fuse_session_add_chan[] = "Calling fuse_session_add_chan";
static char __pyx_k_Need_to_call_init_before_main[] = "Need to call init() before main()";
static char __pyx_k_Other_thread_didn_t_take_lock[] = "Other thread didn't take lock";
static char __pyx_k_You_should_not_instantiate_this[] = "You should not instantiate this class, use the provided instance instead.";
static char __pyx_k_capi_pxy_Copyright_2013_Nikolau[] = "\ncapi.pxy\n\nCopyright \302\251 2013 Nikolaus Rath <Nikolaus.org>\n\nThis file is part of Python-LLFUSE. This work may be distributed under\nthe terms of the GNU LGPL.\n";
static char __pyx_k_fuse_getattr_fuse_reply__failed[] = "fuse_getattr(): fuse_reply_* failed with %s";
static char __pyx_k_fuse_opendir_fuse_reply__failed[] = "fuse_opendir(): fuse_reply_* failed with %s";
static char __pyx_k_fuse_readdir_fuse_reply__failed[] = "fuse_readdir(): fuse_reply_* failed with %s";
static char __pyx_k_fuse_release_fuse_reply__failed[] = "fuse_release(): fuse_reply_* failed with %s";
static char __pyx_k_fuse_set_signal_handlers_failed[] = "fuse_set_signal_handlers() failed";
static char __pyx_k_fuse_setattr_fuse_reply__failed[] = "fuse_setattr(): fuse_reply_* failed with %s";
static char __pyx_k_fuse_symlink_fuse_reply__failed[] = "fuse_symlink(): fuse_reply_* failed with %s";
static char __pyx_k_home_nikratio_in_progress_pytho[] = "/home/nikratio/in-progress/python-llfuse/src/llfuse/misc.pxi";
static char __pyx_k_mountpoint__argument_must_be_of[] = "*mountpoint_* argument must be of type str";
static char __pyx_k_name_argument_must_be_of_type_s[] = "*name* argument must be of type str";
static char __pyx_k_namespace_parameter_must_be_sys[] = "*namespace* parameter must be \"system\" or \"user\", not %s";
static char __pyx_k_path_argument_must_be_of_type_s[] = "*path* argument must be of type str";
static char __pyx_k_Calling_fuse_remove_signal_handl[] = "Calling fuse_remove_signal_handlers";
static char __pyx_k_Calling_fuse_session_remove_chan[] = "Calling fuse_session_remove_chan";
static char __pyx_k_Calling_fuse_set_signal_handlers[] = "Calling fuse_set_signal_handlers";
static char __pyx_k_Global_lock_cannot_be_acquired_m[] = "Global lock cannot be acquired more than once";
static char __pyx_k_Lock_can_only_be_released_by_the[] = "Lock can only be released by the holding thread";
static char __pyx_k_Lock_still_taken_after_receiving[] = "Lock still taken after receiving unlock notification";
static char __pyx_k_Terminated_main_loop_because_req[] = "Terminated main loop because request handler raised exception, re-raising..";
static char __pyx_k_fuse_access_fuse_reply__failed_w[] = "fuse_access(): fuse_reply_* failed with %s";
static char __pyx_k_fuse_create_fuse_reply__failed_w[] = "fuse_create(): fuse_reply_* failed with %s";
static char __pyx_k_fuse_flush_fuse_reply__failed_wi[] = "fuse_flush(): fuse_reply_* failed with %s";
static char __pyx_k_fuse_fsync_fuse_reply__failed_wi[] = "fuse_fsync(): fuse_reply_* failed with %s";
static char __pyx_k_fuse_fsyncdir_fuse_reply__failed[] = "fuse_fsyncdir(): fuse_reply_* failed with %s";
static char __pyx_k_fuse_getxattr_fuse_reply__failed[] = "fuse_getxattr(): fuse_reply_* failed with %s";
static char __pyx_k_fuse_link_fuse_reply__failed_wit[] = "fuse_link(): fuse_reply_* failed with %s";
static char __pyx_k_fuse_listxattr_fuse_reply__faile[] = "fuse_listxattr(): fuse_reply_* failed with %s";
static char __pyx_k_fuse_lookup_fuse_reply__failed_w[] = "fuse_lookup(): fuse_reply_* failed with %s";
static char __pyx_k_fuse_mkdir_fuse_reply__failed_wi[] = "fuse_mkdir(): fuse_reply_* failed with %s";
static char __pyx_k_fuse_mknod_fuse_reply__failed_wi[] = "fuse_mknod(): fuse_reply_* failed with %s";
static char __pyx_k_fuse_options_must_be_of_type_str[] = "fuse options must be of type str";
static char __pyx_k_fuse_read_fuse_reply__failed_wit[] = "fuse_read(): fuse_reply_* failed with %s";
static char __pyx_k_fuse_readlink_fuse_reply__failed[] = "fuse_readlink(): fuse_reply_* failed with %s";
static char __pyx_k_fuse_releasedir_fuse_reply__fail[] = "fuse_releasedir(): fuse_reply_* failed with %s";
static char __pyx_k_fuse_removexattr_fuse_reply__fai[] = "fuse_removexattr(): fuse_reply_* failed with %s";
static char __pyx_k_fuse_rename_fuse_reply__failed_w[] = "fuse_rename(): fuse_reply_* failed with %s";
static char __pyx_k_fuse_rmdir_fuse_reply__failed_wi[] = "fuse_rmdir(): fuse_reply_* failed with %s";
static char __pyx_k_fuse_setattr_clock_gettime_CLOCK[] = "fuse_setattr(): clock_gettime(CLOCK_REALTIME) failed with %s";
static char __pyx_k_fuse_setxattr_fuse_reply__failed[] = "fuse_setxattr(): fuse_reply_* failed with %s";
static char __pyx_k_fuse_statfs_fuse_reply__failed_w[] = "fuse_statfs(): fuse_reply_* failed with %s";
static char __pyx_k_fuse_unlink_fuse_reply__failed_w[] = "fuse_unlink(): fuse_reply_* failed with %s";
static char __pyx_k_fuse_write_fuse_reply_err_d_fail[] = "fuse_write(): fuse_reply_err(%d) failed with %s";
static char __pyx_k_fuse_write_fuse_reply_err_failed[] = "fuse_write(): fuse_reply_err failed with %s after exception";
static char __pyx_k_fuse_write_fuse_reply_write_fail[] = "fuse_write(): fuse_reply_write failed with %s";
static char __pyx_k_handler_raised_exception_sending[] = "handler raised exception, sending SIGTERM to self.";
static char __pyx_k_home_nikratio_in_progress_pytho_2[] = "/home/nikratio/in-progress/python-llfuse/src/llfuse/fuse_api.pxi";
static PyObject *__pyx_n_s_BaseException;
static PyObject *__pyx_kp_u_Calling_fuse_lowlevel_new;
static PyObject *__pyx_kp_u_Calling_fuse_mount;
static PyObject *__pyx_kp_u_Calling_fuse_remove_signal_handl;
static PyObject *__pyx_kp_u_Calling_fuse_session_add_chan;
static PyObject *__pyx_kp_u_Calling_fuse_session_destroy;
static PyObject *__pyx_kp_u_Calling_fuse_session_loop;
static PyObject *__pyx_kp_u_Calling_fuse_session_loop_mt;
static PyObject *__pyx_kp_u_Calling_fuse_session_remove_chan;
static PyObject *__pyx_kp_u_Calling_fuse_set_signal_handlers;
static PyObject *__pyx_kp_u_Calling_fuse_unmount;
static PyObject *__pyx_n_s_ENOATTR;
static PyObject *__pyx_n_s_EntryAttributes;
static PyObject *__pyx_kp_u_Exception_after_kill;
static PyObject *__pyx_n_s_FUSEError;
static PyObject *__pyx_kp_u_Global_lock_cannot_be_acquired_m;
static PyObject *__pyx_kp_u_Initializing_llfuse;
static PyObject *__pyx_kp_u_Lock_can_only_be_released_by_the;
static PyObject *__pyx_kp_u_Lock_not_initialized;
static PyObject *__pyx_kp_u_Lock_still_taken_after_receiving;
static PyObject *__pyx_kp_u_Need_to_call_init_before_main;
static PyObject *__pyx_n_s_OSError;
static PyObject *__pyx_n_s_Operations;
static PyObject *__pyx_kp_u_Other_thread_didn_t_take_lock;
static PyObject *__pyx_kp_b_Python_LLFUSE;
static PyObject *__pyx_n_s_Queue;
static PyObject *__pyx_n_s_ROOT_INODE;
static PyObject *__pyx_n_s_RequestContext;
static PyObject *__pyx_n_s_RuntimeError;
static PyObject *__pyx_kp_u_Terminated_main_loop_because_req;
static PyObject *__pyx_n_s_Thread;
static PyObject *__pyx_n_s_TypeError;
static PyObject *__pyx_n_s_ValueError;
static PyObject *__pyx_kp_u_Weird_request_received_r;
static PyObject *__pyx_kp_u_You_should_not_instantiate_this;
static PyObject *__pyx_kp_b__28;
static PyObject *__pyx_n_s_abspath;
static PyObject *__pyx_n_s_access;
static PyObject *__pyx_n_s_acquire;
static PyObject *__pyx_n_s_args;
static PyObject *__pyx_n_s_attr_only;
static PyObject *__pyx_n_u_attr_only;
static PyObject *__pyx_n_s_attr_timeout;
static PyObject *__pyx_n_s_block;
static PyObject *__pyx_n_s_buf;
static PyObject *__pyx_n_s_bufsize;
static PyObject *__pyx_n_s_close;
static PyObject *__pyx_n_s_cname;
static PyObject *__pyx_n_s_cnamespace;
static PyObject *__pyx_n_s_collections;
static PyObject *__pyx_n_s_count;
static PyObject *__pyx_n_s_cpath;
static PyObject *__pyx_n_s_create;
static PyObject *__pyx_n_s_cvalue;
static PyObject *__pyx_n_s_daemon;
static PyObject *__pyx_n_s_debug;
static PyObject *__pyx_n_s_decode;
static PyObject *__pyx_n_s_destroy;
static PyObject *__pyx_n_s_dirp;
static PyObject *__pyx_n_s_encode;
static PyObject *__pyx_n_s_ent;
static PyObject *__pyx_n_s_enter;
static PyObject *__pyx_n_s_entry_timeout;
static PyObject *__pyx_n_s_enumerate;
static PyObject *__pyx_n_s_errno;
static PyObject *__pyx_n_s_error;
static PyObject *__pyx_n_s_exc_info;
static PyObject *__pyx_n_s_exc_tb;
static PyObject *__pyx_n_s_exc_type;
static PyObject *__pyx_n_s_exc_val;
static PyObject *__pyx_n_s_exception;
static PyObject *__pyx_n_s_exit;
static PyObject *__pyx_n_s_f_args;
static PyObject *__pyx_n_s_f_bavail;
static PyObject *__pyx_n_s_f_bfree;
static PyObject *__pyx_n_s_f_blocks;
static PyObject *__pyx_n_s_f_bsize;
static PyObject *__pyx_n_s_f_favail;
static PyObject *__pyx_n_s_f_ffree;
static PyObject *__pyx_n_s_f_files;
static PyObject *__pyx_n_s_f_frsize;
static PyObject *__pyx_n_s_flush;
static PyObject *__pyx_n_s_forget;
static PyObject *__pyx_n_s_fse;
static PyObject *__pyx_n_s_fsync;
static PyObject *__pyx_n_s_fsyncdir;
static PyObject *__pyx_kp_u_fuse_access_fuse_reply__failed_w;
static PyObject *__pyx_kp_u_fuse_create_fuse_reply__failed_w;
static PyObject *__pyx_kp_u_fuse_flush_fuse_reply__failed_wi;
static PyObject *__pyx_kp_u_fuse_fsync_fuse_reply__failed_wi;
static PyObject *__pyx_kp_u_fuse_fsyncdir_fuse_reply__failed;
static PyObject *__pyx_kp_u_fuse_getattr_fuse_reply__failed;
static PyObject *__pyx_kp_u_fuse_getxattr_fuse_reply__failed;
static PyObject *__pyx_kp_u_fuse_link_fuse_reply__failed_wit;
static PyObject *__pyx_kp_u_fuse_listxattr_fuse_reply__faile;
static PyObject *__pyx_kp_u_fuse_lookup_fuse_reply__failed_w;
static PyObject *__pyx_kp_u_fuse_lowlevel_new_failed;
static PyObject *__pyx_kp_u_fuse_mkdir_fuse_reply__failed_wi;
static PyObject *__pyx_kp_u_fuse_mknod_fuse_reply__failed_wi;
static PyObject *__pyx_kp_u_fuse_mount_failed;
static PyObject *__pyx_kp_u_fuse_opendir_fuse_reply__failed;
static PyObject *__pyx_kp_u_fuse_options_must_be_of_type_str;
static PyObject *__pyx_kp_u_fuse_read_fuse_reply__failed_wit;
static PyObject *__pyx_kp_u_fuse_readdir_fuse_reply__failed;
static PyObject *__pyx_kp_u_fuse_readlink_fuse_reply__failed;
static PyObject *__pyx_kp_u_fuse_release_fuse_reply__failed;
static PyObject *__pyx_kp_u_fuse_releasedir_fuse_reply__fail;
static PyObject *__pyx_kp_u_fuse_removexattr_fuse_reply__fai;
static PyObject *__pyx_kp_u_fuse_rename_fuse_reply__failed_w;
static PyObject *__pyx_kp_u_fuse_rmdir_fuse_reply__failed_wi;
static PyObject *__pyx_kp_u_fuse_session_loop_failed;
static PyObject *__pyx_kp_u_fuse_session_loop_mt_failed;
static PyObject *__pyx_kp_u_fuse_set_signal_handlers_failed;
static PyObject *__pyx_kp_u_fuse_setattr_clock_gettime_CLOCK;
static PyObject *__pyx_kp_u_fuse_setattr_fuse_reply__failed;
static PyObject *__pyx_kp_u_fuse_setxattr_fuse_reply__failed;
static PyObject *__pyx_kp_u_fuse_statfs_fuse_reply__failed_w;
static PyObject *__pyx_kp_u_fuse_symlink_fuse_reply__failed;
static PyObject *__pyx_kp_u_fuse_unlink_fuse_reply__failed_w;
static PyObject *__pyx_kp_u_fuse_write_fuse_reply_err_d_fail;
static PyObject *__pyx_kp_u_fuse_write_fuse_reply_err_failed;
static PyObject *__pyx_kp_u_fuse_write_fuse_reply_write_fail;
static PyObject *__pyx_n_s_generation;
static PyObject *__pyx_n_s_get;
static PyObject *__pyx_n_s_getLogger;
static PyObject *__pyx_n_s_get_ino_t_bits;
static PyObject *__pyx_n_s_get_off_t_bits;
static PyObject *__pyx_n_s_getattr;
static PyObject *__pyx_n_s_getfilesystemencoding;
static PyObject *__pyx_n_s_getxattr;
static PyObject *__pyx_n_s_gid;
static PyObject *__pyx_kp_u_handler_raised_exception_sending;
static PyObject *__pyx_kp_s_home_nikratio_in_progress_pytho;
static PyObject *__pyx_kp_s_home_nikratio_in_progress_pytho_2;
static PyObject *__pyx_n_s_import;
static PyObject *__pyx_n_s_init;
static PyObject *__pyx_n_s_ino;
static PyObject *__pyx_n_s_inode;
static PyObject *__pyx_n_u_inode;
static PyObject *__pyx_n_s_inode_p;
static PyObject *__pyx_n_u_inode_p;
static PyObject *__pyx_n_s_inval_entry_req;
static PyObject *__pyx_n_u_inval_entry_req;
static PyObject *__pyx_n_s_inval_inode_req;
static PyObject *__pyx_n_u_inval_inode_req;
static PyObject *__pyx_n_s_invalidate_entry;
static PyObject *__pyx_n_s_invalidate_inode;
static PyObject *__pyx_n_s_join;
static PyObject *__pyx_n_s_len;
static PyObject *__pyx_n_s_link;
static PyObject *__pyx_n_s_listdir;
static PyObject *__pyx_n_s_listxattr;
static PyObject *__pyx_n_u_llfuse;
static PyObject *__pyx_n_s_llfuse_capi;
static PyObject *__pyx_n_s_llfuse_pyapi;
static PyObject *__pyx_n_s_lock;
static PyObject *__pyx_n_s_lock_released;
static PyObject *__pyx_n_s_log;
static PyObject *__pyx_n_s_logging;
static PyObject *__pyx_n_s_lookup;
static PyObject *__pyx_n_s_main;
static PyObject *__pyx_n_s_main_2;
static PyObject *__pyx_n_s_maxsize;
static PyObject *__pyx_n_s_mkdir;
static PyObject *__pyx_n_s_mknod;
static PyObject *__pyx_n_s_mountpoint;
static PyObject *__pyx_kp_u_mountpoint__argument_must_be_of;
static PyObject *__pyx_n_s_name;
static PyObject *__pyx_n_u_name;
static PyObject *__pyx_kp_u_name_argument_must_be_of_type_s;
static PyObject *__pyx_n_s_name_b;
static PyObject *__pyx_n_s_namedtuple;
static PyObject *__pyx_n_s_names;
static PyObject *__pyx_n_s_namespace;
static PyObject *__pyx_kp_u_namespace_parameter_must_be_sys;
static PyObject *__pyx_n_s_notify_loop;
static PyObject *__pyx_n_s_notify_queue;
static PyObject *__pyx_kp_b_o;
static PyObject *__pyx_n_s_open;
static PyObject *__pyx_n_s_opendir;
static PyObject *__pyx_n_s_ops;
static PyObject *__pyx_n_s_os;
static PyObject *__pyx_n_s_os_path;
static PyObject *__pyx_n_s_path;
static PyObject *__pyx_kp_u_path_argument_must_be_of_type_s;
static PyObject *__pyx_n_s_path_b;
static PyObject *__pyx_n_s_pid;
static PyObject *__pyx_n_s_put;
static PyObject *__pyx_n_s_queue;
static PyObject *__pyx_n_s_range;
static PyObject *__pyx_n_s_read;
static PyObject *__pyx_n_s_readdir;
static PyObject *__pyx_n_s_readlink;
static PyObject *__pyx_n_s_release;
static PyObject *__pyx_n_s_releasedir;
static PyObject *__pyx_n_s_removexattr;
static PyObject *__pyx_n_s_rename;
static PyObject *__pyx_n_s_req;
static PyObject *__pyx_n_s_res;
static PyObject *__pyx_n_s_ret;
static PyObject *__pyx_n_s_rmdir;
static PyObject *__pyx_n_s_setattr;
static PyObject *__pyx_n_s_setxattr;
static PyObject *__pyx_n_s_single;
static PyObject *__pyx_n_s_size_guess;
static PyObject *__pyx_n_s_st_atime;
static PyObject *__pyx_n_s_st_atime_ns;
static PyObject *__pyx_n_s_st_blksize;
static PyObject *__pyx_n_s_st_blocks;
static PyObject *__pyx_n_s_st_ctime;
static PyObject *__pyx_n_s_st_ctime_ns;
static PyObject *__pyx_n_s_st_gid;
static PyObject *__pyx_n_s_st_ino;
static PyObject *__pyx_n_s_st_mode;
static PyObject *__pyx_n_s_st_mtime;
static PyObject *__pyx_n_s_st_mtime_ns;
static PyObject *__pyx_n_s_st_nlink;
static PyObject *__pyx_n_s_st_rdev;
static PyObject *__pyx_n_s_st_size;
static PyObject *__pyx_n_s_st_uid;
static PyObject *__pyx_n_s_stacktrace;
static PyObject *__pyx_n_s_start;
static PyObject *__pyx_n_s_statfs;
static PyObject *__pyx_n_s_str_t;
static PyObject *__pyx_n_s_strerror;
static PyObject *__pyx_n_u_surrogateescape;
static PyObject *__pyx_n_s_symlink;
static PyObject *__pyx_n_s_sys;
static PyObject *__pyx_n_u_system;
static PyObject *__pyx_n_s_t;
static PyObject *__pyx_n_s_target;
static PyObject *__pyx_n_s_test;
static PyObject *__pyx_n_s_threading;
static PyObject *__pyx_n_s_timeout;
static PyObject *__pyx_n_s_tmp;
static PyObject *__pyx_n_s_uid;
static PyObject *__pyx_n_s_umask;
static PyObject *__pyx_n_s_unlink;
static PyObject *__pyx_n_s_unmount;
static PyObject *__pyx_kp_u_us_ascii;
static PyObject *__pyx_n_u_user;
static PyObject *__pyx_n_s_value;
static PyObject *__pyx_n_s_version;
static PyObject *__pyx_n_s_with_traceback;
static PyObject *__pyx_n_s_write;
static PyObject *__pyx_float_1e9;
static PyObject *__pyx_int_0;
static PyObject *__pyx_int_1;
static PyObject *__pyx_int_5;
static PyObject *__pyx_int_1000;
static PyObject *__pyx_int_1000000000;
static PyObject *__pyx_tuple_;
static PyObject *__pyx_tuple__2;
static PyObject *__pyx_tuple__3;
static PyObject *__pyx_tuple__4;
static PyObject *__pyx_tuple__5;
static PyObject *__pyx_tuple__6;
static PyObject *__pyx_tuple__7;
static PyObject *__pyx_tuple__8;
static PyObject *__pyx_tuple__9;
static PyObject *__pyx_tuple__10;
static PyObject *__pyx_tuple__11;
static PyObject *__pyx_tuple__12;
static PyObject *__pyx_tuple__13;
static PyObject *__pyx_tuple__14;
static PyObject *__pyx_tuple__15;
static PyObject *__pyx_tuple__16;
static PyObject *__pyx_tuple__17;
static PyObject *__pyx_tuple__18;
static PyObject *__pyx_tuple__19;
static PyObject *__pyx_tuple__20;
static PyObject *__pyx_tuple__21;
static PyObject *__pyx_tuple__22;
static PyObject *__pyx_tuple__23;
static PyObject *__pyx_tuple__24;
static PyObject *__pyx_tuple__25;
static PyObject *__pyx_tuple__26;
static PyObject *__pyx_tuple__27;
static PyObject *__pyx_tuple__29;
static PyObject *__pyx_tuple__30;
static PyObject *__pyx_tuple__31;
static PyObject *__pyx_tuple__32;
static PyObject *__pyx_tuple__33;
static PyObject *__pyx_tuple__34;
static PyObject *__pyx_tuple__35;
static PyObject *__pyx_tuple__36;
static PyObject *__pyx_tuple__37;
static PyObject *__pyx_tuple__38;
static PyObject *__pyx_tuple__39;
static PyObject *__pyx_tuple__40;
static PyObject *__pyx_tuple__41;
static PyObject *__pyx_tuple__42;
static PyObject *__pyx_tuple__43;
static PyObject *__pyx_tuple__44;
static PyObject *__pyx_tuple__45;
static PyObject *__pyx_tuple__46;
static PyObject *__pyx_tuple__47;
static PyObject *__pyx_tuple__48;
static PyObject *__pyx_tuple__51;
static PyObject *__pyx_tuple__52;
static PyObject *__pyx_tuple__53;
static PyObject *__pyx_tuple__54;
static PyObject *__pyx_tuple__55;
static PyObject *__pyx_tuple__56;
static PyObject *__pyx_tuple__57;
static PyObject *__pyx_tuple__58;
static PyObject *__pyx_tuple__59;
static PyObject *__pyx_tuple__60;
static PyObject *__pyx_tuple__61;
static PyObject *__pyx_tuple__62;
static PyObject *__pyx_tuple__63;
static PyObject *__pyx_tuple__64;
static PyObject *__pyx_tuple__65;
static PyObject *__pyx_tuple__66;
static PyObject *__pyx_tuple__67;
static PyObject *__pyx_tuple__68;
static PyObject *__pyx_tuple__69;
static PyObject *__pyx_tuple__70;
static PyObject *__pyx_tuple__71;
static PyObject *__pyx_tuple__72;
static PyObject *__pyx_tuple__73;
static PyObject *__pyx_tuple__74;
static PyObject *__pyx_tuple__75;
static PyObject *__pyx_tuple__76;
static PyObject *__pyx_tuple__77;
static PyObject *__pyx_tuple__79;
static PyObject *__pyx_tuple__81;
static PyObject *__pyx_tuple__83;
static PyObject *__pyx_tuple__85;
static PyObject *__pyx_tuple__87;
static PyObject *__pyx_tuple__89;
static PyObject *__pyx_tuple__91;
static PyObject *__pyx_tuple__93;
static PyObject *__pyx_codeobj__78;
static PyObject *__pyx_codeobj__80;
static PyObject *__pyx_codeobj__82;
static PyObject *__pyx_codeobj__84;
static PyObject *__pyx_codeobj__86;
static PyObject *__pyx_codeobj__88;
static PyObject *__pyx_codeobj__90;
static PyObject *__pyx_codeobj__92;
static PyObject *__pyx_codeobj__94;
static PyObject *__pyx_codeobj__95;
static PyObject *__pyx_codeobj__96;

/* "src/llfuse/handlers.pxi":14
 * '''
 * 
 * cdef void fuse_init (void *userdata, fuse_conn_info *conn) with gil:             # <<<<<<<<<<<<<<
 *     try:
 *         with lock:
 */

static void __pyx_f_6llfuse_4capi_fuse_init(CYTHON_UNUSED void *__pyx_v_userdata, CYTHON_UNUSED struct fuse_conn_info *__pyx_v_conn) {
  PyObject *__pyx_v_e = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  int __pyx_t_13;
  int __pyx_t_14;
  int __pyx_t_15;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  #ifdef WITH_THREAD
  PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure();
  #endif
  __Pyx_RefNannySetupContext("fuse_init", 0);

  /* "src/llfuse/handlers.pxi":15
 * 
 * cdef void fuse_init (void *userdata, fuse_conn_info *conn) with gil:
 *     try:             # <<<<<<<<<<<<<<
 *         with lock:
 *             operations.init()
 */
  {
    __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);
    __Pyx_XGOTREF(__pyx_t_1);
    __Pyx_XGOTREF(__pyx_t_2);
    __Pyx_XGOTREF(__pyx_t_3);
    /*try:*/ {

      /* "src/llfuse/handlers.pxi":16
 * cdef void fuse_init (void *userdata, fuse_conn_info *conn) with gil:
 *     try:
 *         with lock:             # <<<<<<<<<<<<<<
 *             operations.init()
 *     except BaseException as e:
 */
      /*with:*/ {
        __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_lock); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 16; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_5 = __Pyx_PyObject_LookupSpecial(__pyx_t_4, __pyx_n_s_exit); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 16; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_7 = __Pyx_PyObject_LookupSpecial(__pyx_t_4, __pyx_n_s_enter); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 16; __pyx_clineno = __LINE__; goto __pyx_L11_error;}
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_8 = NULL;
        if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_7))) {
          __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7);
          if (likely(__pyx_t_8)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
            __Pyx_INCREF(__pyx_t_8);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_7, function);
          }
        }
        if (__pyx_t_8) {
          __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_8); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 16; __pyx_clineno = __LINE__; goto __pyx_L11_error;}
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        } else {
          __pyx_t_6 = __Pyx_PyObject_CallNoArg(__pyx_t_7); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 16; __pyx_clineno = __LINE__; goto __pyx_L11_error;}
        }
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        /*try:*/ {
          {
            __Pyx_ExceptionSave(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
            __Pyx_XGOTREF(__pyx_t_9);
            __Pyx_XGOTREF(__pyx_t_10);
            __Pyx_XGOTREF(__pyx_t_11);
            /*try:*/ {

              /* "src/llfuse/handlers.pxi":17
 *     try:
 *         with lock:
 *             operations.init()             # <<<<<<<<<<<<<<
 *     except BaseException as e:
 *         handle_exc('init', e, NULL)
 */
              __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_6llfuse_4capi_operations, __pyx_n_s_init); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 17; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
              __Pyx_GOTREF(__pyx_t_6);
              __pyx_t_7 = NULL;
              if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_6))) {
                __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6);
                if (likely(__pyx_t_7)) {
                  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
                  __Pyx_INCREF(__pyx_t_7);
                  __Pyx_INCREF(function);
                  __Pyx_DECREF_SET(__pyx_t_6, function);
                }
              }
              if (__pyx_t_7) {
                __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_7); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 17; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
                __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
              } else {
                __pyx_t_4 = __Pyx_PyObject_CallNoArg(__pyx_t_6); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 17; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
              }
              __Pyx_GOTREF(__pyx_t_4);
              __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
              __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
            }
            __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
            __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
            __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
            goto __pyx_L24_try_end;
            __pyx_L17_error:;
            __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
            __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
            __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
            __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;

            /* "src/llfuse/handlers.pxi":16
 * cdef void fuse_init (void *userdata, fuse_conn_info *conn) with gil:
 *     try:
 *         with lock:             # <<<<<<<<<<<<<<
 *             operations.init()
 *     except BaseException as e:
 */
            /*except:*/ {
              __Pyx_AddTraceback("llfuse.capi.fuse_init", __pyx_clineno, __pyx_lineno, __pyx_filename);
              if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_6, &__pyx_t_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 16; __pyx_clineno = __LINE__; goto __pyx_L19_except_error;}
              __Pyx_GOTREF(__pyx_t_4);
              __Pyx_GOTREF(__pyx_t_6);
              __Pyx_GOTREF(__pyx_t_7);
              __pyx_t_8 = PyTuple_Pack(3, __pyx_t_4, __pyx_t_6, __pyx_t_7); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 16; __pyx_clineno = __LINE__; goto __pyx_L19_except_error;}
              __Pyx_GOTREF(__pyx_t_8);
              __pyx_t_12 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_8, NULL);
              __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
              __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
              if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 16; __pyx_clineno = __LINE__; goto __pyx_L19_except_error;}
              __Pyx_GOTREF(__pyx_t_12);
              __pyx_t_13 = __Pyx_PyObject_IsTrue(__pyx_t_12);
              __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
              if (__pyx_t_13 < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 16; __pyx_clineno = __LINE__; goto __pyx_L19_except_error;}
              __pyx_t_14 = ((!(__pyx_t_13 != 0)) != 0);
              if (__pyx_t_14) {
                __Pyx_GIVEREF(__pyx_t_4);
                __Pyx_GIVEREF(__pyx_t_6);
                __Pyx_XGIVEREF(__pyx_t_7);
                __Pyx_ErrRestore(__pyx_t_4, __pyx_t_6, __pyx_t_7);
                __pyx_t_4 = 0; __pyx_t_6 = 0; __pyx_t_7 = 0; 
                {__pyx_filename = __pyx_f[0]; __pyx_lineno = 16; __pyx_clineno = __LINE__; goto __pyx_L19_except_error;}
              }
              __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
              __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
              __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
              goto __pyx_L18_exception_handled;
            }
            __pyx_L19_except_error:;
            __Pyx_XGIVEREF(__pyx_t_9);
            __Pyx_XGIVEREF(__pyx_t_10);
            __Pyx_XGIVEREF(__pyx_t_11);
            __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11);
            goto __pyx_L3_error;
            __pyx_L18_exception_handled:;
            __Pyx_XGIVEREF(__pyx_t_9);
            __Pyx_XGIVEREF(__pyx_t_10);
            __Pyx_XGIVEREF(__pyx_t_11);
            __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11);
            __pyx_L24_try_end:;
          }
        }
        /*finally:*/ {
          /*normal exit:*/{
            if (__pyx_t_5) {
              __pyx_t_11 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_tuple_, NULL);
              __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
              if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 16; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
              __Pyx_GOTREF(__pyx_t_11);
              __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
            }
            goto __pyx_L16;
          }
          __pyx_L16:;
        }
        goto __pyx_L28;
        __pyx_L11_error:;
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        goto __pyx_L3_error;
        __pyx_L28:;
      }
    }
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    goto __pyx_L10_try_end;
    __pyx_L3_error:;
    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;

    /* "src/llfuse/handlers.pxi":18
 *         with lock:
 *             operations.init()
 *     except BaseException as e:             # <<<<<<<<<<<<<<
 *         handle_exc('init', e, NULL)
 * 
 */
    __pyx_t_15 = PyErr_ExceptionMatches(__pyx_builtin_BaseException);
    if (__pyx_t_15) {
      __Pyx_AddTraceback("llfuse.capi.fuse_init", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_7, &__pyx_t_6, &__pyx_t_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 18; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_6);
      __pyx_v_e = __pyx_t_6;
      /*try:*/ {

        /* "src/llfuse/handlers.pxi":19
 *             operations.init()
 *     except BaseException as e:
 *         handle_exc('init', e, NULL)             # <<<<<<<<<<<<<<
 * 
 * cdef void fuse_destroy (void *userdata) with gil:
 */
        __pyx_f_6llfuse_4capi_handle_exc(__pyx_k_init, __pyx_v_e, NULL);
      }

      /* "src/llfuse/handlers.pxi":18
 *         with lock:
 *             operations.init()
 *     except BaseException as e:             # <<<<<<<<<<<<<<
 *         handle_exc('init', e, NULL)
 * 
 */
      /*finally:*/ {
        /*normal exit:*/{
          __Pyx_DECREF(__pyx_v_e);
          __pyx_v_e = NULL;
          goto __pyx_L35;
        }
        __pyx_L35:;
      }
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      goto __pyx_L4_exception_handled;
    }
    goto __pyx_L5_except_error;
    __pyx_L5_except_error:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L1_error;
    __pyx_L4_exception_handled:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    __pyx_L10_try_end:;
  }

  /* "src/llfuse/handlers.pxi":14
 * '''
 * 
 * cdef void fuse_init (void *userdata, fuse_conn_info *conn) with gil:             # <<<<<<<<<<<<<<
 *     try:
 *         with lock:
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_WriteUnraisable("llfuse.capi.fuse_init", __pyx_clineno, __pyx_lineno, __pyx_filename, 0);
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_e);
  __Pyx_RefNannyFinishContext();
  #ifdef WITH_THREAD
  PyGILState_Release(__pyx_gilstate_save);
  #endif
}

/* "src/llfuse/handlers.pxi":21
 *         handle_exc('init', e, NULL)
 * 
 * cdef void fuse_destroy (void *userdata) with gil:             # <<<<<<<<<<<<<<
 *     # Note: called by fuse_session_destroy(), i.e. not as part of the
 *     # main loop but only when llfuse.close() is called.
 */

static void __pyx_f_6llfuse_4capi_fuse_destroy(CYTHON_UNUSED void *__pyx_v_userdata) {
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_t_7;
  int __pyx_t_8;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  #ifdef WITH_THREAD
  PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure();
  #endif
  __Pyx_RefNannySetupContext("fuse_destroy", 0);

  /* "src/llfuse/handlers.pxi":26
 *     # (therefore we don't obtain the global lock)
 *     global exc_info
 *     try:             # <<<<<<<<<<<<<<
 *         operations.destroy()
 *     except:
 */
  {
    __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);
    __Pyx_XGOTREF(__pyx_t_1);
    __Pyx_XGOTREF(__pyx_t_2);
    __Pyx_XGOTREF(__pyx_t_3);
    /*try:*/ {

      /* "src/llfuse/handlers.pxi":27
 *     global exc_info
 *     try:
 *         operations.destroy()             # <<<<<<<<<<<<<<
 *     except:
 *         if not exc_info:
 */
      __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_6llfuse_4capi_operations, __pyx_n_s_destroy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 27; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_6 = NULL;
      if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_5))) {
        __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5);
        if (likely(__pyx_t_6)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
          __Pyx_INCREF(__pyx_t_6);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_5, function);
        }
      }
      if (__pyx_t_6) {
        __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_6); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 27; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      } else {
        __pyx_t_4 = __Pyx_PyObject_CallNoArg(__pyx_t_5); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 27; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    }
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    goto __pyx_L10_try_end;
    __pyx_L3_error:;
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;

    /* "src/llfuse/handlers.pxi":28
 *     try:
 *         operations.destroy()
 *     except:             # <<<<<<<<<<<<<<
 *         if not exc_info:
 *             exc_info = sys.exc_info()
 */
    /*except:*/ {
      __Pyx_AddTraceback("llfuse.capi.fuse_destroy", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_5, &__pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 28; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_GOTREF(__pyx_t_6);

      /* "src/llfuse/handlers.pxi":29
 *         operations.destroy()
 *     except:
 *         if not exc_info:             # <<<<<<<<<<<<<<
 *             exc_info = sys.exc_info()
 *         else:
 */
      __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_v_6llfuse_4capi_exc_info); if (unlikely(__pyx_t_7 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 29; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
      __pyx_t_8 = ((!__pyx_t_7) != 0);
      if (__pyx_t_8) {

        /* "src/llfuse/handlers.pxi":30
 *     except:
 *         if not exc_info:
 *             exc_info = sys.exc_info()             # <<<<<<<<<<<<<<
 *         else:
 *             log.exception('Exception after kill:')
 */
        __pyx_t_10 = __Pyx_GetModuleGlobalName(__pyx_n_s_sys); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 30; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
        __Pyx_GOTREF(__pyx_t_10);
        __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_exc_info); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 30; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
        __Pyx_GOTREF(__pyx_t_11);
        __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
        __pyx_t_10 = NULL;
        if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_11))) {
          __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_11);
          if (likely(__pyx_t_10)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
            __Pyx_INCREF(__pyx_t_10);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_11, function);
          }
        }
        if (__pyx_t_10) {
          __pyx_t_9 = __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_t_10); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 30; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
          __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
        } else {
          __pyx_t_9 = __Pyx_PyObject_CallNoArg(__pyx_t_11); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 30; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
        }
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
        __Pyx_XGOTREF(__pyx_v_6llfuse_4capi_exc_info);
        __Pyx_DECREF_SET(__pyx_v_6llfuse_4capi_exc_info, __pyx_t_9);
        __Pyx_GIVEREF(__pyx_t_9);
        __pyx_t_9 = 0;
        goto __pyx_L13;
      }
      /*else*/ {

        /* "src/llfuse/handlers.pxi":32
 *             exc_info = sys.exc_info()
 *         else:
 *             log.exception('Exception after kill:')             # <<<<<<<<<<<<<<
 * 
 * cdef void fuse_lookup (fuse_req_t req, fuse_ino_t parent,
 */
        __pyx_t_9 = __Pyx_GetModuleGlobalName(__pyx_n_s_log); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 32; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
        __Pyx_GOTREF(__pyx_t_9);
        __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_exception); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 32; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
        __Pyx_GOTREF(__pyx_t_11);
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_11, __pyx_tuple__2, NULL); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 32; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      }
      __pyx_L13:;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      goto __pyx_L4_exception_handled;
    }
    __pyx_L5_except_error:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L1_error;
    __pyx_L4_exception_handled:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    __pyx_L10_try_end:;
  }

  /* "src/llfuse/handlers.pxi":21
 *         handle_exc('init', e, NULL)
 * 
 * cdef void fuse_destroy (void *userdata) with gil:             # <<<<<<<<<<<<<<
 *     # Note: called by fuse_session_destroy(), i.e. not as part of the
 *     # main loop but only when llfuse.close() is called.
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_WriteUnraisable("llfuse.capi.fuse_destroy", __pyx_clineno, __pyx_lineno, __pyx_filename, 0);
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  #ifdef WITH_THREAD
  PyGILState_Release(__pyx_gilstate_save);
  #endif
}

/* "src/llfuse/handlers.pxi":34
 *             log.exception('Exception after kill:')
 * 
 * cdef void fuse_lookup (fuse_req_t req, fuse_ino_t parent,             # <<<<<<<<<<<<<<
 *                        const_char *name) with gil:
 *     cdef fuse_entry_param entry
 */

static void __pyx_f_6llfuse_4capi_fuse_lookup(fuse_req_t __pyx_v_req, fuse_ino_t __pyx_v_parent, const char *__pyx_v_name) {
  struct fuse_entry_param __pyx_v_entry;
  int __pyx_v_ret;
  PyObject *__pyx_v_attr = NULL;
  PyObject *__pyx_v_e = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  Py_ssize_t __pyx_t_13;
  PyObject *__pyx_t_14 = NULL;
  PyObject *__pyx_t_15 = NULL;
  int __pyx_t_16;
  int __pyx_t_17;
  int __pyx_t_18;
  int __pyx_t_19;
  char const *__pyx_t_20;
  PyObject *__pyx_t_21 = NULL;
  PyObject *__pyx_t_22 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  #ifdef WITH_THREAD
  PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure();
  #endif
  __Pyx_RefNannySetupContext("fuse_lookup", 0);

  /* "src/llfuse/handlers.pxi":39
 *     cdef int ret
 * 
 *     try:             # <<<<<<<<<<<<<<
 *         with lock:
 *             attr = operations.lookup(parent, PyBytes_FromString(name))
 */
  {
    __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);
    __Pyx_XGOTREF(__pyx_t_1);
    __Pyx_XGOTREF(__pyx_t_2);
    __Pyx_XGOTREF(__pyx_t_3);
    /*try:*/ {

      /* "src/llfuse/handlers.pxi":40
 * 
 *     try:
 *         with lock:             # <<<<<<<<<<<<<<
 *             attr = operations.lookup(parent, PyBytes_FromString(name))
 *         fill_entry_param(attr, &entry)
 */
      /*with:*/ {
        __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_lock); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 40; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_5 = __Pyx_PyObject_LookupSpecial(__pyx_t_4, __pyx_n_s_exit); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 40; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_7 = __Pyx_PyObject_LookupSpecial(__pyx_t_4, __pyx_n_s_enter); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 40; __pyx_clineno = __LINE__; goto __pyx_L11_error;}
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_8 = NULL;
        if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_7))) {
          __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7);
          if (likely(__pyx_t_8)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
            __Pyx_INCREF(__pyx_t_8);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_7, function);
          }
        }
        if (__pyx_t_8) {
          __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_8); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 40; __pyx_clineno = __LINE__; goto __pyx_L11_error;}
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        } else {
          __pyx_t_6 = __Pyx_PyObject_CallNoArg(__pyx_t_7); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 40; __pyx_clineno = __LINE__; goto __pyx_L11_error;}
        }
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        /*try:*/ {
          {
            __Pyx_ExceptionSave(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
            __Pyx_XGOTREF(__pyx_t_9);
            __Pyx_XGOTREF(__pyx_t_10);
            __Pyx_XGOTREF(__pyx_t_11);
            /*try:*/ {

              /* "src/llfuse/handlers.pxi":41
 *     try:
 *         with lock:
 *             attr = operations.lookup(parent, PyBytes_FromString(name))             # <<<<<<<<<<<<<<
 *         fill_entry_param(attr, &entry)
 *         ret = fuse_reply_entry(req, &entry)
 */
              __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_6llfuse_4capi_operations, __pyx_n_s_lookup); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 41; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
              __Pyx_GOTREF(__pyx_t_6);
              __pyx_t_7 = __Pyx_PyInt_From_fuse_ino_t(__pyx_v_parent); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 41; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
              __Pyx_GOTREF(__pyx_t_7);
              __pyx_t_8 = PyBytes_FromString(__pyx_v_name); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 41; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
              __Pyx_GOTREF(__pyx_t_8);
              __pyx_t_12 = NULL;
              __pyx_t_13 = 0;
              if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_6))) {
                __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_6);
                if (likely(__pyx_t_12)) {
                  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
                  __Pyx_INCREF(__pyx_t_12);
                  __Pyx_INCREF(function);
                  __Pyx_DECREF_SET(__pyx_t_6, function);
                  __pyx_t_13 = 1;
                }
              }
              __pyx_t_14 = PyTuple_New(2+__pyx_t_13); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 41; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
              __Pyx_GOTREF(__pyx_t_14);
              if (__pyx_t_12) {
                PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_12); __Pyx_GIVEREF(__pyx_t_12); __pyx_t_12 = NULL;
              }
              PyTuple_SET_ITEM(__pyx_t_14, 0+__pyx_t_13, __pyx_t_7);
              __Pyx_GIVEREF(__pyx_t_7);
              PyTuple_SET_ITEM(__pyx_t_14, 1+__pyx_t_13, __pyx_t_8);
              __Pyx_GIVEREF(__pyx_t_8);
              __pyx_t_7 = 0;
              __pyx_t_8 = 0;
              __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_14, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 41; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
              __Pyx_GOTREF(__pyx_t_4);
              __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
              __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
              __pyx_v_attr = __pyx_t_4;
              __pyx_t_4 = 0;
            }
            __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
            __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
            __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
            goto __pyx_L24_try_end;
            __pyx_L17_error:;
            __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
            __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
            __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
            __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
            __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
            __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;

            /* "src/llfuse/handlers.pxi":40
 * 
 *     try:
 *         with lock:             # <<<<<<<<<<<<<<
 *             attr = operations.lookup(parent, PyBytes_FromString(name))
 *         fill_entry_param(attr, &entry)
 */
            /*except:*/ {
              __Pyx_AddTraceback("llfuse.capi.fuse_lookup", __pyx_clineno, __pyx_lineno, __pyx_filename);
              if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_6, &__pyx_t_14) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 40; __pyx_clineno = __LINE__; goto __pyx_L19_except_error;}
              __Pyx_GOTREF(__pyx_t_4);
              __Pyx_GOTREF(__pyx_t_6);
              __Pyx_GOTREF(__pyx_t_14);
              __pyx_t_8 = PyTuple_Pack(3, __pyx_t_4, __pyx_t_6, __pyx_t_14); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 40; __pyx_clineno = __LINE__; goto __pyx_L19_except_error;}
              __Pyx_GOTREF(__pyx_t_8);
              __pyx_t_15 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_8, NULL);
              __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
              __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
              if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 40; __pyx_clineno = __LINE__; goto __pyx_L19_except_error;}
              __Pyx_GOTREF(__pyx_t_15);
              __pyx_t_16 = __Pyx_PyObject_IsTrue(__pyx_t_15);
              __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
              if (__pyx_t_16 < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 40; __pyx_clineno = __LINE__; goto __pyx_L19_except_error;}
              __pyx_t_17 = ((!(__pyx_t_16 != 0)) != 0);
              if (__pyx_t_17) {
                __Pyx_GIVEREF(__pyx_t_4);
                __Pyx_GIVEREF(__pyx_t_6);
                __Pyx_XGIVEREF(__pyx_t_14);
                __Pyx_ErrRestore(__pyx_t_4, __pyx_t_6, __pyx_t_14);
                __pyx_t_4 = 0; __pyx_t_6 = 0; __pyx_t_14 = 0; 
                {__pyx_filename = __pyx_f[0]; __pyx_lineno = 40; __pyx_clineno = __LINE__; goto __pyx_L19_except_error;}
              }
              __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
              __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
              __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
              goto __pyx_L18_exception_handled;
            }
            __pyx_L19_except_error:;
            __Pyx_XGIVEREF(__pyx_t_9);
            __Pyx_XGIVEREF(__pyx_t_10);
            __Pyx_XGIVEREF(__pyx_t_11);
            __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11);
            goto __pyx_L3_error;
            __pyx_L18_exception_handled:;
            __Pyx_XGIVEREF(__pyx_t_9);
            __Pyx_XGIVEREF(__pyx_t_10);
            __Pyx_XGIVEREF(__pyx_t_11);
            __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11);
            __pyx_L24_try_end:;
          }
        }
        /*finally:*/ {
          /*normal exit:*/{
            if (__pyx_t_5) {
              __pyx_t_11 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_tuple__3, NULL);
              __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
              if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 40; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
              __Pyx_GOTREF(__pyx_t_11);
              __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
            }
            goto __pyx_L16;
          }
          __pyx_L16:;
        }
        goto __pyx_L28;
        __pyx_L11_error:;
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        goto __pyx_L3_error;
        __pyx_L28:;
      }

      /* "src/llfuse/handlers.pxi":42
 *         with lock:
 *             attr = operations.lookup(parent, PyBytes_FromString(name))
 *         fill_entry_param(attr, &entry)             # <<<<<<<<<<<<<<
 *         ret = fuse_reply_entry(req, &entry)
 *     except FUSEError as e:
 */
      if (unlikely(!__pyx_v_attr)) { __Pyx_RaiseUnboundLocalError("attr"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 42; __pyx_clineno = __LINE__; goto __pyx_L3_error;} }
      __pyx_t_14 = __pyx_f_6llfuse_4capi_fill_entry_param(__pyx_v_attr, (&__pyx_v_entry)); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 42; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      __Pyx_GOTREF(__pyx_t_14);
      __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;

      /* "src/llfuse/handlers.pxi":43
 *             attr = operations.lookup(parent, PyBytes_FromString(name))
 *         fill_entry_param(attr, &entry)
 *         ret = fuse_reply_entry(req, &entry)             # <<<<<<<<<<<<<<
 *     except FUSEError as e:
 *         ret = fuse_reply_err(req, e.errno)
 */
      __pyx_v_ret = fuse_reply_entry(__pyx_v_req, (&__pyx_v_entry));
    }
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    goto __pyx_L10_try_end;
    __pyx_L3_error:;
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;

    /* "src/llfuse/handlers.pxi":44
 *         fill_entry_param(attr, &entry)
 *         ret = fuse_reply_entry(req, &entry)
 *     except FUSEError as e:             # <<<<<<<<<<<<<<
 *         ret = fuse_reply_err(req, e.errno)
 *     except BaseException as e:
 */
    __pyx_t_14 = __Pyx_GetModuleGlobalName(__pyx_n_s_FUSEError); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 44; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
    __Pyx_GOTREF(__pyx_t_14);
    __pyx_t_18 = PyErr_ExceptionMatches(__pyx_t_14);
    __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
    if (__pyx_t_18) {
      __Pyx_AddTraceback("llfuse.capi.fuse_lookup", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_14, &__pyx_t_6, &__pyx_t_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 44; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
      __Pyx_GOTREF(__pyx_t_14);
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_6);
      __pyx_v_e = __pyx_t_6;
      /*try:*/ {

        /* "src/llfuse/handlers.pxi":45
 *         ret = fuse_reply_entry(req, &entry)
 *     except FUSEError as e:
 *         ret = fuse_reply_err(req, e.errno)             # <<<<<<<<<<<<<<
 *     except BaseException as e:
 *         ret = handle_exc('lookup', e, req)
 */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_e, __pyx_n_s_errno); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 45; __pyx_clineno = __LINE__; goto __pyx_L34_error;}
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_18 = __Pyx_PyInt_As_int(__pyx_t_8); if (unlikely((__pyx_t_18 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 45; __pyx_clineno = __LINE__; goto __pyx_L34_error;}
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __pyx_v_ret = fuse_reply_err(__pyx_v_req, __pyx_t_18);
      }

      /* "src/llfuse/handlers.pxi":44
 *         fill_entry_param(attr, &entry)
 *         ret = fuse_reply_entry(req, &entry)
 *     except FUSEError as e:             # <<<<<<<<<<<<<<
 *         ret = fuse_reply_err(req, e.errno)
 *     except BaseException as e:
 */
      /*finally:*/ {
        /*normal exit:*/{
          __Pyx_DECREF(__pyx_v_e);
          __pyx_v_e = NULL;
          goto __pyx_L35;
        }
        /*exception exit:*/{
          __pyx_L34_error:;
          __pyx_t_5 = 0; __pyx_t_11 = 0; __pyx_t_10 = 0; __pyx_t_9 = 0; __pyx_t_15 = 0; __pyx_t_21 = 0;
          __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
          if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_9, &__pyx_t_15, &__pyx_t_21);
          if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_5, &__pyx_t_11, &__pyx_t_10) < 0)) __Pyx_ErrFetch(&__pyx_t_5, &__pyx_t_11, &__pyx_t_10);
          __Pyx_XGOTREF(__pyx_t_5);
          __Pyx_XGOTREF(__pyx_t_11);
          __Pyx_XGOTREF(__pyx_t_10);
          __Pyx_XGOTREF(__pyx_t_9);
          __Pyx_XGOTREF(__pyx_t_15);
          __Pyx_XGOTREF(__pyx_t_21);
          __pyx_t_18 = __pyx_lineno; __pyx_t_19 = __pyx_clineno; __pyx_t_20 = __pyx_filename;
          {
            __Pyx_DECREF(__pyx_v_e);
            __pyx_v_e = NULL;
          }
          if (PY_MAJOR_VERSION >= 3) {
            __Pyx_XGIVEREF(__pyx_t_9);
            __Pyx_XGIVEREF(__pyx_t_15);
            __Pyx_XGIVEREF(__pyx_t_21);
            __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_15, __pyx_t_21);
          }
          __Pyx_XGIVEREF(__pyx_t_5);
          __Pyx_XGIVEREF(__pyx_t_11);
          __Pyx_XGIVEREF(__pyx_t_10);
          __Pyx_ErrRestore(__pyx_t_5, __pyx_t_11, __pyx_t_10);
          __pyx_t_5 = 0; __pyx_t_11 = 0; __pyx_t_10 = 0; __pyx_t_9 = 0; __pyx_t_15 = 0; __pyx_t_21 = 0;
          __pyx_lineno = __pyx_t_18; __pyx_clineno = __pyx_t_19; __pyx_filename = __pyx_t_20;
          goto __pyx_L5_except_error;
        }
        __pyx_L35:;
      }
      __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      goto __pyx_L4_exception_handled;
    }

    /* "src/llfuse/handlers.pxi":46
 *     except FUSEError as e:
 *         ret = fuse_reply_err(req, e.errno)
 *     except BaseException as e:             # <<<<<<<<<<<<<<
 *         ret = handle_exc('lookup', e, req)
 * 
 */
    __pyx_t_19 = PyErr_ExceptionMatches(__pyx_builtin_BaseException);
    if (__pyx_t_19) {
      __Pyx_AddTraceback("llfuse.capi.fuse_lookup", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_6, &__pyx_t_14) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 46; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_GOTREF(__pyx_t_14);
      __Pyx_INCREF(__pyx_t_6);
      __pyx_v_e = __pyx_t_6;
      /*try:*/ {

        /* "src/llfuse/handlers.pxi":47
 *         ret = fuse_reply_err(req, e.errno)
 *     except BaseException as e:
 *         ret = handle_exc('lookup', e, req)             # <<<<<<<<<<<<<<
 * 
 *     if ret != 0:
 */
        __pyx_v_ret = __pyx_f_6llfuse_4capi_handle_exc(__pyx_k_lookup, __pyx_v_e, __pyx_v_req);
      }

      /* "src/llfuse/handlers.pxi":46
 *     except FUSEError as e:
 *         ret = fuse_reply_err(req, e.errno)
 *     except BaseException as e:             # <<<<<<<<<<<<<<
 *         ret = handle_exc('lookup', e, req)
 * 
 */
      /*finally:*/ {
        /*normal exit:*/{
          __Pyx_DECREF(__pyx_v_e);
          __pyx_v_e = NULL;
          goto __pyx_L46;
        }
        __pyx_L46:;
      }
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
      goto __pyx_L4_exception_handled;
    }
    goto __pyx_L5_except_error;
    __pyx_L5_except_error:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L1_error;
    __pyx_L4_exception_handled:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    __pyx_L10_try_end:;
  }

  /* "src/llfuse/handlers.pxi":49
 *         ret = handle_exc('lookup', e, req)
 * 
 *     if ret != 0:             # <<<<<<<<<<<<<<
 *         log.error('fuse_lookup(): fuse_reply_* failed with %s', strerror(-ret))
 * 
 */
  __pyx_t_17 = ((__pyx_v_ret != 0) != 0);
  if (__pyx_t_17) {

    /* "src/llfuse/handlers.pxi":50
 * 
 *     if ret != 0:
 *         log.error('fuse_lookup(): fuse_reply_* failed with %s', strerror(-ret))             # <<<<<<<<<<<<<<
 * 
 * 
 */
    __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s_log); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 50; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_error); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 50; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_8 = __Pyx_GetModuleGlobalName(__pyx_n_s_strerror); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 50; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_7 = __Pyx_PyInt_From_int((-__pyx_v_ret)); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 50; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_12 = NULL;
    if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_8))) {
      __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_8);
      if (likely(__pyx_t_12)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
        __Pyx_INCREF(__pyx_t_12);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_8, function);
      }
    }
    if (!__pyx_t_12) {
      __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_7); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 50; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_GOTREF(__pyx_t_6);
    } else {
      __pyx_t_22 = PyTuple_New(1+1); if (unlikely(!__pyx_t_22)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 50; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_22);
      PyTuple_SET_ITEM(__pyx_t_22, 0, __pyx_t_12); __Pyx_GIVEREF(__pyx_t_12); __pyx_t_12 = NULL;
      PyTuple_SET_ITEM(__pyx_t_22, 0+1, __pyx_t_7);
      __Pyx_GIVEREF(__pyx_t_7);
      __pyx_t_7 = 0;
      __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_22, NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 50; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
    }
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __pyx_t_8 = NULL;
    __pyx_t_13 = 0;
    if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_4);
      if (likely(__pyx_t_8)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
        __Pyx_INCREF(__pyx_t_8);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_4, function);
        __pyx_t_13 = 1;
      }
    }
    __pyx_t_22 = PyTuple_New(2+__pyx_t_13); if (unlikely(!__pyx_t_22)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 50; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_22);
    if (__pyx_t_8) {
      PyTuple_SET_ITEM(__pyx_t_22, 0, __pyx_t_8); __Pyx_GIVEREF(__pyx_t_8); __pyx_t_8 = NULL;
    }
    __Pyx_INCREF(__pyx_kp_u_fuse_lookup_fuse_reply__failed_w);
    PyTuple_SET_ITEM(__pyx_t_22, 0+__pyx_t_13, __pyx_kp_u_fuse_lookup_fuse_reply__failed_w);
    __Pyx_GIVEREF(__pyx_kp_u_fuse_lookup_fuse_reply__failed_w);
    PyTuple_SET_ITEM(__pyx_t_22, 1+__pyx_t_13, __pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_6);
    __pyx_t_6 = 0;
    __pyx_t_14 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_22, NULL); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 50; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_14);
    __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
    goto __pyx_L47;
  }
  __pyx_L47:;

  /* "src/llfuse/handlers.pxi":34
 *             log.exception('Exception after kill:')
 * 
 * cdef void fuse_lookup (fuse_req_t req, fuse_ino_t parent,             # <<<<<<<<<<<<<<
 *                        const_char *name) with gil:
 *     cdef fuse_entry_param entry
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_XDECREF(__pyx_t_14);
  __Pyx_XDECREF(__pyx_t_22);
  __Pyx_WriteUnraisable("llfuse.capi.fuse_lookup", __pyx_clineno, __pyx_lineno, __pyx_filename, 0);
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_attr);
  __Pyx_XDECREF(__pyx_v_e);
  __Pyx_RefNannyFinishContext();
  #ifdef WITH_THREAD
  PyGILState_Release(__pyx_gilstate_save);
  #endif
}

/* "src/llfuse/handlers.pxi":53
 * 
 * 
 * cdef void fuse_forget (fuse_req_t req, fuse_ino_t ino,             # <<<<<<<<<<<<<<
 *                        ulong_t nlookup) with gil:
 *     try:
 */

static void __pyx_f_6llfuse_4capi_fuse_forget(fuse_req_t __pyx_v_req, fuse_ino_t __pyx_v_ino, unsigned long __pyx_v_nlookup) {
  PyObject *__pyx_v_e = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  PyObject *__pyx_t_13 = NULL;
  int __pyx_t_14;
  int __pyx_t_15;
  int __pyx_t_16;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  #ifdef WITH_THREAD
  PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure();
  #endif
  __Pyx_RefNannySetupContext("fuse_forget", 0);

  /* "src/llfuse/handlers.pxi":55
 * cdef void fuse_forget (fuse_req_t req, fuse_ino_t ino,
 *                        ulong_t nlookup) with gil:
 *     try:             # <<<<<<<<<<<<<<
 *         with lock:
 *             operations.forget([(ino, nlookup)])
 */
  {
    __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);
    __Pyx_XGOTREF(__pyx_t_1);
    __Pyx_XGOTREF(__pyx_t_2);
    __Pyx_XGOTREF(__pyx_t_3);
    /*try:*/ {

      /* "src/llfuse/handlers.pxi":56
 *                        ulong_t nlookup) with gil:
 *     try:
 *         with lock:             # <<<<<<<<<<<<<<
 *             operations.forget([(ino, nlookup)])
 *     except BaseException as e:
 */
      /*with:*/ {
        __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_lock); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 56; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_5 = __Pyx_PyObject_LookupSpecial(__pyx_t_4, __pyx_n_s_exit); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 56; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_7 = __Pyx_PyObject_LookupSpecial(__pyx_t_4, __pyx_n_s_enter); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 56; __pyx_clineno = __LINE__; goto __pyx_L11_error;}
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_8 = NULL;
        if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_7))) {
          __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7);
          if (likely(__pyx_t_8)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
            __Pyx_INCREF(__pyx_t_8);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_7, function);
          }
        }
        if (__pyx_t_8) {
          __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_8); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 56; __pyx_clineno = __LINE__; goto __pyx_L11_error;}
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        } else {
          __pyx_t_6 = __Pyx_PyObject_CallNoArg(__pyx_t_7); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 56; __pyx_clineno = __LINE__; goto __pyx_L11_error;}
        }
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        /*try:*/ {
          {
            __Pyx_ExceptionSave(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
            __Pyx_XGOTREF(__pyx_t_9);
            __Pyx_XGOTREF(__pyx_t_10);
            __Pyx_XGOTREF(__pyx_t_11);
            /*try:*/ {

              /* "src/llfuse/handlers.pxi":57
 *     try:
 *         with lock:
 *             operations.forget([(ino, nlookup)])             # <<<<<<<<<<<<<<
 *     except BaseException as e:
 *         handle_exc('forget', e, NULL)
 */
              __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_6llfuse_4capi_operations, __pyx_n_s_forget); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 57; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
              __Pyx_GOTREF(__pyx_t_6);
              __pyx_t_7 = __Pyx_PyInt_From_fuse_ino_t(__pyx_v_ino); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 57; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
              __Pyx_GOTREF(__pyx_t_7);
              __pyx_t_8 = __Pyx_PyInt_From_unsigned_long(__pyx_v_nlookup); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 57; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
              __Pyx_GOTREF(__pyx_t_8);
              __pyx_t_12 = PyTuple_New(2); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 57; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
              __Pyx_GOTREF(__pyx_t_12);
              PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_t_7);
              __Pyx_GIVEREF(__pyx_t_7);
              PyTuple_SET_ITEM(__pyx_t_12, 1, __pyx_t_8);
              __Pyx_GIVEREF(__pyx_t_8);
              __pyx_t_7 = 0;
              __pyx_t_8 = 0;
              __pyx_t_8 = PyList_New(1); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 57; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
              __Pyx_GOTREF(__pyx_t_8);
              PyList_SET_ITEM(__pyx_t_8, 0, __pyx_t_12);
              __Pyx_GIVEREF(__pyx_t_12);
              __pyx_t_12 = 0;
              __pyx_t_12 = NULL;
              if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_6))) {
                __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_6);
                if (likely(__pyx_t_12)) {
                  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
                  __Pyx_INCREF(__pyx_t_12);
                  __Pyx_INCREF(function);
                  __Pyx_DECREF_SET(__pyx_t_6, function);
                }
              }
              if (!__pyx_t_12) {
                __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_8); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 57; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
                __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
                __Pyx_GOTREF(__pyx_t_4);
              } else {
                __pyx_t_7 = PyTuple_New(1+1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 57; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
                __Pyx_GOTREF(__pyx_t_7);
                PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_12); __Pyx_GIVEREF(__pyx_t_12); __pyx_t_12 = NULL;
                PyTuple_SET_ITEM(__pyx_t_7, 0+1, __pyx_t_8);
                __Pyx_GIVEREF(__pyx_t_8);
                __pyx_t_8 = 0;
                __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 57; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
                __Pyx_GOTREF(__pyx_t_4);
                __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
              }
              __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
              __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
            }
            __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
            __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
            __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
            goto __pyx_L24_try_end;
            __pyx_L17_error:;
            __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
            __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
            __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
            __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
            __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;

            /* "src/llfuse/handlers.pxi":56
 *                        ulong_t nlookup) with gil:
 *     try:
 *         with lock:             # <<<<<<<<<<<<<<
 *             operations.forget([(ino, nlookup)])
 *     except BaseException as e:
 */
            /*except:*/ {
              __Pyx_AddTraceback("llfuse.capi.fuse_forget", __pyx_clineno, __pyx_lineno, __pyx_filename);
              if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_6, &__pyx_t_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 56; __pyx_clineno = __LINE__; goto __pyx_L19_except_error;}
              __Pyx_GOTREF(__pyx_t_4);
              __Pyx_GOTREF(__pyx_t_6);
              __Pyx_GOTREF(__pyx_t_7);
              __pyx_t_8 = PyTuple_Pack(3, __pyx_t_4, __pyx_t_6, __pyx_t_7); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 56; __pyx_clineno = __LINE__; goto __pyx_L19_except_error;}
              __Pyx_GOTREF(__pyx_t_8);
              __pyx_t_13 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_8, NULL);
              __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
              __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
              if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 56; __pyx_clineno = __LINE__; goto __pyx_L19_except_error;}
              __Pyx_GOTREF(__pyx_t_13);
              __pyx_t_14 = __Pyx_PyObject_IsTrue(__pyx_t_13);
              __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
              if (__pyx_t_14 < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 56; __pyx_clineno = __LINE__; goto __pyx_L19_except_error;}
              __pyx_t_15 = ((!(__pyx_t_14 != 0)) != 0);
              if (__pyx_t_15) {
                __Pyx_GIVEREF(__pyx_t_4);
                __Pyx_GIVEREF(__pyx_t_6);
                __Pyx_XGIVEREF(__pyx_t_7);
                __Pyx_ErrRestore(__pyx_t_4, __pyx_t_6, __pyx_t_7);
                __pyx_t_4 = 0; __pyx_t_6 = 0; __pyx_t_7 = 0; 
                {__pyx_filename = __pyx_f[0]; __pyx_lineno = 56; __pyx_clineno = __LINE__; goto __pyx_L19_except_error;}
              }
              __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
              __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
              __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
              goto __pyx_L18_exception_handled;
            }
            __pyx_L19_except_error:;
            __Pyx_XGIVEREF(__pyx_t_9);
            __Pyx_XGIVEREF(__pyx_t_10);
            __Pyx_XGIVEREF(__pyx_t_11);
            __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11);
            goto __pyx_L3_error;
            __pyx_L18_exception_handled:;
            __Pyx_XGIVEREF(__pyx_t_9);
            __Pyx_XGIVEREF(__pyx_t_10);
            __Pyx_XGIVEREF(__pyx_t_11);
            __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11);
            __pyx_L24_try_end:;
          }
        }
        /*finally:*/ {
          /*normal exit:*/{
            if (__pyx_t_5) {
              __pyx_t_11 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_tuple__4, NULL);
              __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
              if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 56; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
              __Pyx_GOTREF(__pyx_t_11);
              __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
            }
            goto __pyx_L16;
          }
          __pyx_L16:;
        }
        goto __pyx_L28;
        __pyx_L11_error:;
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        goto __pyx_L3_error;
        __pyx_L28:;
      }
    }
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    goto __pyx_L10_try_end;
    __pyx_L3_error:;
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;

    /* "src/llfuse/handlers.pxi":58
 *         with lock:
 *             operations.forget([(ino, nlookup)])
 *     except BaseException as e:             # <<<<<<<<<<<<<<
 *         handle_exc('forget', e, NULL)
 *     fuse_reply_none(req)
 */
    __pyx_t_16 = PyErr_ExceptionMatches(__pyx_builtin_BaseException);
    if (__pyx_t_16) {
      __Pyx_AddTraceback("llfuse.capi.fuse_forget", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_7, &__pyx_t_6, &__pyx_t_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 58; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_6);
      __pyx_v_e = __pyx_t_6;
      /*try:*/ {

        /* "src/llfuse/handlers.pxi":59
 *             operations.forget([(ino, nlookup)])
 *     except BaseException as e:
 *         handle_exc('forget', e, NULL)             # <<<<<<<<<<<<<<
 *     fuse_reply_none(req)
 * 
 */
        __pyx_f_6llfuse_4capi_handle_exc(__pyx_k_forget, __pyx_v_e, NULL);
      }

      /* "src/llfuse/handlers.pxi":58
 *         with lock:
 *             operations.forget([(ino, nlookup)])
 *     except BaseException as e:             # <<<<<<<<<<<<<<
 *         handle_exc('forget', e, NULL)
 *     fuse_reply_none(req)
 */
      /*finally:*/ {
        /*normal exit:*/{
          __Pyx_DECREF(__pyx_v_e);
          __pyx_v_e = NULL;
          goto __pyx_L35;
        }
        __pyx_L35:;
      }
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      goto __pyx_L4_exception_handled;
    }
    goto __pyx_L5_except_error;
    __pyx_L5_except_error:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L1_error;
    __pyx_L4_exception_handled:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    __pyx_L10_try_end:;
  }

  /* "src/llfuse/handlers.pxi":60
 *     except BaseException as e:
 *         handle_exc('forget', e, NULL)
 *     fuse_reply_none(req)             # <<<<<<<<<<<<<<
 * 
 * cdef void fuse_getattr (fuse_req_t req, fuse_ino_t ino,
 */
  fuse_reply_none(__pyx_v_req);

  /* "src/llfuse/handlers.pxi":53
 * 
 * 
 * cdef void fuse_forget (fuse_req_t req, fuse_ino_t ino,             # <<<<<<<<<<<<<<
 *                        ulong_t nlookup) with gil:
 *     try:
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_WriteUnraisable("llfuse.capi.fuse_forget", __pyx_clineno, __pyx_lineno, __pyx_filename, 0);
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_e);
  __Pyx_RefNannyFinishContext();
  #ifdef WITH_THREAD
  PyGILState_Release(__pyx_gilstate_save);
  #endif
}

/* "src/llfuse/handlers.pxi":62
 *     fuse_reply_none(req)
 * 
 * cdef void fuse_getattr (fuse_req_t req, fuse_ino_t ino,             # <<<<<<<<<<<<<<
 *                         fuse_file_info *fi) with gil:
 *     cdef c_stat stat
 */

static void __pyx_f_6llfuse_4capi_fuse_getattr(fuse_req_t __pyx_v_req, fuse_ino_t __pyx_v_ino, CYTHON_UNUSED struct fuse_file_info *__pyx_v_fi) {
  struct stat __pyx_v_stat;
  int __pyx_v_ret;
  int __pyx_v_timeout;
  PyObject *__pyx_v_attr = NULL;
  PyObject *__pyx_v_e = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  PyObject *__pyx_t_13 = NULL;
  int __pyx_t_14;
  int __pyx_t_15;
  int __pyx_t_16;
  int __pyx_t_17;
  char const *__pyx_t_18;
  PyObject *__pyx_t_19 = NULL;
  PyObject *__pyx_t_20 = NULL;
  PyObject *__pyx_t_21 = NULL;
  Py_ssize_t __pyx_t_22;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  #ifdef WITH_THREAD
  PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure();
  #endif
  __Pyx_RefNannySetupContext("fuse_getattr", 0);

  /* "src/llfuse/handlers.pxi":68
 *     cdef int timeout
 * 
 *     try:             # <<<<<<<<<<<<<<
 *         with lock:
 *             attr = operations.getattr(ino)
 */
  {
    __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);
    __Pyx_XGOTREF(__pyx_t_1);
    __Pyx_XGOTREF(__pyx_t_2);
    __Pyx_XGOTREF(__pyx_t_3);
    /*try:*/ {

      /* "src/llfuse/handlers.pxi":69
 * 
 *     try:
 *         with lock:             # <<<<<<<<<<<<<<
 *             attr = operations.getattr(ino)
 * 
 */
      /*with:*/ {
        __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_lock); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 69; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_5 = __Pyx_PyObject_LookupSpecial(__pyx_t_4, __pyx_n_s_exit); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 69; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_7 = __Pyx_PyObject_LookupSpecial(__pyx_t_4, __pyx_n_s_enter); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 69; __pyx_clineno = __LINE__; goto __pyx_L11_error;}
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_8 = NULL;
        if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_7))) {
          __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7);
          if (likely(__pyx_t_8)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
            __Pyx_INCREF(__pyx_t_8);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_7, function);
          }
        }
        if (__pyx_t_8) {
          __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_8); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 69; __pyx_clineno = __LINE__; goto __pyx_L11_error;}
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        } else {
          __pyx_t_6 = __Pyx_PyObject_CallNoArg(__pyx_t_7); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 69; __pyx_clineno = __LINE__; goto __pyx_L11_error;}
        }
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        /*try:*/ {
          {
            __Pyx_ExceptionSave(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
            __Pyx_XGOTREF(__pyx_t_9);
            __Pyx_XGOTREF(__pyx_t_10);
            __Pyx_XGOTREF(__pyx_t_11);
            /*try:*/ {

              /* "src/llfuse/handlers.pxi":70
 *     try:
 *         with lock:
 *             attr = operations.getattr(ino)             # <<<<<<<<<<<<<<
 * 
 *         fill_c_stat(attr, &stat)
 */
              __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_6llfuse_4capi_operations, __pyx_n_s_getattr); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 70; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
              __Pyx_GOTREF(__pyx_t_6);
              __pyx_t_7 = __Pyx_PyInt_From_fuse_ino_t(__pyx_v_ino); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 70; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
              __Pyx_GOTREF(__pyx_t_7);
              __pyx_t_8 = NULL;
              if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_6))) {
                __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_6);
                if (likely(__pyx_t_8)) {
                  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
                  __Pyx_INCREF(__pyx_t_8);
                  __Pyx_INCREF(function);
                  __Pyx_DECREF_SET(__pyx_t_6, function);
                }
              }
              if (!__pyx_t_8) {
                __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_7); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 70; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
                __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
                __Pyx_GOTREF(__pyx_t_4);
              } else {
                __pyx_t_12 = PyTuple_New(1+1); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 70; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
                __Pyx_GOTREF(__pyx_t_12);
                PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_t_8); __Pyx_GIVEREF(__pyx_t_8); __pyx_t_8 = NULL;
                PyTuple_SET_ITEM(__pyx_t_12, 0+1, __pyx_t_7);
                __Pyx_GIVEREF(__pyx_t_7);
                __pyx_t_7 = 0;
                __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_12, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 70; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
                __Pyx_GOTREF(__pyx_t_4);
                __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
              }
              __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
              __pyx_v_attr = __pyx_t_4;
              __pyx_t_4 = 0;
            }
            __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
            __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
            __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
            goto __pyx_L24_try_end;
            __pyx_L17_error:;
            __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
            __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
            __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
            __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
            __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;

            /* "src/llfuse/handlers.pxi":69
 * 
 *     try:
 *         with lock:             # <<<<<<<<<<<<<<
 *             attr = operations.getattr(ino)
 * 
 */
            /*except:*/ {
              __Pyx_AddTraceback("llfuse.capi.fuse_getattr", __pyx_clineno, __pyx_lineno, __pyx_filename);
              if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_6, &__pyx_t_12) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 69; __pyx_clineno = __LINE__; goto __pyx_L19_except_error;}
              __Pyx_GOTREF(__pyx_t_4);
              __Pyx_GOTREF(__pyx_t_6);
              __Pyx_GOTREF(__pyx_t_12);
              __pyx_t_7 = PyTuple_Pack(3, __pyx_t_4, __pyx_t_6, __pyx_t_12); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 69; __pyx_clineno = __LINE__; goto __pyx_L19_except_error;}
              __Pyx_GOTREF(__pyx_t_7);
              __pyx_t_13 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, NULL);
              __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
              __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
              if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 69; __pyx_clineno = __LINE__; goto __pyx_L19_except_error;}
              __Pyx_GOTREF(__pyx_t_13);
              __pyx_t_14 = __Pyx_PyObject_IsTrue(__pyx_t_13);
              __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
              if (__pyx_t_14 < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 69; __pyx_clineno = __LINE__; goto __pyx_L19_except_error;}
              __pyx_t_15 = ((!(__pyx_t_14 != 0)) != 0);
              if (__pyx_t_15) {
                __Pyx_GIVEREF(__pyx_t_4);
                __Pyx_GIVEREF(__pyx_t_6);
                __Pyx_XGIVEREF(__pyx_t_12);
                __Pyx_ErrRestore(__pyx_t_4, __pyx_t_6, __pyx_t_12);
                __pyx_t_4 = 0; __pyx_t_6 = 0; __pyx_t_12 = 0; 
                {__pyx_filename = __pyx_f[0]; __pyx_lineno = 69; __pyx_clineno = __LINE__; goto __pyx_L19_except_error;}
              }
              __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
              __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
              __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
              goto __pyx_L18_exception_handled;
            }
            __pyx_L19_except_error:;
            __Pyx_XGIVEREF(__pyx_t_9);
            __Pyx_XGIVEREF(__pyx_t_10);
            __Pyx_XGIVEREF(__pyx_t_11);
            __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11);
            goto __pyx_L3_error;
            __pyx_L18_exception_handled:;
            __Pyx_XGIVEREF(__pyx_t_9);
            __Pyx_XGIVEREF(__pyx_t_10);
            __Pyx_XGIVEREF(__pyx_t_11);
            __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11);
            __pyx_L24_try_end:;
          }
        }
        /*finally:*/ {
          /*normal exit:*/{
            if (__pyx_t_5) {
              __pyx_t_11 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_tuple__5, NULL);
              __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
              if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 69; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
              __Pyx_GOTREF(__pyx_t_11);
              __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
            }
            goto __pyx_L16;
          }
          __pyx_L16:;
        }
        goto __pyx_L28;
        __pyx_L11_error:;
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        goto __pyx_L3_error;
        __pyx_L28:;
      }

      /* "src/llfuse/handlers.pxi":72
 *             attr = operations.getattr(ino)
 * 
 *         fill_c_stat(attr, &stat)             # <<<<<<<<<<<<<<
 *         timeout = attr.attr_timeout
 *         ret = fuse_reply_attr(req, &stat, timeout)
 */
      if (unlikely(!__pyx_v_attr)) { __Pyx_RaiseUnboundLocalError("attr"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 72; __pyx_clineno = __LINE__; goto __pyx_L3_error;} }
      __pyx_t_12 = __pyx_f_6llfuse_4capi_fill_c_stat(__pyx_v_attr, (&__pyx_v_stat)); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 72; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      __Pyx_GOTREF(__pyx_t_12);
      __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;

      /* "src/llfuse/handlers.pxi":73
 * 
 *         fill_c_stat(attr, &stat)
 *         timeout = attr.attr_timeout             # <<<<<<<<<<<<<<
 *         ret = fuse_reply_attr(req, &stat, timeout)
 *     except FUSEError as e:
 */
      if (unlikely(!__pyx_v_attr)) { __Pyx_RaiseUnboundLocalError("attr"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 73; __pyx_clineno = __LINE__; goto __pyx_L3_error;} }
      __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_v_attr, __pyx_n_s_attr_timeout); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 73; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      __Pyx_GOTREF(__pyx_t_12);
      __pyx_t_16 = __Pyx_PyInt_As_int(__pyx_t_12); if (unlikely((__pyx_t_16 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 73; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
      __pyx_v_timeout = __pyx_t_16;

      /* "src/llfuse/handlers.pxi":74
 *         fill_c_stat(attr, &stat)
 *         timeout = attr.attr_timeout
 *         ret = fuse_reply_attr(req, &stat, timeout)             # <<<<<<<<<<<<<<
 *     except FUSEError as e:
 *         ret = fuse_reply_err(req, e.errno)
 */
      __pyx_v_ret = fuse_reply_attr(__pyx_v_req, (&__pyx_v_stat), __pyx_v_timeout);
    }
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    goto __pyx_L10_try_end;
    __pyx_L3_error:;
    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;

    /* "src/llfuse/handlers.pxi":75
 *         timeout = attr.attr_timeout
 *         ret = fuse_reply_attr(req, &stat, timeout)
 *     except FUSEError as e:             # <<<<<<<<<<<<<<
 *         ret = fuse_reply_err(req, e.errno)
 *     except BaseException as e:
 */
    __pyx_t_12 = __Pyx_GetModuleGlobalName(__pyx_n_s_FUSEError); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 75; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
    __Pyx_GOTREF(__pyx_t_12);
    __pyx_t_16 = PyErr_ExceptionMatches(__pyx_t_12);
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    if (__pyx_t_16) {
      __Pyx_AddTraceback("llfuse.capi.fuse_getattr", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_12, &__pyx_t_6, &__pyx_t_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 75; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
      __Pyx_GOTREF(__pyx_t_12);
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_6);
      __pyx_v_e = __pyx_t_6;
      /*try:*/ {

        /* "src/llfuse/handlers.pxi":76
 *         ret = fuse_reply_attr(req, &stat, timeout)
 *     except FUSEError as e:
 *         ret = fuse_reply_err(req, e.errno)             # <<<<<<<<<<<<<<
 *     except BaseException as e:
 *         ret = handle_exc('getattr', e, req)
 */
        __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_e, __pyx_n_s_errno); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 76; __pyx_clineno = __LINE__; goto __pyx_L34_error;}
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_16 = __Pyx_PyInt_As_int(__pyx_t_7); if (unlikely((__pyx_t_16 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 76; __pyx_clineno = __LINE__; goto __pyx_L34_error;}
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __pyx_v_ret = fuse_reply_err(__pyx_v_req, __pyx_t_16);
      }

      /* "src/llfuse/handlers.pxi":75
 *         timeout = attr.attr_timeout
 *         ret = fuse_reply_attr(req, &stat, timeout)
 *     except FUSEError as e:             # <<<<<<<<<<<<<<
 *         ret = fuse_reply_err(req, e.errno)
 *     except BaseException as e:
 */
      /*finally:*/ {
        /*normal exit:*/{
          __Pyx_DECREF(__pyx_v_e);
          __pyx_v_e = NULL;
          goto __pyx_L35;
        }
        /*exception exit:*/{
          __pyx_L34_error:;
          __pyx_t_5 = 0; __pyx_t_11 = 0; __pyx_t_10 = 0; __pyx_t_9 = 0; __pyx_t_13 = 0; __pyx_t_19 = 0;
          __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_9, &__pyx_t_13, &__pyx_t_19);
          if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_5, &__pyx_t_11, &__pyx_t_10) < 0)) __Pyx_ErrFetch(&__pyx_t_5, &__pyx_t_11, &__pyx_t_10);
          __Pyx_XGOTREF(__pyx_t_5);
          __Pyx_XGOTREF(__pyx_t_11);
          __Pyx_XGOTREF(__pyx_t_10);
          __Pyx_XGOTREF(__pyx_t_9);
          __Pyx_XGOTREF(__pyx_t_13);
          __Pyx_XGOTREF(__pyx_t_19);
          __pyx_t_16 = __pyx_lineno; __pyx_t_17 = __pyx_clineno; __pyx_t_18 = __pyx_filename;
          {
            __Pyx_DECREF(__pyx_v_e);
            __pyx_v_e = NULL;
          }
          if (PY_MAJOR_VERSION >= 3) {
            __Pyx_XGIVEREF(__pyx_t_9);
            __Pyx_XGIVEREF(__pyx_t_13);
            __Pyx_XGIVEREF(__pyx_t_19);
            __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_13, __pyx_t_19);
          }
          __Pyx_XGIVEREF(__pyx_t_5);
          __Pyx_XGIVEREF(__pyx_t_11);
          __Pyx_XGIVEREF(__pyx_t_10);
          __Pyx_ErrRestore(__pyx_t_5, __pyx_t_11, __pyx_t_10);
          __pyx_t_5 = 0; __pyx_t_11 = 0; __pyx_t_10 = 0; __pyx_t_9 = 0; __pyx_t_13 = 0; __pyx_t_19 = 0;
          __pyx_lineno = __pyx_t_16; __pyx_clineno = __pyx_t_17; __pyx_filename = __pyx_t_18;
          goto __pyx_L5_except_error;
        }
        __pyx_L35:;
      }
      __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      goto __pyx_L4_exception_handled;
    }

    /* "src/llfuse/handlers.pxi":77
 *     except FUSEError as e:
 *         ret = fuse_reply_err(req, e.errno)
 *     except BaseException as e:             # <<<<<<<<<<<<<<
 *         ret = handle_exc('getattr', e, req)
 * 
 */
    __pyx_t_17 = PyErr_ExceptionMatches(__pyx_builtin_BaseException);
    if (__pyx_t_17) {
      __Pyx_AddTraceback("llfuse.capi.fuse_getattr", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_6, &__pyx_t_12) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 77; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_GOTREF(__pyx_t_12);
      __Pyx_INCREF(__pyx_t_6);
      __pyx_v_e = __pyx_t_6;
      /*try:*/ {

        /* "src/llfuse/handlers.pxi":78
 *         ret = fuse_reply_err(req, e.errno)
 *     except BaseException as e:
 *         ret = handle_exc('getattr', e, req)             # <<<<<<<<<<<<<<
 * 
 *     if ret != 0:
 */
        __pyx_v_ret = __pyx_f_6llfuse_4capi_handle_exc(__pyx_k_getattr, __pyx_v_e, __pyx_v_req);
      }

      /* "src/llfuse/handlers.pxi":77
 *     except FUSEError as e:
 *         ret = fuse_reply_err(req, e.errno)
 *     except BaseException as e:             # <<<<<<<<<<<<<<
 *         ret = handle_exc('getattr', e, req)
 * 
 */
      /*finally:*/ {
        /*normal exit:*/{
          __Pyx_DECREF(__pyx_v_e);
          __pyx_v_e = NULL;
          goto __pyx_L46;
        }
        __pyx_L46:;
      }
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
      goto __pyx_L4_exception_handled;
    }
    goto __pyx_L5_except_error;
    __pyx_L5_except_error:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L1_error;
    __pyx_L4_exception_handled:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    __pyx_L10_try_end:;
  }

  /* "src/llfuse/handlers.pxi":80
 *         ret = handle_exc('getattr', e, req)
 * 
 *     if ret != 0:             # <<<<<<<<<<<<<<
 *         log.error('fuse_getattr(): fuse_reply_* failed with %s', strerror(-ret))
 * 
 */
  __pyx_t_15 = ((__pyx_v_ret != 0) != 0);
  if (__pyx_t_15) {

    /* "src/llfuse/handlers.pxi":81
 * 
 *     if ret != 0:
 *         log.error('fuse_getattr(): fuse_reply_* failed with %s', strerror(-ret))             # <<<<<<<<<<<<<<
 * 
 * cdef void fuse_setattr (fuse_req_t req, fuse_ino_t ino, c_stat *stat,
 */
    __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s_log); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 81; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_error); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 81; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_7 = __Pyx_GetModuleGlobalName(__pyx_n_s_strerror); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 81; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_8 = __Pyx_PyInt_From_int((-__pyx_v_ret)); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 81; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_20 = NULL;
    if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_7))) {
      __pyx_t_20 = PyMethod_GET_SELF(__pyx_t_7);
      if (likely(__pyx_t_20)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
        __Pyx_INCREF(__pyx_t_20);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_7, function);
      }
    }
    if (!__pyx_t_20) {
      __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_8); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 81; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_GOTREF(__pyx_t_6);
    } else {
      __pyx_t_21 = PyTuple_New(1+1); if (unlikely(!__pyx_t_21)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 81; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_21);
      PyTuple_SET_ITEM(__pyx_t_21, 0, __pyx_t_20); __Pyx_GIVEREF(__pyx_t_20); __pyx_t_20 = NULL;
      PyTuple_SET_ITEM(__pyx_t_21, 0+1, __pyx_t_8);
      __Pyx_GIVEREF(__pyx_t_8);
      __pyx_t_8 = 0;
      __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_21, NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 81; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
    }
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_t_7 = NULL;
    __pyx_t_22 = 0;
    if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_4);
      if (likely(__pyx_t_7)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
        __Pyx_INCREF(__pyx_t_7);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_4, function);
        __pyx_t_22 = 1;
      }
    }
    __pyx_t_21 = PyTuple_New(2+__pyx_t_22); if (unlikely(!__pyx_t_21)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 81; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_21);
    if (__pyx_t_7) {
      PyTuple_SET_ITEM(__pyx_t_21, 0, __pyx_t_7); __Pyx_GIVEREF(__pyx_t_7); __pyx_t_7 = NULL;
    }
    __Pyx_INCREF(__pyx_kp_u_fuse_getattr_fuse_reply__failed);
    PyTuple_SET_ITEM(__pyx_t_21, 0+__pyx_t_22, __pyx_kp_u_fuse_getattr_fuse_reply__failed);
    __Pyx_GIVEREF(__pyx_kp_u_fuse_getattr_fuse_reply__failed);
    PyTuple_SET_ITEM(__pyx_t_21, 1+__pyx_t_22, __pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_6);
    __pyx_t_6 = 0;
    __pyx_t_12 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_21, NULL); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 81; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_12);
    __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    goto __pyx_L47;
  }
  __pyx_L47:;

  /* "src/llfuse/handlers.pxi":62
 *     fuse_reply_none(req)
 * 
 * cdef void fuse_getattr (fuse_req_t req, fuse_ino_t ino,             # <<<<<<<<<<<<<<
 *                         fuse_file_info *fi) with gil:
 *     cdef c_stat stat
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_XDECREF(__pyx_t_20);
  __Pyx_XDECREF(__pyx_t_21);
  __Pyx_WriteUnraisable("llfuse.capi.fuse_getattr", __pyx_clineno, __pyx_lineno, __pyx_filename, 0);
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_attr);
  __Pyx_XDECREF(__pyx_v_e);
  __Pyx_RefNannyFinishContext();
  #ifdef WITH_THREAD
  PyGILState_Release(__pyx_gilstate_save);
  #endif
}

/* "src/llfuse/handlers.pxi":83
 *         log.error('fuse_getattr(): fuse_reply_* failed with %s', strerror(-ret))
 * 
 * cdef void fuse_setattr (fuse_req_t req, fuse_ino_t ino, c_stat *stat,             # <<<<<<<<<<<<<<
 *                         int to_set, fuse_file_info *fi) with gil:
 *     cdef int ret
 */

static void __pyx_f_6llfuse_4capi_fuse_setattr(fuse_req_t __pyx_v_req, fuse_ino_t __pyx_v_ino, struct stat *__pyx_v_stat, int __pyx_v_to_set, CYTHON_UNUSED struct fuse_file_info *__pyx_v_fi) {
  int __pyx_v_ret;
  struct stat __pyx_v_stat_n;
  int __pyx_v_timeout;
  struct timespec __pyx_v_now;
  PyObject *__pyx_v_attr = NULL;
  PyObject *__pyx_v_e = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_t_7;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  Py_ssize_t __pyx_t_12;
  PyObject *__pyx_t_13 = NULL;
  PyObject *__pyx_t_14 = NULL;
  PyObject *__pyx_t_15 = NULL;
  PyObject *__pyx_t_16 = NULL;
  PyObject *__pyx_t_17 = NULL;
  int __pyx_t_18;
  int __pyx_t_19;
  int __pyx_t_20;
  char const *__pyx_t_21;
  PyObject *__pyx_t_22 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  #ifdef WITH_THREAD
  PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure();
  #endif
  __Pyx_RefNannySetupContext("fuse_setattr", 0);

  /* "src/llfuse/handlers.pxi":90
 *     cdef timespec now
 * 
 *     try:             # <<<<<<<<<<<<<<
 *         attr = EntryAttributes()
 *         if to_set & (FUSE_SET_ATTR_ATIME_NOW | FUSE_SET_ATTR_MTIME_NOW):
 */
  {
    __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);
    __Pyx_XGOTREF(__pyx_t_1);
    __Pyx_XGOTREF(__pyx_t_2);
    __Pyx_XGOTREF(__pyx_t_3);
    /*try:*/ {

      /* "src/llfuse/handlers.pxi":91
 * 
 *     try:
 *         attr = EntryAttributes()             # <<<<<<<<<<<<<<
 *         if to_set & (FUSE_SET_ATTR_ATIME_NOW | FUSE_SET_ATTR_MTIME_NOW):
 *             ret = clock_gettime(CLOCK_REALTIME, &now)
 */
      __pyx_t_5 = __Pyx_GetModuleGlobalName(__pyx_n_s_EntryAttributes); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 91; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_6 = NULL;
      if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_5))) {
        __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5);
        if (likely(__pyx_t_6)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
          __Pyx_INCREF(__pyx_t_6);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_5, function);
        }
      }
      if (__pyx_t_6) {
        __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_6); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 91; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      } else {
        __pyx_t_4 = __Pyx_PyObject_CallNoArg(__pyx_t_5); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 91; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_v_attr = __pyx_t_4;
      __pyx_t_4 = 0;

      /* "src/llfuse/handlers.pxi":92
 *     try:
 *         attr = EntryAttributes()
 *         if to_set & (FUSE_SET_ATTR_ATIME_NOW | FUSE_SET_ATTR_MTIME_NOW):             # <<<<<<<<<<<<<<
 *             ret = clock_gettime(CLOCK_REALTIME, &now)
 *             if ret != 0:
 */
      __pyx_t_7 = ((__pyx_v_to_set & (FUSE_SET_ATTR_ATIME_NOW | FUSE_SET_ATTR_MTIME_NOW)) != 0);
      if (__pyx_t_7) {

        /* "src/llfuse/handlers.pxi":93
 *         attr = EntryAttributes()
 *         if to_set & (FUSE_SET_ATTR_ATIME_NOW | FUSE_SET_ATTR_MTIME_NOW):
 *             ret = clock_gettime(CLOCK_REALTIME, &now)             # <<<<<<<<<<<<<<
 *             if ret != 0:
 *                 log.error('fuse_setattr(): clock_gettime(CLOCK_REALTIME) failed with %s',
 */
        __pyx_v_ret = clock_gettime(CLOCK_REALTIME, (&__pyx_v_now));

        /* "src/llfuse/handlers.pxi":94
 *         if to_set & (FUSE_SET_ATTR_ATIME_NOW | FUSE_SET_ATTR_MTIME_NOW):
 *             ret = clock_gettime(CLOCK_REALTIME, &now)
 *             if ret != 0:             # <<<<<<<<<<<<<<
 *                 log.error('fuse_setattr(): clock_gettime(CLOCK_REALTIME) failed with %s',
 *                           strerror(errno.errno))
 */
        __pyx_t_7 = ((__pyx_v_ret != 0) != 0);
        if (__pyx_t_7) {

          /* "src/llfuse/handlers.pxi":95
 *             ret = clock_gettime(CLOCK_REALTIME, &now)
 *             if ret != 0:
 *                 log.error('fuse_setattr(): clock_gettime(CLOCK_REALTIME) failed with %s',             # <<<<<<<<<<<<<<
 *                           strerror(errno.errno))
 * 
 */
          __pyx_t_5 = __Pyx_GetModuleGlobalName(__pyx_n_s_log); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 95; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
          __Pyx_GOTREF(__pyx_t_5);
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_error); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 95; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
          __Pyx_GOTREF(__pyx_t_6);
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;

          /* "src/llfuse/handlers.pxi":96
 *             if ret != 0:
 *                 log.error('fuse_setattr(): clock_gettime(CLOCK_REALTIME) failed with %s',
 *                           strerror(errno.errno))             # <<<<<<<<<<<<<<
 * 
 *         # Type casting required on 64bit, where double
 */
          __pyx_t_8 = __Pyx_GetModuleGlobalName(__pyx_n_s_strerror); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 96; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
          __Pyx_GOTREF(__pyx_t_8);
          __pyx_t_9 = __Pyx_PyInt_From_int(errno); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 96; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
          __Pyx_GOTREF(__pyx_t_9);
          __pyx_t_10 = NULL;
          if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_8))) {
            __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_8);
            if (likely(__pyx_t_10)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
              __Pyx_INCREF(__pyx_t_10);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_8, function);
            }
          }
          if (!__pyx_t_10) {
            __pyx_t_5 = __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_9); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 96; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
            __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
            __Pyx_GOTREF(__pyx_t_5);
          } else {
            __pyx_t_11 = PyTuple_New(1+1); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 96; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
            __Pyx_GOTREF(__pyx_t_11);
            PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_10); __Pyx_GIVEREF(__pyx_t_10); __pyx_t_10 = NULL;
            PyTuple_SET_ITEM(__pyx_t_11, 0+1, __pyx_t_9);
            __Pyx_GIVEREF(__pyx_t_9);
            __pyx_t_9 = 0;
            __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_11, NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 96; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
            __Pyx_GOTREF(__pyx_t_5);
            __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
          }
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
          __pyx_t_8 = NULL;
          __pyx_t_12 = 0;
          if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_6))) {
            __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_6);
            if (likely(__pyx_t_8)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
              __Pyx_INCREF(__pyx_t_8);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_6, function);
              __pyx_t_12 = 1;
            }
          }
          __pyx_t_11 = PyTuple_New(2+__pyx_t_12); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 95; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
          __Pyx_GOTREF(__pyx_t_11);
          if (__pyx_t_8) {
            PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_8); __Pyx_GIVEREF(__pyx_t_8); __pyx_t_8 = NULL;
          }
          __Pyx_INCREF(__pyx_kp_u_fuse_setattr_clock_gettime_CLOCK);
          PyTuple_SET_ITEM(__pyx_t_11, 0+__pyx_t_12, __pyx_kp_u_fuse_setattr_clock_gettime_CLOCK);
          __Pyx_GIVEREF(__pyx_kp_u_fuse_setattr_clock_gettime_CLOCK);
          PyTuple_SET_ITEM(__pyx_t_11, 1+__pyx_t_12, __pyx_t_5);
          __Pyx_GIVEREF(__pyx_t_5);
          __pyx_t_5 = 0;
          __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_11, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 95; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          goto __pyx_L12;
        }
        __pyx_L12:;
        goto __pyx_L11;
      }
      __pyx_L11:;

      /* "src/llfuse/handlers.pxi":100
 *         # Type casting required on 64bit, where double
 *         # is smaller than long int.
 *         if to_set & FUSE_SET_ATTR_ATIME:             # <<<<<<<<<<<<<<
 *             attr.st_atime = <double> stat.st_atime + <double> GET_ATIME_NS(stat) * 1e-9
 *             attr.st_atime_ns = stat.st_atime * 10**9 + GET_ATIME_NS(stat)
 */
      __pyx_t_7 = ((__pyx_v_to_set & FUSE_SET_ATTR_ATIME) != 0);
      if (__pyx_t_7) {

        /* "src/llfuse/handlers.pxi":101
 *         # is smaller than long int.
 *         if to_set & FUSE_SET_ATTR_ATIME:
 *             attr.st_atime = <double> stat.st_atime + <double> GET_ATIME_NS(stat) * 1e-9             # <<<<<<<<<<<<<<
 *             attr.st_atime_ns = stat.st_atime * 10**9 + GET_ATIME_NS(stat)
 *         elif to_set & FUSE_SET_ATTR_ATIME_NOW:
 */
        __pyx_t_4 = PyFloat_FromDouble((((double)__pyx_v_stat->st_atime) + (((double)GET_ATIME_NS(__pyx_v_stat)) * 1e-9))); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 101; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        __Pyx_GOTREF(__pyx_t_4);
        if (__Pyx_PyObject_SetAttrStr(__pyx_v_attr, __pyx_n_s_st_atime, __pyx_t_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 101; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

        /* "src/llfuse/handlers.pxi":102
 *         if to_set & FUSE_SET_ATTR_ATIME:
 *             attr.st_atime = <double> stat.st_atime + <double> GET_ATIME_NS(stat) * 1e-9
 *             attr.st_atime_ns = stat.st_atime * 10**9 + GET_ATIME_NS(stat)             # <<<<<<<<<<<<<<
 *         elif to_set & FUSE_SET_ATTR_ATIME_NOW:
 *             attr.st_atime = now.tv_sec
 */
        __pyx_t_4 = __Pyx_PyInt_From_long(((__pyx_v_stat->st_atime * 1000000000) + GET_ATIME_NS(__pyx_v_stat))); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 102; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        __Pyx_GOTREF(__pyx_t_4);
        if (__Pyx_PyObject_SetAttrStr(__pyx_v_attr, __pyx_n_s_st_atime_ns, __pyx_t_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 102; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        goto __pyx_L13;
      }

      /* "src/llfuse/handlers.pxi":103
 *             attr.st_atime = <double> stat.st_atime + <double> GET_ATIME_NS(stat) * 1e-9
 *             attr.st_atime_ns = stat.st_atime * 10**9 + GET_ATIME_NS(stat)
 *         elif to_set & FUSE_SET_ATTR_ATIME_NOW:             # <<<<<<<<<<<<<<
 *             attr.st_atime = now.tv_sec
 *             attr.st_atime_ns = now.tv_nsec
 */
      __pyx_t_7 = ((__pyx_v_to_set & FUSE_SET_ATTR_ATIME_NOW) != 0);
      if (__pyx_t_7) {

        /* "src/llfuse/handlers.pxi":104
 *             attr.st_atime_ns = stat.st_atime * 10**9 + GET_ATIME_NS(stat)
 *         elif to_set & FUSE_SET_ATTR_ATIME_NOW:
 *             attr.st_atime = now.tv_sec             # <<<<<<<<<<<<<<
 *             attr.st_atime_ns = now.tv_nsec
 *         else:
 */
        __pyx_t_4 = __Pyx_PyInt_From_time_t(__pyx_v_now.tv_sec); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 104; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        __Pyx_GOTREF(__pyx_t_4);
        if (__Pyx_PyObject_SetAttrStr(__pyx_v_attr, __pyx_n_s_st_atime, __pyx_t_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 104; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

        /* "src/llfuse/handlers.pxi":105
 *         elif to_set & FUSE_SET_ATTR_ATIME_NOW:
 *             attr.st_atime = now.tv_sec
 *             attr.st_atime_ns = now.tv_nsec             # <<<<<<<<<<<<<<
 *         else:
 *             attr.st_atime = attr.st_atime_ns = None
 */
        __pyx_t_4 = __Pyx_PyInt_From_long(__pyx_v_now.tv_nsec); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 105; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        __Pyx_GOTREF(__pyx_t_4);
        if (__Pyx_PyObject_SetAttrStr(__pyx_v_attr, __pyx_n_s_st_atime_ns, __pyx_t_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 105; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        goto __pyx_L13;
      }
      /*else*/ {

        /* "src/llfuse/handlers.pxi":107
 *             attr.st_atime_ns = now.tv_nsec
 *         else:
 *             attr.st_atime = attr.st_atime_ns = None             # <<<<<<<<<<<<<<
 * 
 *         if to_set & FUSE_SET_ATTR_MTIME:
 */
        if (__Pyx_PyObject_SetAttrStr(__pyx_v_attr, __pyx_n_s_st_atime, Py_None) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 107; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        if (__Pyx_PyObject_SetAttrStr(__pyx_v_attr, __pyx_n_s_st_atime_ns, Py_None) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 107; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
      __pyx_L13:;

      /* "src/llfuse/handlers.pxi":109
 *             attr.st_atime = attr.st_atime_ns = None
 * 
 *         if to_set & FUSE_SET_ATTR_MTIME:             # <<<<<<<<<<<<<<
 *             attr.st_mtime = <double> stat.st_mtime + <double> GET_MTIME_NS(stat) * 1e-9
 *             attr.st_mtime_ns = stat.st_mtime * 10**9 + GET_MTIME_NS(stat)
 */
      __pyx_t_7 = ((__pyx_v_to_set & FUSE_SET_ATTR_MTIME) != 0);
      if (__pyx_t_7) {

        /* "src/llfuse/handlers.pxi":110
 * 
 *         if to_set & FUSE_SET_ATTR_MTIME:
 *             attr.st_mtime = <double> stat.st_mtime + <double> GET_MTIME_NS(stat) * 1e-9             # <<<<<<<<<<<<<<
 *             attr.st_mtime_ns = stat.st_mtime * 10**9 + GET_MTIME_NS(stat)
 *         elif to_set & FUSE_SET_ATTR_MTIME_NOW:
 */
        __pyx_t_4 = PyFloat_FromDouble((((double)__pyx_v_stat->st_mtime) + (((double)GET_MTIME_NS(__pyx_v_stat)) * 1e-9))); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 110; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        __Pyx_GOTREF(__pyx_t_4);
        if (__Pyx_PyObject_SetAttrStr(__pyx_v_attr, __pyx_n_s_st_mtime, __pyx_t_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 110; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

        /* "src/llfuse/handlers.pxi":111
 *         if to_set & FUSE_SET_ATTR_MTIME:
 *             attr.st_mtime = <double> stat.st_mtime + <double> GET_MTIME_NS(stat) * 1e-9
 *             attr.st_mtime_ns = stat.st_mtime * 10**9 + GET_MTIME_NS(stat)             # <<<<<<<<<<<<<<
 *         elif to_set & FUSE_SET_ATTR_MTIME_NOW:
 *             attr.st_mtime = now.tv_sec
 */
        __pyx_t_4 = __Pyx_PyInt_From_long(((__pyx_v_stat->st_mtime * 1000000000) + GET_MTIME_NS(__pyx_v_stat))); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 111; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        __Pyx_GOTREF(__pyx_t_4);
        if (__Pyx_PyObject_SetAttrStr(__pyx_v_attr, __pyx_n_s_st_mtime_ns, __pyx_t_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 111; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        goto __pyx_L14;
      }

      /* "src/llfuse/handlers.pxi":112
 *             attr.st_mtime = <double> stat.st_mtime + <double> GET_MTIME_NS(stat) * 1e-9
 *             attr.st_mtime_ns = stat.st_mtime * 10**9 + GET_MTIME_NS(stat)
 *         elif to_set & FUSE_SET_ATTR_MTIME_NOW:             # <<<<<<<<<<<<<<
 *             attr.st_mtime = now.tv_sec
 *             attr.st_mtime_ns = now.tv_nsec
 */
      __pyx_t_7 = ((__pyx_v_to_set & FUSE_SET_ATTR_MTIME_NOW) != 0);
      if (__pyx_t_7) {

        /* "src/llfuse/handlers.pxi":113
 *             attr.st_mtime_ns = stat.st_mtime * 10**9 + GET_MTIME_NS(stat)
 *         elif to_set & FUSE_SET_ATTR_MTIME_NOW:
 *             attr.st_mtime = now.tv_sec             # <<<<<<<<<<<<<<
 *             attr.st_mtime_ns = now.tv_nsec
 *         else:
 */
        __pyx_t_4 = __Pyx_PyInt_From_time_t(__pyx_v_now.tv_sec); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 113; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        __Pyx_GOTREF(__pyx_t_4);
        if (__Pyx_PyObject_SetAttrStr(__pyx_v_attr, __pyx_n_s_st_mtime, __pyx_t_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 113; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

        /* "src/llfuse/handlers.pxi":114
 *         elif to_set & FUSE_SET_ATTR_MTIME_NOW:
 *             attr.st_mtime = now.tv_sec
 *             attr.st_mtime_ns = now.tv_nsec             # <<<<<<<<<<<<<<
 *         else:
 *             attr.st_mtime = attr.st_mtime_ns = None
 */
        __pyx_t_4 = __Pyx_PyInt_From_long(__pyx_v_now.tv_nsec); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 114; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        __Pyx_GOTREF(__pyx_t_4);
        if (__Pyx_PyObject_SetAttrStr(__pyx_v_attr, __pyx_n_s_st_mtime_ns, __pyx_t_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 114; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        goto __pyx_L14;
      }
      /*else*/ {

        /* "src/llfuse/handlers.pxi":116
 *             attr.st_mtime_ns = now.tv_nsec
 *         else:
 *             attr.st_mtime = attr.st_mtime_ns = None             # <<<<<<<<<<<<<<
 * 
 *         if to_set & FUSE_SET_ATTR_MODE:
 */
        if (__Pyx_PyObject_SetAttrStr(__pyx_v_attr, __pyx_n_s_st_mtime, Py_None) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 116; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        if (__Pyx_PyObject_SetAttrStr(__pyx_v_attr, __pyx_n_s_st_mtime_ns, Py_None) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 116; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
      __pyx_L14:;

      /* "src/llfuse/handlers.pxi":118
 *             attr.st_mtime = attr.st_mtime_ns = None
 * 
 *         if to_set & FUSE_SET_ATTR_MODE:             # <<<<<<<<<<<<<<
 *             attr.st_mode = stat.st_mode
 *         else:
 */
      __pyx_t_7 = ((__pyx_v_to_set & FUSE_SET_ATTR_MODE) != 0);
      if (__pyx_t_7) {

        /* "src/llfuse/handlers.pxi":119
 * 
 *         if to_set & FUSE_SET_ATTR_MODE:
 *             attr.st_mode = stat.st_mode             # <<<<<<<<<<<<<<
 *         else:
 *             attr.st_mode = None
 */
        __pyx_t_4 = __Pyx_PyInt_From_mode_t(__pyx_v_stat->st_mode); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 119; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        __Pyx_GOTREF(__pyx_t_4);
        if (__Pyx_PyObject_SetAttrStr(__pyx_v_attr, __pyx_n_s_st_mode, __pyx_t_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 119; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        goto __pyx_L15;
      }
      /*else*/ {

        /* "src/llfuse/handlers.pxi":121
 *             attr.st_mode = stat.st_mode
 *         else:
 *             attr.st_mode = None             # <<<<<<<<<<<<<<
 * 
 *         if to_set & FUSE_SET_ATTR_UID:
 */
        if (__Pyx_PyObject_SetAttrStr(__pyx_v_attr, __pyx_n_s_st_mode, Py_None) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 121; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
      __pyx_L15:;

      /* "src/llfuse/handlers.pxi":123
 *             attr.st_mode = None
 * 
 *         if to_set & FUSE_SET_ATTR_UID:             # <<<<<<<<<<<<<<
 *             attr.st_uid = stat.st_uid
 *         else:
 */
      __pyx_t_7 = ((__pyx_v_to_set & FUSE_SET_ATTR_UID) != 0);
      if (__pyx_t_7) {

        /* "src/llfuse/handlers.pxi":124
 * 
 *         if to_set & FUSE_SET_ATTR_UID:
 *             attr.st_uid = stat.st_uid             # <<<<<<<<<<<<<<
 *         else:
 *             attr.st_uid = None
 */
        __pyx_t_4 = __Pyx_PyInt_From_uid_t(__pyx_v_stat->st_uid); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 124; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        __Pyx_GOTREF(__pyx_t_4);
        if (__Pyx_PyObject_SetAttrStr(__pyx_v_attr, __pyx_n_s_st_uid, __pyx_t_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 124; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        goto __pyx_L16;
      }
      /*else*/ {

        /* "src/llfuse/handlers.pxi":126
 *             attr.st_uid = stat.st_uid
 *         else:
 *             attr.st_uid = None             # <<<<<<<<<<<<<<
 * 
 *         if to_set & FUSE_SET_ATTR_GID:
 */
        if (__Pyx_PyObject_SetAttrStr(__pyx_v_attr, __pyx_n_s_st_uid, Py_None) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 126; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
      __pyx_L16:;

      /* "src/llfuse/handlers.pxi":128
 *             attr.st_uid = None
 * 
 *         if to_set & FUSE_SET_ATTR_GID:             # <<<<<<<<<<<<<<
 *             attr.st_gid = stat.st_gid
 *         else:
 */
      __pyx_t_7 = ((__pyx_v_to_set & FUSE_SET_ATTR_GID) != 0);
      if (__pyx_t_7) {

        /* "src/llfuse/handlers.pxi":129
 * 
 *         if to_set & FUSE_SET_ATTR_GID:
 *             attr.st_gid = stat.st_gid             # <<<<<<<<<<<<<<
 *         else:
 *             attr.st_gid = None
 */
        __pyx_t_4 = __Pyx_PyInt_From_gid_t(__pyx_v_stat->st_gid); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 129; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        __Pyx_GOTREF(__pyx_t_4);
        if (__Pyx_PyObject_SetAttrStr(__pyx_v_attr, __pyx_n_s_st_gid, __pyx_t_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 129; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        goto __pyx_L17;
      }
      /*else*/ {

        /* "src/llfuse/handlers.pxi":131
 *             attr.st_gid = stat.st_gid
 *         else:
 *             attr.st_gid = None             # <<<<<<<<<<<<<<
 * 
 *         if to_set & FUSE_SET_ATTR_SIZE:
 */
        if (__Pyx_PyObject_SetAttrStr(__pyx_v_attr, __pyx_n_s_st_gid, Py_None) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 131; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
      __pyx_L17:;

      /* "src/llfuse/handlers.pxi":133
 *             attr.st_gid = None
 * 
 *         if to_set & FUSE_SET_ATTR_SIZE:             # <<<<<<<<<<<<<<
 *             attr.st_size = stat.st_size
 *         else:
 */
      __pyx_t_7 = ((__pyx_v_to_set & FUSE_SET_ATTR_SIZE) != 0);
      if (__pyx_t_7) {

        /* "src/llfuse/handlers.pxi":134
 * 
 *         if to_set & FUSE_SET_ATTR_SIZE:
 *             attr.st_size = stat.st_size             # <<<<<<<<<<<<<<
 *         else:
 *             attr.st_size = None
 */
        __pyx_t_4 = __Pyx_PyInt_From_off_t(__pyx_v_stat->st_size); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 134; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        __Pyx_GOTREF(__pyx_t_4);
        if (__Pyx_PyObject_SetAttrStr(__pyx_v_attr, __pyx_n_s_st_size, __pyx_t_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 134; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        goto __pyx_L18;
      }
      /*else*/ {

        /* "src/llfuse/handlers.pxi":136
 *             attr.st_size = stat.st_size
 *         else:
 *             attr.st_size = None             # <<<<<<<<<<<<<<
 * 
 *         with lock:
 */
        if (__Pyx_PyObject_SetAttrStr(__pyx_v_attr, __pyx_n_s_st_size, Py_None) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 136; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
      __pyx_L18:;

      /* "src/llfuse/handlers.pxi":138
 *             attr.st_size = None
 * 
 *         with lock:             # <<<<<<<<<<<<<<
 *             attr = operations.setattr(ino, attr)
 * 
 */
      /*with:*/ {
        __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_lock); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 138; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_13 = __Pyx_PyObject_LookupSpecial(__pyx_t_4, __pyx_n_s_exit); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 138; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        __Pyx_GOTREF(__pyx_t_13);
        __pyx_t_11 = __Pyx_PyObject_LookupSpecial(__pyx_t_4, __pyx_n_s_enter); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 138; __pyx_clineno = __LINE__; goto __pyx_L19_error;}
        __Pyx_GOTREF(__pyx_t_11);
        __pyx_t_5 = NULL;
        if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_11))) {
          __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_11);
          if (likely(__pyx_t_5)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
            __Pyx_INCREF(__pyx_t_5);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_11, function);
          }
        }
        if (__pyx_t_5) {
          __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_t_5); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 138; __pyx_clineno = __LINE__; goto __pyx_L19_error;}
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else {
          __pyx_t_6 = __Pyx_PyObject_CallNoArg(__pyx_t_11); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 138; __pyx_clineno = __LINE__; goto __pyx_L19_error;}
        }
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        /*try:*/ {
          {
            __Pyx_ExceptionSave(&__pyx_t_14, &__pyx_t_15, &__pyx_t_16);
            __Pyx_XGOTREF(__pyx_t_14);
            __Pyx_XGOTREF(__pyx_t_15);
            __Pyx_XGOTREF(__pyx_t_16);
            /*try:*/ {

              /* "src/llfuse/handlers.pxi":139
 * 
 *         with lock:
 *             attr = operations.setattr(ino, attr)             # <<<<<<<<<<<<<<
 * 
 *         fill_c_stat(attr, &stat_n)
 */
              __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_6llfuse_4capi_operations, __pyx_n_s_setattr); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 139; __pyx_clineno = __LINE__; goto __pyx_L25_error;}
              __Pyx_GOTREF(__pyx_t_6);
              __pyx_t_11 = __Pyx_PyInt_From_fuse_ino_t(__pyx_v_ino); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 139; __pyx_clineno = __LINE__; goto __pyx_L25_error;}
              __Pyx_GOTREF(__pyx_t_11);
              __pyx_t_5 = NULL;
              __pyx_t_12 = 0;
              if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_6))) {
                __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_6);
                if (likely(__pyx_t_5)) {
                  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
                  __Pyx_INCREF(__pyx_t_5);
                  __Pyx_INCREF(function);
                  __Pyx_DECREF_SET(__pyx_t_6, function);
                  __pyx_t_12 = 1;
                }
              }
              __pyx_t_8 = PyTuple_New(2+__pyx_t_12); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 139; __pyx_clineno = __LINE__; goto __pyx_L25_error;}
              __Pyx_GOTREF(__pyx_t_8);
              if (__pyx_t_5) {
                PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_5); __Pyx_GIVEREF(__pyx_t_5); __pyx_t_5 = NULL;
              }
              PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_12, __pyx_t_11);
              __Pyx_GIVEREF(__pyx_t_11);
              __Pyx_INCREF(__pyx_v_attr);
              PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_12, __pyx_v_attr);
              __Pyx_GIVEREF(__pyx_v_attr);
              __pyx_t_11 = 0;
              __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_8, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 139; __pyx_clineno = __LINE__; goto __pyx_L25_error;}
              __Pyx_GOTREF(__pyx_t_4);
              __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
              __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
              __Pyx_DECREF_SET(__pyx_v_attr, __pyx_t_4);
              __pyx_t_4 = 0;
            }
            __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
            __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0;
            __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0;
            goto __pyx_L32_try_end;
            __pyx_L25_error:;
            __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
            __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
            __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
            __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
            __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
            __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
            __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;

            /* "src/llfuse/handlers.pxi":138
 *             attr.st_size = None
 * 
 *         with lock:             # <<<<<<<<<<<<<<
 *             attr = operations.setattr(ino, attr)
 * 
 */
            /*except:*/ {
              __Pyx_AddTraceback("llfuse.capi.fuse_setattr", __pyx_clineno, __pyx_lineno, __pyx_filename);
              if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_6, &__pyx_t_8) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 138; __pyx_clineno = __LINE__; goto __pyx_L27_except_error;}
              __Pyx_GOTREF(__pyx_t_4);
              __Pyx_GOTREF(__pyx_t_6);
              __Pyx_GOTREF(__pyx_t_8);
              __pyx_t_11 = PyTuple_Pack(3, __pyx_t_4, __pyx_t_6, __pyx_t_8); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 138; __pyx_clineno = __LINE__; goto __pyx_L27_except_error;}
              __Pyx_GOTREF(__pyx_t_11);
              __pyx_t_17 = __Pyx_PyObject_Call(__pyx_t_13, __pyx_t_11, NULL);
              __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
              __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
              if (unlikely(!__pyx_t_17)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 138; __pyx_clineno = __LINE__; goto __pyx_L27_except_error;}
              __Pyx_GOTREF(__pyx_t_17);
              __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_17);
              __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
              if (__pyx_t_7 < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 138; __pyx_clineno = __LINE__; goto __pyx_L27_except_error;}
              __pyx_t_18 = ((!(__pyx_t_7 != 0)) != 0);
              if (__pyx_t_18) {
                __Pyx_GIVEREF(__pyx_t_4);
                __Pyx_GIVEREF(__pyx_t_6);
                __Pyx_XGIVEREF(__pyx_t_8);
                __Pyx_ErrRestore(__pyx_t_4, __pyx_t_6, __pyx_t_8);
                __pyx_t_4 = 0; __pyx_t_6 = 0; __pyx_t_8 = 0; 
                {__pyx_filename = __pyx_f[0]; __pyx_lineno = 138; __pyx_clineno = __LINE__; goto __pyx_L27_except_error;}
              }
              __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
              __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
              __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
              goto __pyx_L26_exception_handled;
            }
            __pyx_L27_except_error:;
            __Pyx_XGIVEREF(__pyx_t_14);
            __Pyx_XGIVEREF(__pyx_t_15);
            __Pyx_XGIVEREF(__pyx_t_16);
            __Pyx_ExceptionReset(__pyx_t_14, __pyx_t_15, __pyx_t_16);
            goto __pyx_L3_error;
            __pyx_L26_exception_handled:;
            __Pyx_XGIVEREF(__pyx_t_14);
            __Pyx_XGIVEREF(__pyx_t_15);
            __Pyx_XGIVEREF(__pyx_t_16);
            __Pyx_ExceptionReset(__pyx_t_14, __pyx_t_15, __pyx_t_16);
            __pyx_L32_try_end:;
          }
        }
        /*finally:*/ {
          /*normal exit:*/{
            if (__pyx_t_13) {
              __pyx_t_16 = __Pyx_PyObject_Call(__pyx_t_13, __pyx_tuple__6, NULL);
              __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
              if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 138; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
              __Pyx_GOTREF(__pyx_t_16);
              __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
            }
            goto __pyx_L24;
          }
          __pyx_L24:;
        }
        goto __pyx_L36;
        __pyx_L19_error:;
        __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
        goto __pyx_L3_error;
        __pyx_L36:;
      }

      /* "src/llfuse/handlers.pxi":141
 *             attr = operations.setattr(ino, attr)
 * 
 *         fill_c_stat(attr, &stat_n)             # <<<<<<<<<<<<<<
 *         timeout = attr.attr_timeout
 *         ret = fuse_reply_attr(req, &stat_n, timeout)
 */
      __pyx_t_8 = __pyx_f_6llfuse_4capi_fill_c_stat(__pyx_v_attr, (&__pyx_v_stat_n)); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 141; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

      /* "src/llfuse/handlers.pxi":142
 * 
 *         fill_c_stat(attr, &stat_n)
 *         timeout = attr.attr_timeout             # <<<<<<<<<<<<<<
 *         ret = fuse_reply_attr(req, &stat_n, timeout)
 *     except FUSEError as e:
 */
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_attr, __pyx_n_s_attr_timeout); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 142; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_19 = __Pyx_PyInt_As_int(__pyx_t_8); if (unlikely((__pyx_t_19 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 142; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_v_timeout = __pyx_t_19;

      /* "src/llfuse/handlers.pxi":143
 *         fill_c_stat(attr, &stat_n)
 *         timeout = attr.attr_timeout
 *         ret = fuse_reply_attr(req, &stat_n, timeout)             # <<<<<<<<<<<<<<
 *     except FUSEError as e:
 *         ret = fuse_reply_err(req, e.errno)
 */
      __pyx_v_ret = fuse_reply_attr(__pyx_v_req, (&__pyx_v_stat_n), __pyx_v_timeout);
    }
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    goto __pyx_L10_try_end;
    __pyx_L3_error:;
    __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
    __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;

    /* "src/llfuse/handlers.pxi":144
 *         timeout = attr.attr_timeout
 *         ret = fuse_reply_attr(req, &stat_n, timeout)
 *     except FUSEError as e:             # <<<<<<<<<<<<<<
 *         ret = fuse_reply_err(req, e.errno)
 *     except BaseException as e:
 */
    __pyx_t_8 = __Pyx_GetModuleGlobalName(__pyx_n_s_FUSEError); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 144; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_19 = PyErr_ExceptionMatches(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    if (__pyx_t_19) {
      __Pyx_AddTraceback("llfuse.capi.fuse_setattr", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_8, &__pyx_t_6, &__pyx_t_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 144; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_6);
      __pyx_v_e = __pyx_t_6;
      /*try:*/ {

        /* "src/llfuse/handlers.pxi":145
 *         ret = fuse_reply_attr(req, &stat_n, timeout)
 *     except FUSEError as e:
 *         ret = fuse_reply_err(req, e.errno)             # <<<<<<<<<<<<<<
 *     except BaseException as e:
 *         ret = handle_exc('setattr', e, req)
 */
        __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_e, __pyx_n_s_errno); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 145; __pyx_clineno = __LINE__; goto __pyx_L42_error;}
        __Pyx_GOTREF(__pyx_t_11);
        __pyx_t_19 = __Pyx_PyInt_As_int(__pyx_t_11); if (unlikely((__pyx_t_19 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 145; __pyx_clineno = __LINE__; goto __pyx_L42_error;}
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
        __pyx_v_ret = fuse_reply_err(__pyx_v_req, __pyx_t_19);
      }

      /* "src/llfuse/handlers.pxi":144
 *         timeout = attr.attr_timeout
 *         ret = fuse_reply_attr(req, &stat_n, timeout)
 *     except FUSEError as e:             # <<<<<<<<<<<<<<
 *         ret = fuse_reply_err(req, e.errno)
 *     except BaseException as e:
 */
      /*finally:*/ {
        /*normal exit:*/{
          __Pyx_DECREF(__pyx_v_e);
          __pyx_v_e = NULL;
          goto __pyx_L43;
        }
        /*exception exit:*/{
          __pyx_L42_error:;
          __pyx_t_13 = 0; __pyx_t_16 = 0; __pyx_t_15 = 0; __pyx_t_14 = 0; __pyx_t_17 = 0; __pyx_t_22 = 0;
          __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
          __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
          __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
          if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_14, &__pyx_t_17, &__pyx_t_22);
          if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_13, &__pyx_t_16, &__pyx_t_15) < 0)) __Pyx_ErrFetch(&__pyx_t_13, &__pyx_t_16, &__pyx_t_15);
          __Pyx_XGOTREF(__pyx_t_13);
          __Pyx_XGOTREF(__pyx_t_16);
          __Pyx_XGOTREF(__pyx_t_15);
          __Pyx_XGOTREF(__pyx_t_14);
          __Pyx_XGOTREF(__pyx_t_17);
          __Pyx_XGOTREF(__pyx_t_22);
          __pyx_t_19 = __pyx_lineno; __pyx_t_20 = __pyx_clineno; __pyx_t_21 = __pyx_filename;
          {
            __Pyx_DECREF(__pyx_v_e);
            __pyx_v_e = NULL;
          }
          if (PY_MAJOR_VERSION >= 3) {
            __Pyx_XGIVEREF(__pyx_t_14);
            __Pyx_XGIVEREF(__pyx_t_17);
            __Pyx_XGIVEREF(__pyx_t_22);
            __Pyx_ExceptionReset(__pyx_t_14, __pyx_t_17, __pyx_t_22);
          }
          __Pyx_XGIVEREF(__pyx_t_13);
          __Pyx_XGIVEREF(__pyx_t_16);
          __Pyx_XGIVEREF(__pyx_t_15);
          __Pyx_ErrRestore(__pyx_t_13, __pyx_t_16, __pyx_t_15);
          __pyx_t_13 = 0; __pyx_t_16 = 0; __pyx_t_15 = 0; __pyx_t_14 = 0; __pyx_t_17 = 0; __pyx_t_22 = 0;
          __pyx_lineno = __pyx_t_19; __pyx_clineno = __pyx_t_20; __pyx_filename = __pyx_t_21;
          goto __pyx_L5_except_error;
        }
        __pyx_L43:;
      }
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      goto __pyx_L4_exception_handled;
    }

    /* "src/llfuse/handlers.pxi":146
 *     except FUSEError as e:
 *         ret = fuse_reply_err(req, e.errno)
 *     except BaseException as e:             # <<<<<<<<<<<<<<
 *         ret = handle_exc('setattr', e, req)
 * 
 */
    __pyx_t_20 = PyErr_ExceptionMatches(__pyx_builtin_BaseException);
    if (__pyx_t_20) {
      __Pyx_AddTraceback("llfuse.capi.fuse_setattr", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_6, &__pyx_t_8) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 146; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_INCREF(__pyx_t_6);
      __pyx_v_e = __pyx_t_6;
      /*try:*/ {

        /* "src/llfuse/handlers.pxi":147
 *         ret = fuse_reply_err(req, e.errno)
 *     except BaseException as e:
 *         ret = handle_exc('setattr', e, req)             # <<<<<<<<<<<<<<
 * 
 *     if ret != 0:
 */
        __pyx_v_ret = __pyx_f_6llfuse_4capi_handle_exc(__pyx_k_setattr, __pyx_v_e, __pyx_v_req);
      }

      /* "src/llfuse/handlers.pxi":146
 *     except FUSEError as e:
 *         ret = fuse_reply_err(req, e.errno)
 *     except BaseException as e:             # <<<<<<<<<<<<<<
 *         ret = handle_exc('setattr', e, req)
 * 
 */
      /*finally:*/ {
        /*normal exit:*/{
          __Pyx_DECREF(__pyx_v_e);
          __pyx_v_e = NULL;
          goto __pyx_L54;
        }
        __pyx_L54:;
      }
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      goto __pyx_L4_exception_handled;
    }
    goto __pyx_L5_except_error;
    __pyx_L5_except_error:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L1_error;
    __pyx_L4_exception_handled:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    __pyx_L10_try_end:;
  }

  /* "src/llfuse/handlers.pxi":149
 *         ret = handle_exc('setattr', e, req)
 * 
 *     if ret != 0:             # <<<<<<<<<<<<<<
 *         log.error('fuse_setattr(): fuse_reply_* failed with %s', strerror(-ret))
 * 
 */
  __pyx_t_18 = ((__pyx_v_ret != 0) != 0);
  if (__pyx_t_18) {

    /* "src/llfuse/handlers.pxi":150
 * 
 *     if ret != 0:
 *         log.error('fuse_setattr(): fuse_reply_* failed with %s', strerror(-ret))             # <<<<<<<<<<<<<<
 * 
 * cdef void fuse_readlink (fuse_req_t req, fuse_ino_t ino) with gil:
 */
    __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s_log); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 150; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_error); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 150; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_11 = __Pyx_GetModuleGlobalName(__pyx_n_s_strerror); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 150; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_11);
    __pyx_t_5 = __Pyx_PyInt_From_int((-__pyx_v_ret)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 150; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_9 = NULL;
    if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_11))) {
      __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_11);
      if (likely(__pyx_t_9)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
        __Pyx_INCREF(__pyx_t_9);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_11, function);
      }
    }
    if (!__pyx_t_9) {
      __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_t_5); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 150; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_GOTREF(__pyx_t_6);
    } else {
      __pyx_t_10 = PyTuple_New(1+1); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 150; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_10);
      PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_9); __Pyx_GIVEREF(__pyx_t_9); __pyx_t_9 = NULL;
      PyTuple_SET_ITEM(__pyx_t_10, 0+1, __pyx_t_5);
      __Pyx_GIVEREF(__pyx_t_5);
      __pyx_t_5 = 0;
      __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_11, __pyx_t_10, NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 150; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    }
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __pyx_t_11 = NULL;
    __pyx_t_12 = 0;
    if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_4);
      if (likely(__pyx_t_11)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
        __Pyx_INCREF(__pyx_t_11);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_4, function);
        __pyx_t_12 = 1;
      }
    }
    __pyx_t_10 = PyTuple_New(2+__pyx_t_12); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 150; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_10);
    if (__pyx_t_11) {
      PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_11); __Pyx_GIVEREF(__pyx_t_11); __pyx_t_11 = NULL;
    }
    __Pyx_INCREF(__pyx_kp_u_fuse_setattr_fuse_reply__failed);
    PyTuple_SET_ITEM(__pyx_t_10, 0+__pyx_t_12, __pyx_kp_u_fuse_setattr_fuse_reply__failed);
    __Pyx_GIVEREF(__pyx_kp_u_fuse_setattr_fuse_reply__failed);
    PyTuple_SET_ITEM(__pyx_t_10, 1+__pyx_t_12, __pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_6);
    __pyx_t_6 = 0;
    __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_10, NULL); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 150; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    goto __pyx_L55;
  }
  __pyx_L55:;

  /* "src/llfuse/handlers.pxi":83
 *         log.error('fuse_getattr(): fuse_reply_* failed with %s', strerror(-ret))
 * 
 * cdef void fuse_setattr (fuse_req_t req, fuse_ino_t ino, c_stat *stat,             # <<<<<<<<<<<<<<
 *                         int to_set, fuse_file_info *fi) with gil:
 *     cdef int ret
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_WriteUnraisable("llfuse.capi.fuse_setattr", __pyx_clineno, __pyx_lineno, __pyx_filename, 0);
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_attr);
  __Pyx_XDECREF(__pyx_v_e);
  __Pyx_RefNannyFinishContext();
  #ifdef WITH_THREAD
  PyGILState_Release(__pyx_gilstate_save);
  #endif
}

/* "src/llfuse/handlers.pxi":152
 *         log.error('fuse_setattr(): fuse_reply_* failed with %s', strerror(-ret))
 * 
 * cdef void fuse_readlink (fuse_req_t req, fuse_ino_t ino) with gil:             # <<<<<<<<<<<<<<
 *     cdef int ret
 *     cdef char* name
 */

static void __pyx_f_6llfuse_4capi_fuse_readlink(fuse_req_t __pyx_v_req, fuse_ino_t __pyx_v_ino) {
  int __pyx_v_ret;
  char *__pyx_v_name;
  PyObject *__pyx_v_target = NULL;
  PyObject *__pyx_v_e = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  PyObject *__pyx_t_13 = NULL;
  int __pyx_t_14;
  int __pyx_t_15;
  char *__pyx_t_16;
  int __pyx_t_17;
  int __pyx_t_18;
  char const *__pyx_t_19;
  PyObject *__pyx_t_20 = NULL;
  PyObject *__pyx_t_21 = NULL;
  PyObject *__pyx_t_22 = NULL;
  Py_ssize_t __pyx_t_23;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  #ifdef WITH_THREAD
  PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure();
  #endif
  __Pyx_RefNannySetupContext("fuse_readlink", 0);

  /* "src/llfuse/handlers.pxi":155
 *     cdef int ret
 *     cdef char* name
 *     try:             # <<<<<<<<<<<<<<
 *         with lock:
 *             target = operations.readlink(ino)
 */
  {
    __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);
    __Pyx_XGOTREF(__pyx_t_1);
    __Pyx_XGOTREF(__pyx_t_2);
    __Pyx_XGOTREF(__pyx_t_3);
    /*try:*/ {

      /* "src/llfuse/handlers.pxi":156
 *     cdef char* name
 *     try:
 *         with lock:             # <<<<<<<<<<<<<<
 *             target = operations.readlink(ino)
 *         name = PyBytes_AsString(target)
 */
      /*with:*/ {
        __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_lock); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 156; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_5 = __Pyx_PyObject_LookupSpecial(__pyx_t_4, __pyx_n_s_exit); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 156; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_7 = __Pyx_PyObject_LookupSpecial(__pyx_t_4, __pyx_n_s_enter); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 156; __pyx_clineno = __LINE__; goto __pyx_L11_error;}
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_8 = NULL;
        if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_7))) {
          __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7);
          if (likely(__pyx_t_8)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
            __Pyx_INCREF(__pyx_t_8);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_7, function);
          }
        }
        if (__pyx_t_8) {
          __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_8); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 156; __pyx_clineno = __LINE__; goto __pyx_L11_error;}
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        } else {
          __pyx_t_6 = __Pyx_PyObject_CallNoArg(__pyx_t_7); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 156; __pyx_clineno = __LINE__; goto __pyx_L11_error;}
        }
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        /*try:*/ {
          {
            __Pyx_ExceptionSave(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
            __Pyx_XGOTREF(__pyx_t_9);
            __Pyx_XGOTREF(__pyx_t_10);
            __Pyx_XGOTREF(__pyx_t_11);
            /*try:*/ {

              /* "src/llfuse/handlers.pxi":157
 *     try:
 *         with lock:
 *             target = operations.readlink(ino)             # <<<<<<<<<<<<<<
 *         name = PyBytes_AsString(target)
 *         ret = fuse_reply_readlink(req, name)
 */
              __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_6llfuse_4capi_operations, __pyx_n_s_readlink); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 157; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
              __Pyx_GOTREF(__pyx_t_6);
              __pyx_t_7 = __Pyx_PyInt_From_fuse_ino_t(__pyx_v_ino); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 157; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
              __Pyx_GOTREF(__pyx_t_7);
              __pyx_t_8 = NULL;
              if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_6))) {
                __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_6);
                if (likely(__pyx_t_8)) {
                  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
                  __Pyx_INCREF(__pyx_t_8);
                  __Pyx_INCREF(function);
                  __Pyx_DECREF_SET(__pyx_t_6, function);
                }
              }
              if (!__pyx_t_8) {
                __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_7); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 157; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
                __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
                __Pyx_GOTREF(__pyx_t_4);
              } else {
                __pyx_t_12 = PyTuple_New(1+1); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 157; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
                __Pyx_GOTREF(__pyx_t_12);
                PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_t_8); __Pyx_GIVEREF(__pyx_t_8); __pyx_t_8 = NULL;
                PyTuple_SET_ITEM(__pyx_t_12, 0+1, __pyx_t_7);
                __Pyx_GIVEREF(__pyx_t_7);
                __pyx_t_7 = 0;
                __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_12, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 157; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
                __Pyx_GOTREF(__pyx_t_4);
                __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
              }
              __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
              __pyx_v_target = __pyx_t_4;
              __pyx_t_4 = 0;
            }
            __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
            __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
            __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
            goto __pyx_L24_try_end;
            __pyx_L17_error:;
            __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
            __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
            __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
            __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
            __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;

            /* "src/llfuse/handlers.pxi":156
 *     cdef char* name
 *     try:
 *         with lock:             # <<<<<<<<<<<<<<
 *             target = operations.readlink(ino)
 *         name = PyBytes_AsString(target)
 */
            /*except:*/ {
              __Pyx_AddTraceback("llfuse.capi.fuse_readlink", __pyx_clineno, __pyx_lineno, __pyx_filename);
              if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_6, &__pyx_t_12) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 156; __pyx_clineno = __LINE__; goto __pyx_L19_except_error;}
              __Pyx_GOTREF(__pyx_t_4);
              __Pyx_GOTREF(__pyx_t_6);
              __Pyx_GOTREF(__pyx_t_12);
              __pyx_t_7 = PyTuple_Pack(3, __pyx_t_4, __pyx_t_6, __pyx_t_12); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 156; __pyx_clineno = __LINE__; goto __pyx_L19_except_error;}
              __Pyx_GOTREF(__pyx_t_7);
              __pyx_t_13 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, NULL);
              __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
              __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
              if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 156; __pyx_clineno = __LINE__; goto __pyx_L19_except_error;}
              __Pyx_GOTREF(__pyx_t_13);
              __pyx_t_14 = __Pyx_PyObject_IsTrue(__pyx_t_13);
              __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
              if (__pyx_t_14 < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 156; __pyx_clineno = __LINE__; goto __pyx_L19_except_error;}
              __pyx_t_15 = ((!(__pyx_t_14 != 0)) != 0);
              if (__pyx_t_15) {
                __Pyx_GIVEREF(__pyx_t_4);
                __Pyx_GIVEREF(__pyx_t_6);
                __Pyx_XGIVEREF(__pyx_t_12);
                __Pyx_ErrRestore(__pyx_t_4, __pyx_t_6, __pyx_t_12);
                __pyx_t_4 = 0; __pyx_t_6 = 0; __pyx_t_12 = 0; 
                {__pyx_filename = __pyx_f[0]; __pyx_lineno = 156; __pyx_clineno = __LINE__; goto __pyx_L19_except_error;}
              }
              __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
              __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
              __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
              goto __pyx_L18_exception_handled;
            }
            __pyx_L19_except_error:;
            __Pyx_XGIVEREF(__pyx_t_9);
            __Pyx_XGIVEREF(__pyx_t_10);
            __Pyx_XGIVEREF(__pyx_t_11);
            __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11);
            goto __pyx_L3_error;
            __pyx_L18_exception_handled:;
            __Pyx_XGIVEREF(__pyx_t_9);
            __Pyx_XGIVEREF(__pyx_t_10);
            __Pyx_XGIVEREF(__pyx_t_11);
            __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11);
            __pyx_L24_try_end:;
          }
        }
        /*finally:*/ {
          /*normal exit:*/{
            if (__pyx_t_5) {
              __pyx_t_11 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_tuple__7, NULL);
              __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
              if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 156; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
              __Pyx_GOTREF(__pyx_t_11);
              __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
            }
            goto __pyx_L16;
          }
          __pyx_L16:;
        }
        goto __pyx_L28;
        __pyx_L11_error:;
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        goto __pyx_L3_error;
        __pyx_L28:;
      }

      /* "src/llfuse/handlers.pxi":158
 *         with lock:
 *             target = operations.readlink(ino)
 *         name = PyBytes_AsString(target)             # <<<<<<<<<<<<<<
 *         ret = fuse_reply_readlink(req, name)
 *     except FUSEError as e:
 */
      if (unlikely(!__pyx_v_target)) { __Pyx_RaiseUnboundLocalError("target"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 158; __pyx_clineno = __LINE__; goto __pyx_L3_error;} }
      __pyx_t_16 = PyBytes_AsString(__pyx_v_target); if (unlikely(__pyx_t_16 == NULL)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 158; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      __pyx_v_name = __pyx_t_16;

      /* "src/llfuse/handlers.pxi":159
 *             target = operations.readlink(ino)
 *         name = PyBytes_AsString(target)
 *         ret = fuse_reply_readlink(req, name)             # <<<<<<<<<<<<<<
 *     except FUSEError as e:
 *         ret = fuse_reply_err(req, e.errno)
 */
      __pyx_v_ret = fuse_reply_readlink(__pyx_v_req, __pyx_v_name);
    }
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    goto __pyx_L10_try_end;
    __pyx_L3_error:;
    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;

    /* "src/llfuse/handlers.pxi":160
 *         name = PyBytes_AsString(target)
 *         ret = fuse_reply_readlink(req, name)
 *     except FUSEError as e:             # <<<<<<<<<<<<<<
 *         ret = fuse_reply_err(req, e.errno)
 *     except BaseException as e:
 */
    __pyx_t_12 = __Pyx_GetModuleGlobalName(__pyx_n_s_FUSEError); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 160; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
    __Pyx_GOTREF(__pyx_t_12);
    __pyx_t_17 = PyErr_ExceptionMatches(__pyx_t_12);
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    if (__pyx_t_17) {
      __Pyx_AddTraceback("llfuse.capi.fuse_readlink", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_12, &__pyx_t_6, &__pyx_t_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 160; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
      __Pyx_GOTREF(__pyx_t_12);
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_6);
      __pyx_v_e = __pyx_t_6;
      /*try:*/ {

        /* "src/llfuse/handlers.pxi":161
 *         ret = fuse_reply_readlink(req, name)
 *     except FUSEError as e:
 *         ret = fuse_reply_err(req, e.errno)             # <<<<<<<<<<<<<<
 *     except BaseException as e:
 *         ret = handle_exc('readlink', e, req)
 */
        __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_e, __pyx_n_s_errno); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 161; __pyx_clineno = __LINE__; goto __pyx_L34_error;}
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_17 = __Pyx_PyInt_As_int(__pyx_t_7); if (unlikely((__pyx_t_17 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 161; __pyx_clineno = __LINE__; goto __pyx_L34_error;}
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __pyx_v_ret = fuse_reply_err(__pyx_v_req, __pyx_t_17);
      }

      /* "src/llfuse/handlers.pxi":160
 *         name = PyBytes_AsString(target)
 *         ret = fuse_reply_readlink(req, name)
 *     except FUSEError as e:             # <<<<<<<<<<<<<<
 *         ret = fuse_reply_err(req, e.errno)
 *     except BaseException as e:
 */
      /*finally:*/ {
        /*normal exit:*/{
          __Pyx_DECREF(__pyx_v_e);
          __pyx_v_e = NULL;
          goto __pyx_L35;
        }
        /*exception exit:*/{
          __pyx_L34_error:;
          __pyx_t_5 = 0; __pyx_t_11 = 0; __pyx_t_10 = 0; __pyx_t_9 = 0; __pyx_t_13 = 0; __pyx_t_20 = 0;
          __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_9, &__pyx_t_13, &__pyx_t_20);
          if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_5, &__pyx_t_11, &__pyx_t_10) < 0)) __Pyx_ErrFetch(&__pyx_t_5, &__pyx_t_11, &__pyx_t_10);
          __Pyx_XGOTREF(__pyx_t_5);
          __Pyx_XGOTREF(__pyx_t_11);
          __Pyx_XGOTREF(__pyx_t_10);
          __Pyx_XGOTREF(__pyx_t_9);
          __Pyx_XGOTREF(__pyx_t_13);
          __Pyx_XGOTREF(__pyx_t_20);
          __pyx_t_17 = __pyx_lineno; __pyx_t_18 = __pyx_clineno; __pyx_t_19 = __pyx_filename;
          {
            __Pyx_DECREF(__pyx_v_e);
            __pyx_v_e = NULL;
          }
          if (PY_MAJOR_VERSION >= 3) {
            __Pyx_XGIVEREF(__pyx_t_9);
            __Pyx_XGIVEREF(__pyx_t_13);
            __Pyx_XGIVEREF(__pyx_t_20);
            __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_13, __pyx_t_20);
          }
          __Pyx_XGIVEREF(__pyx_t_5);
          __Pyx_XGIVEREF(__pyx_t_11);
          __Pyx_XGIVEREF(__pyx_t_10);
          __Pyx_ErrRestore(__pyx_t_5, __pyx_t_11, __pyx_t_10);
          __pyx_t_5 = 0; __pyx_t_11 = 0; __pyx_t_10 = 0; __pyx_t_9 = 0; __pyx_t_13 = 0; __pyx_t_20 = 0;
          __pyx_lineno = __pyx_t_17; __pyx_clineno = __pyx_t_18; __pyx_filename = __pyx_t_19;
          goto __pyx_L5_except_error;
        }
        __pyx_L35:;
      }
      __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      goto __pyx_L4_exception_handled;
    }

    /* "src/llfuse/handlers.pxi":162
 *     except FUSEError as e:
 *         ret = fuse_reply_err(req, e.errno)
 *     except BaseException as e:             # <<<<<<<<<<<<<<
 *         ret = handle_exc('readlink', e, req)
 * 
 */
    __pyx_t_18 = PyErr_ExceptionMatches(__pyx_builtin_BaseException);
    if (__pyx_t_18) {
      __Pyx_AddTraceback("llfuse.capi.fuse_readlink", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_6, &__pyx_t_12) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 162; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_GOTREF(__pyx_t_12);
      __Pyx_INCREF(__pyx_t_6);
      __pyx_v_e = __pyx_t_6;
      /*try:*/ {

        /* "src/llfuse/handlers.pxi":163
 *         ret = fuse_reply_err(req, e.errno)
 *     except BaseException as e:
 *         ret = handle_exc('readlink', e, req)             # <<<<<<<<<<<<<<
 * 
 *     if ret != 0:
 */
        __pyx_v_ret = __pyx_f_6llfuse_4capi_handle_exc(__pyx_k_readlink, __pyx_v_e, __pyx_v_req);
      }

      /* "src/llfuse/handlers.pxi":162
 *     except FUSEError as e:
 *         ret = fuse_reply_err(req, e.errno)
 *     except BaseException as e:             # <<<<<<<<<<<<<<
 *         ret = handle_exc('readlink', e, req)
 * 
 */
      /*finally:*/ {
        /*normal exit:*/{
          __Pyx_DECREF(__pyx_v_e);
          __pyx_v_e = NULL;
          goto __pyx_L46;
        }
        __pyx_L46:;
      }
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
      goto __pyx_L4_exception_handled;
    }
    goto __pyx_L5_except_error;
    __pyx_L5_except_error:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L1_error;
    __pyx_L4_exception_handled:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    __pyx_L10_try_end:;
  }

  /* "src/llfuse/handlers.pxi":165
 *         ret = handle_exc('readlink', e, req)
 * 
 *     if ret != 0:             # <<<<<<<<<<<<<<
 *         log.error('fuse_readlink(): fuse_reply_* failed with %s', strerror(-ret))
 * 
 */
  __pyx_t_15 = ((__pyx_v_ret != 0) != 0);
  if (__pyx_t_15) {

    /* "src/llfuse/handlers.pxi":166
 * 
 *     if ret != 0:
 *         log.error('fuse_readlink(): fuse_reply_* failed with %s', strerror(-ret))             # <<<<<<<<<<<<<<
 * 
 * cdef void fuse_mknod (fuse_req_t req, fuse_ino_t parent, const_char *name,
 */
    __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s_log); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 166; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_error); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 166; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_7 = __Pyx_GetModuleGlobalName(__pyx_n_s_strerror); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 166; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_8 = __Pyx_PyInt_From_int((-__pyx_v_ret)); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 166; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_21 = NULL;
    if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_7))) {
      __pyx_t_21 = PyMethod_GET_SELF(__pyx_t_7);
      if (likely(__pyx_t_21)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
        __Pyx_INCREF(__pyx_t_21);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_7, function);
      }
    }
    if (!__pyx_t_21) {
      __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_8); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 166; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_GOTREF(__pyx_t_6);
    } else {
      __pyx_t_22 = PyTuple_New(1+1); if (unlikely(!__pyx_t_22)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 166; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_22);
      PyTuple_SET_ITEM(__pyx_t_22, 0, __pyx_t_21); __Pyx_GIVEREF(__pyx_t_21); __pyx_t_21 = NULL;
      PyTuple_SET_ITEM(__pyx_t_22, 0+1, __pyx_t_8);
      __Pyx_GIVEREF(__pyx_t_8);
      __pyx_t_8 = 0;
      __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_22, NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 166; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
    }
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_t_7 = NULL;
    __pyx_t_23 = 0;
    if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_4);
      if (likely(__pyx_t_7)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
        __Pyx_INCREF(__pyx_t_7);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_4, function);
        __pyx_t_23 = 1;
      }
    }
    __pyx_t_22 = PyTuple_New(2+__pyx_t_23); if (unlikely(!__pyx_t_22)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 166; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_22);
    if (__pyx_t_7) {
      PyTuple_SET_ITEM(__pyx_t_22, 0, __pyx_t_7); __Pyx_GIVEREF(__pyx_t_7); __pyx_t_7 = NULL;
    }
    __Pyx_INCREF(__pyx_kp_u_fuse_readlink_fuse_reply__failed);
    PyTuple_SET_ITEM(__pyx_t_22, 0+__pyx_t_23, __pyx_kp_u_fuse_readlink_fuse_reply__failed);
    __Pyx_GIVEREF(__pyx_kp_u_fuse_readlink_fuse_reply__failed);
    PyTuple_SET_ITEM(__pyx_t_22, 1+__pyx_t_23, __pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_6);
    __pyx_t_6 = 0;
    __pyx_t_12 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_22, NULL); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 166; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_12);
    __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    goto __pyx_L47;
  }
  __pyx_L47:;

  /* "src/llfuse/handlers.pxi":152
 *         log.error('fuse_setattr(): fuse_reply_* failed with %s', strerror(-ret))
 * 
 * cdef void fuse_readlink (fuse_req_t req, fuse_ino_t ino) with gil:             # <<<<<<<<<<<<<<
 *     cdef int ret
 *     cdef char* name
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_XDECREF(__pyx_t_21);
  __Pyx_XDECREF(__pyx_t_22);
  __Pyx_WriteUnraisable("llfuse.capi.fuse_readlink", __pyx_clineno, __pyx_lineno, __pyx_filename, 0);
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_target);
  __Pyx_XDECREF(__pyx_v_e);
  __Pyx_RefNannyFinishContext();
  #ifdef WITH_THREAD
  PyGILState_Release(__pyx_gilstate_save);
  #endif
}

/* "src/llfuse/handlers.pxi":168
 *         log.error('fuse_readlink(): fuse_reply_* failed with %s', strerror(-ret))
 * 
 * cdef void fuse_mknod (fuse_req_t req, fuse_ino_t parent, const_char *name,             # <<<<<<<<<<<<<<
 *                       mode_t mode, dev_t rdev) with gil:
 *     cdef int ret
 */

static void __pyx_f_6llfuse_4capi_fuse_mknod(fuse_req_t __pyx_v_req, fuse_ino_t __pyx_v_parent, const char *__pyx_v_name, mode_t __pyx_v_mode, dev_t __pyx_v_rdev) {
  int __pyx_v_ret;
  struct fuse_entry_param __pyx_v_entry;
  PyObject *__pyx_v_ctx = NULL;
  PyObject *__pyx_v_attr = NULL;
  PyObject *__pyx_v_e = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  PyObject *__pyx_t_13 = NULL;
  PyObject *__pyx_t_14 = NULL;
  Py_ssize_t __pyx_t_15;
  PyObject *__pyx_t_16 = NULL;
  PyObject *__pyx_t_17 = NULL;
  int __pyx_t_18;
  int __pyx_t_19;
  int __pyx_t_20;
  int __pyx_t_21;
  char const *__pyx_t_22;
  PyObject *__pyx_t_23 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  #ifdef WITH_THREAD
  PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure();
  #endif
  __Pyx_RefNannySetupContext("fuse_mknod", 0);

  /* "src/llfuse/handlers.pxi":173
 *     cdef fuse_entry_param entry
 * 
 *     try:             # <<<<<<<<<<<<<<
 *         ctx = get_request_context(req)
 *         with lock:
 */
  {
    __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);
    __Pyx_XGOTREF(__pyx_t_1);
    __Pyx_XGOTREF(__pyx_t_2);
    __Pyx_XGOTREF(__pyx_t_3);
    /*try:*/ {

      /* "src/llfuse/handlers.pxi":174
 * 
 *     try:
 *         ctx = get_request_context(req)             # <<<<<<<<<<<<<<
 *         with lock:
 *             attr = operations.mknod(parent, PyBytes_FromString(name), mode,
 */
      __pyx_t_4 = __pyx_f_6llfuse_4capi_get_request_context(__pyx_v_req); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 174; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_v_ctx = __pyx_t_4;
      __pyx_t_4 = 0;

      /* "src/llfuse/handlers.pxi":175
 *     try:
 *         ctx = get_request_context(req)
 *         with lock:             # <<<<<<<<<<<<<<
 *             attr = operations.mknod(parent, PyBytes_FromString(name), mode,
 *                                     rdev, ctx)
 */
      /*with:*/ {
        __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_lock); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 175; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_5 = __Pyx_PyObject_LookupSpecial(__pyx_t_4, __pyx_n_s_exit); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 175; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_7 = __Pyx_PyObject_LookupSpecial(__pyx_t_4, __pyx_n_s_enter); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 175; __pyx_clineno = __LINE__; goto __pyx_L11_error;}
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_8 = NULL;
        if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_7))) {
          __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7);
          if (likely(__pyx_t_8)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
            __Pyx_INCREF(__pyx_t_8);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_7, function);
          }
        }
        if (__pyx_t_8) {
          __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_8); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 175; __pyx_clineno = __LINE__; goto __pyx_L11_error;}
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        } else {
          __pyx_t_6 = __Pyx_PyObject_CallNoArg(__pyx_t_7); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 175; __pyx_clineno = __LINE__; goto __pyx_L11_error;}
        }
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        /*try:*/ {
          {
            __Pyx_ExceptionSave(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
            __Pyx_XGOTREF(__pyx_t_9);
            __Pyx_XGOTREF(__pyx_t_10);
            __Pyx_XGOTREF(__pyx_t_11);
            /*try:*/ {

              /* "src/llfuse/handlers.pxi":176
 *         ctx = get_request_context(req)
 *         with lock:
 *             attr = operations.mknod(parent, PyBytes_FromString(name), mode,             # <<<<<<<<<<<<<<
 *                                     rdev, ctx)
 *         fill_entry_param(attr, &entry)
 */
              __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_6llfuse_4capi_operations, __pyx_n_s_mknod); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 176; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
              __Pyx_GOTREF(__pyx_t_6);
              __pyx_t_7 = __Pyx_PyInt_From_fuse_ino_t(__pyx_v_parent); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 176; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
              __Pyx_GOTREF(__pyx_t_7);
              __pyx_t_8 = PyBytes_FromString(__pyx_v_name); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 176; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
              __Pyx_GOTREF(__pyx_t_8);
              __pyx_t_12 = __Pyx_PyInt_From_mode_t(__pyx_v_mode); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 176; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
              __Pyx_GOTREF(__pyx_t_12);

              /* "src/llfuse/handlers.pxi":177
 *         with lock:
 *             attr = operations.mknod(parent, PyBytes_FromString(name), mode,
 *                                     rdev, ctx)             # <<<<<<<<<<<<<<
 *         fill_entry_param(attr, &entry)
 *         ret = fuse_reply_entry(req, &entry)
 */
              __pyx_t_13 = __Pyx_PyInt_From_dev_t(__pyx_v_rdev); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 177; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
              __Pyx_GOTREF(__pyx_t_13);
              __pyx_t_14 = NULL;
              __pyx_t_15 = 0;
              if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_6))) {
                __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_6);
                if (likely(__pyx_t_14)) {
                  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
                  __Pyx_INCREF(__pyx_t_14);
                  __Pyx_INCREF(function);
                  __Pyx_DECREF_SET(__pyx_t_6, function);
                  __pyx_t_15 = 1;
                }
              }
              __pyx_t_16 = PyTuple_New(5+__pyx_t_15); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 176; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
              __Pyx_GOTREF(__pyx_t_16);
              if (__pyx_t_14) {
                PyTuple_SET_ITEM(__pyx_t_16, 0, __pyx_t_14); __Pyx_GIVEREF(__pyx_t_14); __pyx_t_14 = NULL;
              }
              PyTuple_SET_ITEM(__pyx_t_16, 0+__pyx_t_15, __pyx_t_7);
              __Pyx_GIVEREF(__pyx_t_7);
              PyTuple_SET_ITEM(__pyx_t_16, 1+__pyx_t_15, __pyx_t_8);
              __Pyx_GIVEREF(__pyx_t_8);
              PyTuple_SET_ITEM(__pyx_t_16, 2+__pyx_t_15, __pyx_t_12);
              __Pyx_GIVEREF(__pyx_t_12);
              PyTuple_SET_ITEM(__pyx_t_16, 3+__pyx_t_15, __pyx_t_13);
              __Pyx_GIVEREF(__pyx_t_13);
              __Pyx_INCREF(__pyx_v_ctx);
              PyTuple_SET_ITEM(__pyx_t_16, 4+__pyx_t_15, __pyx_v_ctx);
              __Pyx_GIVEREF(__pyx_v_ctx);
              __pyx_t_7 = 0;
              __pyx_t_8 = 0;
              __pyx_t_12 = 0;
              __pyx_t_13 = 0;
              __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_16, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 176; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
              __Pyx_GOTREF(__pyx_t_4);
              __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
              __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
              __pyx_v_attr = __pyx_t_4;
              __pyx_t_4 = 0;
            }
            __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
            __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
            __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
            goto __pyx_L24_try_end;
            __pyx_L17_error:;
            __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
            __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
            __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
            __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
            __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
            __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0;
            __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
            __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;

            /* "src/llfuse/handlers.pxi":175
 *     try:
 *         ctx = get_request_context(req)
 *         with lock:             # <<<<<<<<<<<<<<
 *             attr = operations.mknod(parent, PyBytes_FromString(name), mode,
 *                                     rdev, ctx)
 */
            /*except:*/ {
              __Pyx_AddTraceback("llfuse.capi.fuse_mknod", __pyx_clineno, __pyx_lineno, __pyx_filename);
              if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_6, &__pyx_t_16) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 175; __pyx_clineno = __LINE__; goto __pyx_L19_except_error;}
              __Pyx_GOTREF(__pyx_t_4);
              __Pyx_GOTREF(__pyx_t_6);
              __Pyx_GOTREF(__pyx_t_16);
              __pyx_t_13 = PyTuple_Pack(3, __pyx_t_4, __pyx_t_6, __pyx_t_16); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 175; __pyx_clineno = __LINE__; goto __pyx_L19_except_error;}
              __Pyx_GOTREF(__pyx_t_13);
              __pyx_t_17 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_13, NULL);
              __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
              __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
              if (unlikely(!__pyx_t_17)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 175; __pyx_clineno = __LINE__; goto __pyx_L19_except_error;}
              __Pyx_GOTREF(__pyx_t_17);
              __pyx_t_18 = __Pyx_PyObject_IsTrue(__pyx_t_17);
              __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
              if (__pyx_t_18 < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 175; __pyx_clineno = __LINE__; goto __pyx_L19_except_error;}
              __pyx_t_19 = ((!(__pyx_t_18 != 0)) != 0);
              if (__pyx_t_19) {
                __Pyx_GIVEREF(__pyx_t_4);
                __Pyx_GIVEREF(__pyx_t_6);
                __Pyx_XGIVEREF(__pyx_t_16);
                __Pyx_ErrRestore(__pyx_t_4, __pyx_t_6, __pyx_t_16);
                __pyx_t_4 = 0; __pyx_t_6 = 0; __pyx_t_16 = 0; 
                {__pyx_filename = __pyx_f[0]; __pyx_lineno = 175; __pyx_clineno = __LINE__; goto __pyx_L19_except_error;}
              }
              __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
              __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
              __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
              goto __pyx_L18_exception_handled;
            }
            __pyx_L19_except_error:;
            __Pyx_XGIVEREF(__pyx_t_9);
            __Pyx_XGIVEREF(__pyx_t_10);
            __Pyx_XGIVEREF(__pyx_t_11);
            __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11);
            goto __pyx_L3_error;
            __pyx_L18_exception_handled:;
            __Pyx_XGIVEREF(__pyx_t_9);
            __Pyx_XGIVEREF(__pyx_t_10);
            __Pyx_XGIVEREF(__pyx_t_11);
            __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11);
            __pyx_L24_try_end:;
          }
        }
        /*finally:*/ {
          /*normal exit:*/{
            if (__pyx_t_5) {
              __pyx_t_11 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_tuple__8, NULL);
              __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
              if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 175; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
              __Pyx_GOTREF(__pyx_t_11);
              __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
            }
            goto __pyx_L16;
          }
          __pyx_L16:;
        }
        goto __pyx_L28;
        __pyx_L11_error:;
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        goto __pyx_L3_error;
        __pyx_L28:;
      }

      /* "src/llfuse/handlers.pxi":178
 *             attr = operations.mknod(parent, PyBytes_FromString(name), mode,
 *                                     rdev, ctx)
 *         fill_entry_param(attr, &entry)             # <<<<<<<<<<<<<<
 *         ret = fuse_reply_entry(req, &entry)
 *     except FUSEError as e:
 */
      if (unlikely(!__pyx_v_attr)) { __Pyx_RaiseUnboundLocalError("attr"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 178; __pyx_clineno = __LINE__; goto __pyx_L3_error;} }
      __pyx_t_16 = __pyx_f_6llfuse_4capi_fill_entry_param(__pyx_v_attr, (&__pyx_v_entry)); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 178; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      __Pyx_GOTREF(__pyx_t_16);
      __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;

      /* "src/llfuse/handlers.pxi":179
 *                                     rdev, ctx)
 *         fill_entry_param(attr, &entry)
 *         ret = fuse_reply_entry(req, &entry)             # <<<<<<<<<<<<<<
 *     except FUSEError as e:
 *         ret = fuse_reply_err(req, e.errno)
 */
      __pyx_v_ret = fuse_reply_entry(__pyx_v_req, (&__pyx_v_entry));
    }
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    goto __pyx_L10_try_end;
    __pyx_L3_error:;
    __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0;

    /* "src/llfuse/handlers.pxi":180
 *         fill_entry_param(attr, &entry)
 *         ret = fuse_reply_entry(req, &entry)
 *     except FUSEError as e:             # <<<<<<<<<<<<<<
 *         ret = fuse_reply_err(req, e.errno)
 *     except BaseException as e:
 */
    __pyx_t_16 = __Pyx_GetModuleGlobalName(__pyx_n_s_FUSEError); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 180; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
    __Pyx_GOTREF(__pyx_t_16);
    __pyx_t_20 = PyErr_ExceptionMatches(__pyx_t_16);
    __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
    if (__pyx_t_20) {
      __Pyx_AddTraceback("llfuse.capi.fuse_mknod", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_16, &__pyx_t_6, &__pyx_t_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 180; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
      __Pyx_GOTREF(__pyx_t_16);
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_6);
      __pyx_v_e = __pyx_t_6;
      /*try:*/ {

        /* "src/llfuse/handlers.pxi":181
 *         ret = fuse_reply_entry(req, &entry)
 *     except FUSEError as e:
 *         ret = fuse_reply_err(req, e.errno)             # <<<<<<<<<<<<<<
 *     except BaseException as e:
 *         ret = handle_exc('mknod', e, req)
 */
        __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_v_e, __pyx_n_s_errno); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 181; __pyx_clineno = __LINE__; goto __pyx_L34_error;}
        __Pyx_GOTREF(__pyx_t_13);
        __pyx_t_20 = __Pyx_PyInt_As_int(__pyx_t_13); if (unlikely((__pyx_t_20 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 181; __pyx_clineno = __LINE__; goto __pyx_L34_error;}
        __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
        __pyx_v_ret = fuse_reply_err(__pyx_v_req, __pyx_t_20);
      }

      /* "src/llfuse/handlers.pxi":180
 *         fill_entry_param(attr, &entry)
 *         ret = fuse_reply_entry(req, &entry)
 *     except FUSEError as e:             # <<<<<<<<<<<<<<
 *         ret = fuse_reply_err(req, e.errno)
 *     except BaseException as e:
 */
      /*finally:*/ {
        /*normal exit:*/{
          __Pyx_DECREF(__pyx_v_e);
          __pyx_v_e = NULL;
          goto __pyx_L35;
        }
        /*exception exit:*/{
          __pyx_L34_error:;
          __pyx_t_5 = 0; __pyx_t_11 = 0; __pyx_t_10 = 0; __pyx_t_9 = 0; __pyx_t_17 = 0; __pyx_t_23 = 0;
          __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
          __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
          __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
          if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_9, &__pyx_t_17, &__pyx_t_23);
          if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_5, &__pyx_t_11, &__pyx_t_10) < 0)) __Pyx_ErrFetch(&__pyx_t_5, &__pyx_t_11, &__pyx_t_10);
          __Pyx_XGOTREF(__pyx_t_5);
          __Pyx_XGOTREF(__pyx_t_11);
          __Pyx_XGOTREF(__pyx_t_10);
          __Pyx_XGOTREF(__pyx_t_9);
          __Pyx_XGOTREF(__pyx_t_17);
          __Pyx_XGOTREF(__pyx_t_23);
          __pyx_t_20 = __pyx_lineno; __pyx_t_21 = __pyx_clineno; __pyx_t_22 = __pyx_filename;
          {
            __Pyx_DECREF(__pyx_v_e);
            __pyx_v_e = NULL;
          }
          if (PY_MAJOR_VERSION >= 3) {
            __Pyx_XGIVEREF(__pyx_t_9);
            __Pyx_XGIVEREF(__pyx_t_17);
            __Pyx_XGIVEREF(__pyx_t_23);
            __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_17, __pyx_t_23);
          }
          __Pyx_XGIVEREF(__pyx_t_5);
          __Pyx_XGIVEREF(__pyx_t_11);
          __Pyx_XGIVEREF(__pyx_t_10);
          __Pyx_ErrRestore(__pyx_t_5, __pyx_t_11, __pyx_t_10);
          __pyx_t_5 = 0; __pyx_t_11 = 0; __pyx_t_10 = 0; __pyx_t_9 = 0; __pyx_t_17 = 0; __pyx_t_23 = 0;
          __pyx_lineno = __pyx_t_20; __pyx_clineno = __pyx_t_21; __pyx_filename = __pyx_t_22;
          goto __pyx_L5_except_error;
        }
        __pyx_L35:;
      }
      __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      goto __pyx_L4_exception_handled;
    }

    /* "src/llfuse/handlers.pxi":182
 *     except FUSEError as e:
 *         ret = fuse_reply_err(req, e.errno)
 *     except BaseException as e:             # <<<<<<<<<<<<<<
 *         ret = handle_exc('mknod', e, req)
 * 
 */
    __pyx_t_21 = PyErr_ExceptionMatches(__pyx_builtin_BaseException);
    if (__pyx_t_21) {
      __Pyx_AddTraceback("llfuse.capi.fuse_mknod", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_6, &__pyx_t_16) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 182; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_GOTREF(__pyx_t_16);
      __Pyx_INCREF(__pyx_t_6);
      __pyx_v_e = __pyx_t_6;
      /*try:*/ {

        /* "src/llfuse/handlers.pxi":183
 *         ret = fuse_reply_err(req, e.errno)
 *     except BaseException as e:
 *         ret = handle_exc('mknod', e, req)             # <<<<<<<<<<<<<<
 * 
 *     if ret != 0:
 */
        __pyx_v_ret = __pyx_f_6llfuse_4capi_handle_exc(__pyx_k_mknod, __pyx_v_e, __pyx_v_req);
      }

      /* "src/llfuse/handlers.pxi":182
 *     except FUSEError as e:
 *         ret = fuse_reply_err(req, e.errno)
 *     except BaseException as e:             # <<<<<<<<<<<<<<
 *         ret = handle_exc('mknod', e, req)
 * 
 */
      /*finally:*/ {
        /*normal exit:*/{
          __Pyx_DECREF(__pyx_v_e);
          __pyx_v_e = NULL;
          goto __pyx_L46;
        }
        __pyx_L46:;
      }
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
      goto __pyx_L4_exception_handled;
    }
    goto __pyx_L5_except_error;
    __pyx_L5_except_error:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L1_error;
    __pyx_L4_exception_handled:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    __pyx_L10_try_end:;
  }

  /* "src/llfuse/handlers.pxi":185
 *         ret = handle_exc('mknod', e, req)
 * 
 *     if ret != 0:             # <<<<<<<<<<<<<<
 *         log.error('fuse_mknod(): fuse_reply_* failed with %s', strerror(-ret))
 * 
 */
  __pyx_t_19 = ((__pyx_v_ret != 0) != 0);
  if (__pyx_t_19) {

    /* "src/llfuse/handlers.pxi":186
 * 
 *     if ret != 0:
 *         log.error('fuse_mknod(): fuse_reply_* failed with %s', strerror(-ret))             # <<<<<<<<<<<<<<
 * 
 * cdef void fuse_mkdir (fuse_req_t req, fuse_ino_t parent, const_char *name,
 */
    __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s_log); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 186; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_error); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 186; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_13 = __Pyx_GetModuleGlobalName(__pyx_n_s_strerror); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 186; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_13);
    __pyx_t_12 = __Pyx_PyInt_From_int((-__pyx_v_ret)); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 186; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_12);
    __pyx_t_8 = NULL;
    if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_13))) {
      __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_13);
      if (likely(__pyx_t_8)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13);
        __Pyx_INCREF(__pyx_t_8);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_13, function);
      }
    }
    if (!__pyx_t_8) {
      __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_t_13, __pyx_t_12); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 186; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
      __Pyx_GOTREF(__pyx_t_6);
    } else {
      __pyx_t_7 = PyTuple_New(1+1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 186; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_7);
      PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_8); __Pyx_GIVEREF(__pyx_t_8); __pyx_t_8 = NULL;
      PyTuple_SET_ITEM(__pyx_t_7, 0+1, __pyx_t_12);
      __Pyx_GIVEREF(__pyx_t_12);
      __pyx_t_12 = 0;
      __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_13, __pyx_t_7, NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 186; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    }
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    __pyx_t_13 = NULL;
    __pyx_t_15 = 0;
    if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_13 = PyMethod_GET_SELF(__pyx_t_4);
      if (likely(__pyx_t_13)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
        __Pyx_INCREF(__pyx_t_13);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_4, function);
        __pyx_t_15 = 1;
      }
    }
    __pyx_t_7 = PyTuple_New(2+__pyx_t_15); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 186; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    if (__pyx_t_13) {
      PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_13); __Pyx_GIVEREF(__pyx_t_13); __pyx_t_13 = NULL;
    }
    __Pyx_INCREF(__pyx_kp_u_fuse_mknod_fuse_reply__failed_wi);
    PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_15, __pyx_kp_u_fuse_mknod_fuse_reply__failed_wi);
    __Pyx_GIVEREF(__pyx_kp_u_fuse_mknod_fuse_reply__failed_wi);
    PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_15, __pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_6);
    __pyx_t_6 = 0;
    __pyx_t_16 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_7, NULL); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 186; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_16);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
    goto __pyx_L47;
  }
  __pyx_L47:;

  /* "src/llfuse/handlers.pxi":168
 *         log.error('fuse_readlink(): fuse_reply_* failed with %s', strerror(-ret))
 * 
 * cdef void fuse_mknod (fuse_req_t req, fuse_ino_t parent, const_char *name,             # <<<<<<<<<<<<<<
 *                       mode_t mode, dev_t rdev) with gil:
 *     cdef int ret
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_XDECREF(__pyx_t_14);
  __Pyx_XDECREF(__pyx_t_16);
  __Pyx_WriteUnraisable("llfuse.capi.fuse_mknod", __pyx_clineno, __pyx_lineno, __pyx_filename, 0);
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_ctx);
  __Pyx_XDECREF(__pyx_v_attr);
  __Pyx_XDECREF(__pyx_v_e);
  __Pyx_RefNannyFinishContext();
  #ifdef WITH_THREAD
  PyGILState_Release(__pyx_gilstate_save);
  #endif
}

/* "src/llfuse/handlers.pxi":188
 *         log.error('fuse_mknod(): fuse_reply_* failed with %s', strerror(-ret))
 * 
 * cdef void fuse_mkdir (fuse_req_t req, fuse_ino_t parent, const_char *name,             # <<<<<<<<<<<<<<
 *                       mode_t mode) with gil:
 *     cdef int ret
 */

static void __pyx_f_6llfuse_4capi_fuse_mkdir(fuse_req_t __pyx_v_req, fuse_ino_t __pyx_v_parent, const char *__pyx_v_name, mode_t __pyx_v_mode) {
  int __pyx_v_ret;
  struct fuse_entry_param __pyx_v_entry;
  PyObject *__pyx_v_ctx = NULL;
  PyObject *__pyx_v_attr = NULL;
  PyObject *__pyx_v_e = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  PyObject *__pyx_t_13 = NULL;
  Py_ssize_t __pyx_t_14;
  PyObject *__pyx_t_15 = NULL;
  PyObject *__pyx_t_16 = NULL;
  int __pyx_t_17;
  int __pyx_t_18;
  int __pyx_t_19;
  int __pyx_t_20;
  char const *__pyx_t_21;
  PyObject *__pyx_t_22 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  #ifdef WITH_THREAD
  PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure();
  #endif
  __Pyx_RefNannySetupContext("fuse_mkdir", 0);

  /* "src/llfuse/handlers.pxi":193
 *     cdef fuse_entry_param entry
 * 
 *     try:             # <<<<<<<<<<<<<<
 *         # Force the entry type to directory. We need to explicitly cast,
 *         # because on BSD the S_* are not of type mode_t.
 */
  {
    __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);
    __Pyx_XGOTREF(__pyx_t_1);
    __Pyx_XGOTREF(__pyx_t_2);
    __Pyx_XGOTREF(__pyx_t_3);
    /*try:*/ {

      /* "src/llfuse/handlers.pxi":196
 *         # Force the entry type to directory. We need to explicitly cast,
 *         # because on BSD the S_* are not of type mode_t.
 *         mode = <mode_t> ((mode & ~S_IFMT) | S_IFDIR)             # <<<<<<<<<<<<<<
 *         ctx = get_request_context(req)
 *         with lock:
 */
      __pyx_v_mode = ((mode_t)((__pyx_v_mode & (~S_IFMT)) | S_IFDIR));

      /* "src/llfuse/handlers.pxi":197
 *         # because on BSD the S_* are not of type mode_t.
 *         mode = <mode_t> ((mode & ~S_IFMT) | S_IFDIR)
 *         ctx = get_request_context(req)             # <<<<<<<<<<<<<<
 *         with lock:
 *             attr = operations.mkdir(parent, PyBytes_FromString(name), mode, ctx)
 */
      __pyx_t_4 = __pyx_f_6llfuse_4capi_get_request_context(__pyx_v_req); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 197; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_v_ctx = __pyx_t_4;
      __pyx_t_4 = 0;

      /* "src/llfuse/handlers.pxi":198
 *         mode = <mode_t> ((mode & ~S_IFMT) | S_IFDIR)
 *         ctx = get_request_context(req)
 *         with lock:             # <<<<<<<<<<<<<<
 *             attr = operations.mkdir(parent, PyBytes_FromString(name), mode, ctx)
 *         fill_entry_param(attr, &entry)
 */
      /*with:*/ {
        __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_lock); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 198; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_5 = __Pyx_PyObject_LookupSpecial(__pyx_t_4, __pyx_n_s_exit); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 198; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_7 = __Pyx_PyObject_LookupSpecial(__pyx_t_4, __pyx_n_s_enter); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 198; __pyx_clineno = __LINE__; goto __pyx_L11_error;}
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_8 = NULL;
        if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_7))) {
          __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7);
          if (likely(__pyx_t_8)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
            __Pyx_INCREF(__pyx_t_8);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_7, function);
          }
        }
        if (__pyx_t_8) {
          __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_8); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 198; __pyx_clineno = __LINE__; goto __pyx_L11_error;}
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        } else {
          __pyx_t_6 = __Pyx_PyObject_CallNoArg(__pyx_t_7); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 198; __pyx_clineno = __LINE__; goto __pyx_L11_error;}
        }
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        /*try:*/ {
          {
            __Pyx_ExceptionSave(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
            __Pyx_XGOTREF(__pyx_t_9);
            __Pyx_XGOTREF(__pyx_t_10);
            __Pyx_XGOTREF(__pyx_t_11);
            /*try:*/ {

              /* "src/llfuse/handlers.pxi":199
 *         ctx = get_request_context(req)
 *         with lock:
 *             attr = operations.mkdir(parent, PyBytes_FromString(name), mode, ctx)             # <<<<<<<<<<<<<<
 *         fill_entry_param(attr, &entry)
 *         ret = fuse_reply_entry(req, &entry)
 */
              __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_6llfuse_4capi_operations, __pyx_n_s_mkdir); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 199; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
              __Pyx_GOTREF(__pyx_t_6);
              __pyx_t_7 = __Pyx_PyInt_From_fuse_ino_t(__pyx_v_parent); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 199; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
              __Pyx_GOTREF(__pyx_t_7);
              __pyx_t_8 = PyBytes_FromString(__pyx_v_name); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 199; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
              __Pyx_GOTREF(__pyx_t_8);
              __pyx_t_12 = __Pyx_PyInt_From_mode_t(__pyx_v_mode); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 199; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
              __Pyx_GOTREF(__pyx_t_12);
              __pyx_t_13 = NULL;
              __pyx_t_14 = 0;
              if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_6))) {
                __pyx_t_13 = PyMethod_GET_SELF(__pyx_t_6);
                if (likely(__pyx_t_13)) {
                  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
                  __Pyx_INCREF(__pyx_t_13);
                  __Pyx_INCREF(function);
                  __Pyx_DECREF_SET(__pyx_t_6, function);
                  __pyx_t_14 = 1;
                }
              }
              __pyx_t_15 = PyTuple_New(4+__pyx_t_14); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 199; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
              __Pyx_GOTREF(__pyx_t_15);
              if (__pyx_t_13) {
                PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_13); __Pyx_GIVEREF(__pyx_t_13); __pyx_t_13 = NULL;
              }
              PyTuple_SET_ITEM(__pyx_t_15, 0+__pyx_t_14, __pyx_t_7);
              __Pyx_GIVEREF(__pyx_t_7);
              PyTuple_SET_ITEM(__pyx_t_15, 1+__pyx_t_14, __pyx_t_8);
              __Pyx_GIVEREF(__pyx_t_8);
              PyTuple_SET_ITEM(__pyx_t_15, 2+__pyx_t_14, __pyx_t_12);
              __Pyx_GIVEREF(__pyx_t_12);
              __Pyx_INCREF(__pyx_v_ctx);
              PyTuple_SET_ITEM(__pyx_t_15, 3+__pyx_t_14, __pyx_v_ctx);
              __Pyx_GIVEREF(__pyx_v_ctx);
              __pyx_t_7 = 0;
              __pyx_t_8 = 0;
              __pyx_t_12 = 0;
              __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_15, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 199; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
              __Pyx_GOTREF(__pyx_t_4);
              __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
              __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
              __pyx_v_attr = __pyx_t_4;
              __pyx_t_4 = 0;
            }
            __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
            __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
            __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
            goto __pyx_L24_try_end;
            __pyx_L17_error:;
            __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
            __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
            __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
            __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
            __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0;
            __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
            __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;

            /* "src/llfuse/handlers.pxi":198
 *         mode = <mode_t> ((mode & ~S_IFMT) | S_IFDIR)
 *         ctx = get_request_context(req)
 *         with lock:             # <<<<<<<<<<<<<<
 *             attr = operations.mkdir(parent, PyBytes_FromString(name), mode, ctx)
 *         fill_entry_param(attr, &entry)
 */
            /*except:*/ {
              __Pyx_AddTraceback("llfuse.capi.fuse_mkdir", __pyx_clineno, __pyx_lineno, __pyx_filename);
              if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_6, &__pyx_t_15) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 198; __pyx_clineno = __LINE__; goto __pyx_L19_except_error;}
              __Pyx_GOTREF(__pyx_t_4);
              __Pyx_GOTREF(__pyx_t_6);
              __Pyx_GOTREF(__pyx_t_15);
              __pyx_t_12 = PyTuple_Pack(3, __pyx_t_4, __pyx_t_6, __pyx_t_15); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 198; __pyx_clineno = __LINE__; goto __pyx_L19_except_error;}
              __Pyx_GOTREF(__pyx_t_12);
              __pyx_t_16 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_12, NULL);
              __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
              __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
              if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 198; __pyx_clineno = __LINE__; goto __pyx_L19_except_error;}
              __Pyx_GOTREF(__pyx_t_16);
              __pyx_t_17 = __Pyx_PyObject_IsTrue(__pyx_t_16);
              __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
              if (__pyx_t_17 < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 198; __pyx_clineno = __LINE__; goto __pyx_L19_except_error;}
              __pyx_t_18 = ((!(__pyx_t_17 != 0)) != 0);
              if (__pyx_t_18) {
                __Pyx_GIVEREF(__pyx_t_4);
                __Pyx_GIVEREF(__pyx_t_6);
                __Pyx_XGIVEREF(__pyx_t_15);
                __Pyx_ErrRestore(__pyx_t_4, __pyx_t_6, __pyx_t_15);
                __pyx_t_4 = 0; __pyx_t_6 = 0; __pyx_t_15 = 0; 
                {__pyx_filename = __pyx_f[0]; __pyx_lineno = 198; __pyx_clineno = __LINE__; goto __pyx_L19_except_error;}
              }
              __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
              __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
              __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
              goto __pyx_L18_exception_handled;
            }
            __pyx_L19_except_error:;
            __Pyx_XGIVEREF(__pyx_t_9);
            __Pyx_XGIVEREF(__pyx_t_10);
            __Pyx_XGIVEREF(__pyx_t_11);
            __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11);
            goto __pyx_L3_error;
            __pyx_L18_exception_handled:;
            __Pyx_XGIVEREF(__pyx_t_9);
            __Pyx_XGIVEREF(__pyx_t_10);
            __Pyx_XGIVEREF(__pyx_t_11);
            __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11);
            __pyx_L24_try_end:;
          }
        }
        /*finally:*/ {
          /*normal exit:*/{
            if (__pyx_t_5) {
              __pyx_t_11 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_tuple__9, NULL);
              __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
              if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 198; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
              __Pyx_GOTREF(__pyx_t_11);
              __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
            }
            goto __pyx_L16;
          }
          __pyx_L16:;
        }
        goto __pyx_L28;
        __pyx_L11_error:;
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        goto __pyx_L3_error;
        __pyx_L28:;
      }

      /* "src/llfuse/handlers.pxi":200
 *         with lock:
 *             attr = operations.mkdir(parent, PyBytes_FromString(name), mode, ctx)
 *         fill_entry_param(attr, &entry)             # <<<<<<<<<<<<<<
 *         ret = fuse_reply_entry(req, &entry)
 *     except FUSEError as e:
 */
      if (unlikely(!__pyx_v_attr)) { __Pyx_RaiseUnboundLocalError("attr"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 200; __pyx_clineno = __LINE__; goto __pyx_L3_error;} }
      __pyx_t_15 = __pyx_f_6llfuse_4capi_fill_entry_param(__pyx_v_attr, (&__pyx_v_entry)); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 200; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      __Pyx_GOTREF(__pyx_t_15);
      __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;

      /* "src/llfuse/handlers.pxi":201
 *             attr = operations.mkdir(parent, PyBytes_FromString(name), mode, ctx)
 *         fill_entry_param(attr, &entry)
 *         ret = fuse_reply_entry(req, &entry)             # <<<<<<<<<<<<<<
 *     except FUSEError as e:
 *         ret = fuse_reply_err(req, e.errno)
 */
      __pyx_v_ret = fuse_reply_entry(__pyx_v_req, (&__pyx_v_entry));
    }
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    goto __pyx_L10_try_end;
    __pyx_L3_error:;
    __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0;

    /* "src/llfuse/handlers.pxi":202
 *         fill_entry_param(attr, &entry)
 *         ret = fuse_reply_entry(req, &entry)
 *     except FUSEError as e:             # <<<<<<<<<<<<<<
 *         ret = fuse_reply_err(req, e.errno)
 *     except BaseException as e:
 */
    __pyx_t_15 = __Pyx_GetModuleGlobalName(__pyx_n_s_FUSEError); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 202; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
    __Pyx_GOTREF(__pyx_t_15);
    __pyx_t_19 = PyErr_ExceptionMatches(__pyx_t_15);
    __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
    if (__pyx_t_19) {
      __Pyx_AddTraceback("llfuse.capi.fuse_mkdir", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_15, &__pyx_t_6, &__pyx_t_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 202; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
      __Pyx_GOTREF(__pyx_t_15);
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_6);
      __pyx_v_e = __pyx_t_6;
      /*try:*/ {

        /* "src/llfuse/handlers.pxi":203
 *         ret = fuse_reply_entry(req, &entry)
 *     except FUSEError as e:
 *         ret = fuse_reply_err(req, e.errno)             # <<<<<<<<<<<<<<
 *     except BaseException as e:
 *         ret = handle_exc('mkdir', e, req)
 */
        __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_v_e, __pyx_n_s_errno); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 203; __pyx_clineno = __LINE__; goto __pyx_L34_error;}
        __Pyx_GOTREF(__pyx_t_12);
        __pyx_t_19 = __Pyx_PyInt_As_int(__pyx_t_12); if (unlikely((__pyx_t_19 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 203; __pyx_clineno = __LINE__; goto __pyx_L34_error;}
        __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
        __pyx_v_ret = fuse_reply_err(__pyx_v_req, __pyx_t_19);
      }

      /* "src/llfuse/handlers.pxi":202
 *         fill_entry_param(attr, &entry)
 *         ret = fuse_reply_entry(req, &entry)
 *     except FUSEError as e:             # <<<<<<<<<<<<<<
 *         ret = fuse_reply_err(req, e.errno)
 *     except BaseException as e:
 */
      /*finally:*/ {
        /*normal exit:*/{
          __Pyx_DECREF(__pyx_v_e);
          __pyx_v_e = NULL;
          goto __pyx_L35;
        }
        /*exception exit:*/{
          __pyx_L34_error:;
          __pyx_t_5 = 0; __pyx_t_11 = 0; __pyx_t_10 = 0; __pyx_t_9 = 0; __pyx_t_16 = 0; __pyx_t_22 = 0;
          __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
          __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
          if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_9, &__pyx_t_16, &__pyx_t_22);
          if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_5, &__pyx_t_11, &__pyx_t_10) < 0)) __Pyx_ErrFetch(&__pyx_t_5, &__pyx_t_11, &__pyx_t_10);
          __Pyx_XGOTREF(__pyx_t_5);
          __Pyx_XGOTREF(__pyx_t_11);
          __Pyx_XGOTREF(__pyx_t_10);
          __Pyx_XGOTREF(__pyx_t_9);
          __Pyx_XGOTREF(__pyx_t_16);
          __Pyx_XGOTREF(__pyx_t_22);
          __pyx_t_19 = __pyx_lineno; __pyx_t_20 = __pyx_clineno; __pyx_t_21 = __pyx_filename;
          {
            __Pyx_DECREF(__pyx_v_e);
            __pyx_v_e = NULL;
          }
          if (PY_MAJOR_VERSION >= 3) {
            __Pyx_XGIVEREF(__pyx_t_9);
            __Pyx_XGIVEREF(__pyx_t_16);
            __Pyx_XGIVEREF(__pyx_t_22);
            __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_16, __pyx_t_22);
          }
          __Pyx_XGIVEREF(__pyx_t_5);
          __Pyx_XGIVEREF(__pyx_t_11);
          __Pyx_XGIVEREF(__pyx_t_10);
          __Pyx_ErrRestore(__pyx_t_5, __pyx_t_11, __pyx_t_10);
          __pyx_t_5 = 0; __pyx_t_11 = 0; __pyx_t_10 = 0; __pyx_t_9 = 0; __pyx_t_16 = 0; __pyx_t_22 = 0;
          __pyx_lineno = __pyx_t_19; __pyx_clineno = __pyx_t_20; __pyx_filename = __pyx_t_21;
          goto __pyx_L5_except_error;
        }
        __pyx_L35:;
      }
      __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      goto __pyx_L4_exception_handled;
    }

    /* "src/llfuse/handlers.pxi":204
 *     except FUSEError as e:
 *         ret = fuse_reply_err(req, e.errno)
 *     except BaseException as e:             # <<<<<<<<<<<<<<
 *         ret = handle_exc('mkdir', e, req)
 * 
 */
    __pyx_t_20 = PyErr_ExceptionMatches(__pyx_builtin_BaseException);
    if (__pyx_t_20) {
      __Pyx_AddTraceback("llfuse.capi.fuse_mkdir", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_6, &__pyx_t_15) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 204; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_GOTREF(__pyx_t_15);
      __Pyx_INCREF(__pyx_t_6);
      __pyx_v_e = __pyx_t_6;
      /*try:*/ {

        /* "src/llfuse/handlers.pxi":205
 *         ret = fuse_reply_err(req, e.errno)
 *     except BaseException as e:
 *         ret = handle_exc('mkdir', e, req)             # <<<<<<<<<<<<<<
 * 
 *     if ret != 0:
 */
        __pyx_v_ret = __pyx_f_6llfuse_4capi_handle_exc(__pyx_k_mkdir, __pyx_v_e, __pyx_v_req);
      }

      /* "src/llfuse/handlers.pxi":204
 *     except FUSEError as e:
 *         ret = fuse_reply_err(req, e.errno)
 *     except BaseException as e:             # <<<<<<<<<<<<<<
 *         ret = handle_exc('mkdir', e, req)
 * 
 */
      /*finally:*/ {
        /*normal exit:*/{
          __Pyx_DECREF(__pyx_v_e);
          __pyx_v_e = NULL;
          goto __pyx_L46;
        }
        __pyx_L46:;
      }
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
      goto __pyx_L4_exception_handled;
    }
    goto __pyx_L5_except_error;
    __pyx_L5_except_error:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L1_error;
    __pyx_L4_exception_handled:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    __pyx_L10_try_end:;
  }

  /* "src/llfuse/handlers.pxi":207
 *         ret = handle_exc('mkdir', e, req)
 * 
 *     if ret != 0:             # <<<<<<<<<<<<<<
 *         log.error('fuse_mkdir(): fuse_reply_* failed with %s', strerror(-ret))
 * 
 */
  __pyx_t_18 = ((__pyx_v_ret != 0) != 0);
  if (__pyx_t_18) {

    /* "src/llfuse/handlers.pxi":208
 * 
 *     if ret != 0:
 *         log.error('fuse_mkdir(): fuse_reply_* failed with %s', strerror(-ret))             # <<<<<<<<<<<<<<
 * 
 * cdef void fuse_unlink (fuse_req_t req, fuse_ino_t parent, const_char *name) with gil:
 */
    __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s_log); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 208; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_error); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 208; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_12 = __Pyx_GetModuleGlobalName(__pyx_n_s_strerror); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 208; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_12);
    __pyx_t_8 = __Pyx_PyInt_From_int((-__pyx_v_ret)); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 208; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_7 = NULL;
    if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_12))) {
      __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_12);
      if (likely(__pyx_t_7)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_12);
        __Pyx_INCREF(__pyx_t_7);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_12, function);
      }
    }
    if (!__pyx_t_7) {
      __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_t_12, __pyx_t_8); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 208; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_GOTREF(__pyx_t_6);
    } else {
      __pyx_t_13 = PyTuple_New(1+1); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 208; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_13);
      PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_t_7); __Pyx_GIVEREF(__pyx_t_7); __pyx_t_7 = NULL;
      PyTuple_SET_ITEM(__pyx_t_13, 0+1, __pyx_t_8);
      __Pyx_GIVEREF(__pyx_t_8);
      __pyx_t_8 = 0;
      __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_12, __pyx_t_13, NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 208; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    }
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __pyx_t_12 = NULL;
    __pyx_t_14 = 0;
    if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_4);
      if (likely(__pyx_t_12)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
        __Pyx_INCREF(__pyx_t_12);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_4, function);
        __pyx_t_14 = 1;
      }
    }
    __pyx_t_13 = PyTuple_New(2+__pyx_t_14); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 208; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_13);
    if (__pyx_t_12) {
      PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_t_12); __Pyx_GIVEREF(__pyx_t_12); __pyx_t_12 = NULL;
    }
    __Pyx_INCREF(__pyx_kp_u_fuse_mkdir_fuse_reply__failed_wi);
    PyTuple_SET_ITEM(__pyx_t_13, 0+__pyx_t_14, __pyx_kp_u_fuse_mkdir_fuse_reply__failed_wi);
    __Pyx_GIVEREF(__pyx_kp_u_fuse_mkdir_fuse_reply__failed_wi);
    PyTuple_SET_ITEM(__pyx_t_13, 1+__pyx_t_14, __pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_6);
    __pyx_t_6 = 0;
    __pyx_t_15 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_13, NULL); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 208; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_15);
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
    goto __pyx_L47;
  }
  __pyx_L47:;

  /* "src/llfuse/handlers.pxi":188
 *         log.error('fuse_mknod(): fuse_reply_* failed with %s', strerror(-ret))
 * 
 * cdef void fuse_mkdir (fuse_req_t req, fuse_ino_t parent, const_char *name,             # <<<<<<<<<<<<<<
 *                       mode_t mode) with gil:
 *     cdef int ret
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_XDECREF(__pyx_t_15);
  __Pyx_WriteUnraisable("llfuse.capi.fuse_mkdir", __pyx_clineno, __pyx_lineno, __pyx_filename, 0);
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_ctx);
  __Pyx_XDECREF(__pyx_v_attr);
  __Pyx_XDECREF(__pyx_v_e);
  __Pyx_RefNannyFinishContext();
  #ifdef WITH_THREAD
  PyGILState_Release(__pyx_gilstate_save);
  #endif
}

/* "src/llfuse/handlers.pxi":210
 *         log.error('fuse_mkdir(): fuse_reply_* failed with %s', strerror(-ret))
 * 
 * cdef void fuse_unlink (fuse_req_t req, fuse_ino_t parent, const_char *name) with gil:             # <<<<<<<<<<<<<<
 *     cdef int ret
 * 
 */

static void __pyx_f_6llfuse_4capi_fuse_unlink(fuse_req_t __pyx_v_req, fuse_ino_t __pyx_v_parent, const char *__pyx_v_name) {
  int __pyx_v_ret;
  PyObject *__pyx_v_e = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  Py_ssize_t __pyx_t_13;
  PyObject *__pyx_t_14 = NULL;
  PyObject *__pyx_t_15 = NULL;
  int __pyx_t_16;
  int __pyx_t_17;
  int __pyx_t_18;
  int __pyx_t_19;
  char const *__pyx_t_20;
  PyObject *__pyx_t_21 = NULL;
  PyObject *__pyx_t_22 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  #ifdef WITH_THREAD
  PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure();
  #endif
  __Pyx_RefNannySetupContext("fuse_unlink", 0);

  /* "src/llfuse/handlers.pxi":213
 *     cdef int ret
 * 
 *     try:             # <<<<<<<<<<<<<<
 *         with lock:
 *             operations.unlink(parent, PyBytes_FromString(name))
 */
  {
    __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);
    __Pyx_XGOTREF(__pyx_t_1);
    __Pyx_XGOTREF(__pyx_t_2);
    __Pyx_XGOTREF(__pyx_t_3);
    /*try:*/ {

      /* "src/llfuse/handlers.pxi":214
 * 
 *     try:
 *         with lock:             # <<<<<<<<<<<<<<
 *             operations.unlink(parent, PyBytes_FromString(name))
 *         ret = fuse_reply_err(req, 0)
 */
      /*with:*/ {
        __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_lock); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_5 = __Pyx_PyObject_LookupSpecial(__pyx_t_4, __pyx_n_s_exit); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_7 = __Pyx_PyObject_LookupSpecial(__pyx_t_4, __pyx_n_s_enter); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L11_error;}
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_8 = NULL;
        if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_7))) {
          __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7);
          if (likely(__pyx_t_8)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
            __Pyx_INCREF(__pyx_t_8);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_7, function);
          }
        }
        if (__pyx_t_8) {
          __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_8); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L11_error;}
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        } else {
          __pyx_t_6 = __Pyx_PyObject_CallNoArg(__pyx_t_7); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L11_error;}
        }
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        /*try:*/ {
          {
            __Pyx_ExceptionSave(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
            __Pyx_XGOTREF(__pyx_t_9);
            __Pyx_XGOTREF(__pyx_t_10);
            __Pyx_XGOTREF(__pyx_t_11);
            /*try:*/ {

              /* "src/llfuse/handlers.pxi":215
 *     try:
 *         with lock:
 *             operations.unlink(parent, PyBytes_FromString(name))             # <<<<<<<<<<<<<<
 *         ret = fuse_reply_err(req, 0)
 *     except FUSEError as e:
 */
              __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_6llfuse_4capi_operations, __pyx_n_s_unlink); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 215; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
              __Pyx_GOTREF(__pyx_t_6);
              __pyx_t_7 = __Pyx_PyInt_From_fuse_ino_t(__pyx_v_parent); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 215; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
              __Pyx_GOTREF(__pyx_t_7);
              __pyx_t_8 = PyBytes_FromString(__pyx_v_name); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 215; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
              __Pyx_GOTREF(__pyx_t_8);
              __pyx_t_12 = NULL;
              __pyx_t_13 = 0;
              if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_6))) {
                __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_6);
                if (likely(__pyx_t_12)) {
                  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
                  __Pyx_INCREF(__pyx_t_12);
                  __Pyx_INCREF(function);
                  __Pyx_DECREF_SET(__pyx_t_6, function);
                  __pyx_t_13 = 1;
                }
              }
              __pyx_t_14 = PyTuple_New(2+__pyx_t_13); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 215; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
              __Pyx_GOTREF(__pyx_t_14);
              if (__pyx_t_12) {
                PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_12); __Pyx_GIVEREF(__pyx_t_12); __pyx_t_12 = NULL;
              }
              PyTuple_SET_ITEM(__pyx_t_14, 0+__pyx_t_13, __pyx_t_7);
              __Pyx_GIVEREF(__pyx_t_7);
              PyTuple_SET_ITEM(__pyx_t_14, 1+__pyx_t_13, __pyx_t_8);
              __Pyx_GIVEREF(__pyx_t_8);
              __pyx_t_7 = 0;
              __pyx_t_8 = 0;
              __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_14, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 215; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
              __Pyx_GOTREF(__pyx_t_4);
              __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
              __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
              __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
            }
            __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
            __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
            __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
            goto __pyx_L24_try_end;
            __pyx_L17_error:;
            __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
            __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
            __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
            __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
            __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
            __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;

            /* "src/llfuse/handlers.pxi":214
 * 
 *     try:
 *         with lock:             # <<<<<<<<<<<<<<
 *             operations.unlink(parent, PyBytes_FromString(name))
 *         ret = fuse_reply_err(req, 0)
 */
            /*except:*/ {
              __Pyx_AddTraceback("llfuse.capi.fuse_unlink", __pyx_clineno, __pyx_lineno, __pyx_filename);
              if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_6, &__pyx_t_14) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L19_except_error;}
              __Pyx_GOTREF(__pyx_t_4);
              __Pyx_GOTREF(__pyx_t_6);
              __Pyx_GOTREF(__pyx_t_14);
              __pyx_t_8 = PyTuple_Pack(3, __pyx_t_4, __pyx_t_6, __pyx_t_14); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L19_except_error;}
              __Pyx_GOTREF(__pyx_t_8);
              __pyx_t_15 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_8, NULL);
              __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
              __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
              if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L19_except_error;}
              __Pyx_GOTREF(__pyx_t_15);
              __pyx_t_16 = __Pyx_PyObject_IsTrue(__pyx_t_15);
              __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
              if (__pyx_t_16 < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L19_except_error;}
              __pyx_t_17 = ((!(__pyx_t_16 != 0)) != 0);
              if (__pyx_t_17) {
                __Pyx_GIVEREF(__pyx_t_4);
                __Pyx_GIVEREF(__pyx_t_6);
                __Pyx_XGIVEREF(__pyx_t_14);
                __Pyx_ErrRestore(__pyx_t_4, __pyx_t_6, __pyx_t_14);
                __pyx_t_4 = 0; __pyx_t_6 = 0; __pyx_t_14 = 0; 
                {__pyx_filename = __pyx_f[0]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L19_except_error;}
              }
              __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
              __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
              __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
              goto __pyx_L18_exception_handled;
            }
            __pyx_L19_except_error:;
            __Pyx_XGIVEREF(__pyx_t_9);
            __Pyx_XGIVEREF(__pyx_t_10);
            __Pyx_XGIVEREF(__pyx_t_11);
            __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11);
            goto __pyx_L3_error;
            __pyx_L18_exception_handled:;
            __Pyx_XGIVEREF(__pyx_t_9);
            __Pyx_XGIVEREF(__pyx_t_10);
            __Pyx_XGIVEREF(__pyx_t_11);
            __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11);
            __pyx_L24_try_end:;
          }
        }
        /*finally:*/ {
          /*normal exit:*/{
            if (__pyx_t_5) {
              __pyx_t_11 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_tuple__10, NULL);
              __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
              if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
              __Pyx_GOTREF(__pyx_t_11);
              __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
            }
            goto __pyx_L16;
          }
          __pyx_L16:;
        }
        goto __pyx_L28;
        __pyx_L11_error:;
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        goto __pyx_L3_error;
        __pyx_L28:;
      }

      /* "src/llfuse/handlers.pxi":216
 *         with lock:
 *             operations.unlink(parent, PyBytes_FromString(name))
 *         ret = fuse_reply_err(req, 0)             # <<<<<<<<<<<<<<
 *     except FUSEError as e:
 *         ret = fuse_reply_err(req, e.errno)
 */
      __pyx_v_ret = fuse_reply_err(__pyx_v_req, 0);
    }
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    goto __pyx_L10_try_end;
    __pyx_L3_error:;
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;

    /* "src/llfuse/handlers.pxi":217
 *             operations.unlink(parent, PyBytes_FromString(name))
 *         ret = fuse_reply_err(req, 0)
 *     except FUSEError as e:             # <<<<<<<<<<<<<<
 *         ret = fuse_reply_err(req, e.errno)
 *     except BaseException as e:
 */
    __pyx_t_14 = __Pyx_GetModuleGlobalName(__pyx_n_s_FUSEError); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 217; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
    __Pyx_GOTREF(__pyx_t_14);
    __pyx_t_18 = PyErr_ExceptionMatches(__pyx_t_14);
    __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
    if (__pyx_t_18) {
      __Pyx_AddTraceback("llfuse.capi.fuse_unlink", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_14, &__pyx_t_6, &__pyx_t_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 217; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
      __Pyx_GOTREF(__pyx_t_14);
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_6);
      __pyx_v_e = __pyx_t_6;
      /*try:*/ {

        /* "src/llfuse/handlers.pxi":218
 *         ret = fuse_reply_err(req, 0)
 *     except FUSEError as e:
 *         ret = fuse_reply_err(req, e.errno)             # <<<<<<<<<<<<<<
 *     except BaseException as e:
 *         ret = handle_exc('unlink', e, req)
 */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_e, __pyx_n_s_errno); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 218; __pyx_clineno = __LINE__; goto __pyx_L34_error;}
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_18 = __Pyx_PyInt_As_int(__pyx_t_8); if (unlikely((__pyx_t_18 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 218; __pyx_clineno = __LINE__; goto __pyx_L34_error;}
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __pyx_v_ret = fuse_reply_err(__pyx_v_req, __pyx_t_18);
      }

      /* "src/llfuse/handlers.pxi":217
 *             operations.unlink(parent, PyBytes_FromString(name))
 *         ret = fuse_reply_err(req, 0)
 *     except FUSEError as e:             # <<<<<<<<<<<<<<
 *         ret = fuse_reply_err(req, e.errno)
 *     except BaseException as e:
 */
      /*finally:*/ {
        /*normal exit:*/{
          __Pyx_DECREF(__pyx_v_e);
          __pyx_v_e = NULL;
          goto __pyx_L35;
        }
        /*exception exit:*/{
          __pyx_L34_error:;
          __pyx_t_5 = 0; __pyx_t_11 = 0; __pyx_t_10 = 0; __pyx_t_9 = 0; __pyx_t_15 = 0; __pyx_t_21 = 0;
          __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
          if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_9, &__pyx_t_15, &__pyx_t_21);
          if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_5, &__pyx_t_11, &__pyx_t_10) < 0)) __Pyx_ErrFetch(&__pyx_t_5, &__pyx_t_11, &__pyx_t_10);
          __Pyx_XGOTREF(__pyx_t_5);
          __Pyx_XGOTREF(__pyx_t_11);
          __Pyx_XGOTREF(__pyx_t_10);
          __Pyx_XGOTREF(__pyx_t_9);
          __Pyx_XGOTREF(__pyx_t_15);
          __Pyx_XGOTREF(__pyx_t_21);
          __pyx_t_18 = __pyx_lineno; __pyx_t_19 = __pyx_clineno; __pyx_t_20 = __pyx_filename;
          {
            __Pyx_DECREF(__pyx_v_e);
            __pyx_v_e = NULL;
          }
          if (PY_MAJOR_VERSION >= 3) {
            __Pyx_XGIVEREF(__pyx_t_9);
            __Pyx_XGIVEREF(__pyx_t_15);
            __Pyx_XGIVEREF(__pyx_t_21);
            __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_15, __pyx_t_21);
          }
          __Pyx_XGIVEREF(__pyx_t_5);
          __Pyx_XGIVEREF(__pyx_t_11);
          __Pyx_XGIVEREF(__pyx_t_10);
          __Pyx_ErrRestore(__pyx_t_5, __pyx_t_11, __pyx_t_10);
          __pyx_t_5 = 0; __pyx_t_11 = 0; __pyx_t_10 = 0; __pyx_t_9 = 0; __pyx_t_15 = 0; __pyx_t_21 = 0;
          __pyx_lineno = __pyx_t_18; __pyx_clineno = __pyx_t_19; __pyx_filename = __pyx_t_20;
          goto __pyx_L5_except_error;
        }
        __pyx_L35:;
      }
      __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      goto __pyx_L4_exception_handled;
    }

    /* "src/llfuse/handlers.pxi":219
 *     except FUSEError as e:
 *         ret = fuse_reply_err(req, e.errno)
 *     except BaseException as e:             # <<<<<<<<<<<<<<
 *         ret = handle_exc('unlink', e, req)
 * 
 */
    __pyx_t_19 = PyErr_ExceptionMatches(__pyx_builtin_BaseException);
    if (__pyx_t_19) {
      __Pyx_AddTraceback("llfuse.capi.fuse_unlink", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_6, &__pyx_t_14) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 219; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_GOTREF(__pyx_t_14);
      __Pyx_INCREF(__pyx_t_6);
      __pyx_v_e = __pyx_t_6;
      /*try:*/ {

        /* "src/llfuse/handlers.pxi":220
 *         ret = fuse_reply_err(req, e.errno)
 *     except BaseException as e:
 *         ret = handle_exc('unlink', e, req)             # <<<<<<<<<<<<<<
 * 
 *     if ret != 0:
 */
        __pyx_v_ret = __pyx_f_6llfuse_4capi_handle_exc(__pyx_k_unlink, __pyx_v_e, __pyx_v_req);
      }

      /* "src/llfuse/handlers.pxi":219
 *     except FUSEError as e:
 *         ret = fuse_reply_err(req, e.errno)
 *     except BaseException as e:             # <<<<<<<<<<<<<<
 *         ret = handle_exc('unlink', e, req)
 * 
 */
      /*finally:*/ {
        /*normal exit:*/{
          __Pyx_DECREF(__pyx_v_e);
          __pyx_v_e = NULL;
          goto __pyx_L46;
        }
        __pyx_L46:;
      }
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
      goto __pyx_L4_exception_handled;
    }
    goto __pyx_L5_except_error;
    __pyx_L5_except_error:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L1_error;
    __pyx_L4_exception_handled:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    __pyx_L10_try_end:;
  }

  /* "src/llfuse/handlers.pxi":222
 *         ret = handle_exc('unlink', e, req)
 * 
 *     if ret != 0:             # <<<<<<<<<<<<<<
 *         log.error('fuse_unlink(): fuse_reply_* failed with %s', strerror(-ret))
 * 
 */
  __pyx_t_17 = ((__pyx_v_ret != 0) != 0);
  if (__pyx_t_17) {

    /* "src/llfuse/handlers.pxi":223
 * 
 *     if ret != 0:
 *         log.error('fuse_unlink(): fuse_reply_* failed with %s', strerror(-ret))             # <<<<<<<<<<<<<<
 * 
 * cdef void fuse_rmdir (fuse_req_t req, fuse_ino_t parent, const_char *name) with gil:
 */
    __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s_log); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 223; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_error); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 223; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_8 = __Pyx_GetModuleGlobalName(__pyx_n_s_strerror); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 223; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_7 = __Pyx_PyInt_From_int((-__pyx_v_ret)); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 223; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_12 = NULL;
    if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_8))) {
      __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_8);
      if (likely(__pyx_t_12)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
        __Pyx_INCREF(__pyx_t_12);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_8, function);
      }
    }
    if (!__pyx_t_12) {
      __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_7); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 223; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_GOTREF(__pyx_t_6);
    } else {
      __pyx_t_22 = PyTuple_New(1+1); if (unlikely(!__pyx_t_22)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 223; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_22);
      PyTuple_SET_ITEM(__pyx_t_22, 0, __pyx_t_12); __Pyx_GIVEREF(__pyx_t_12); __pyx_t_12 = NULL;
      PyTuple_SET_ITEM(__pyx_t_22, 0+1, __pyx_t_7);
      __Pyx_GIVEREF(__pyx_t_7);
      __pyx_t_7 = 0;
      __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_22, NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 223; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
    }
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __pyx_t_8 = NULL;
    __pyx_t_13 = 0;
    if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_4);
      if (likely(__pyx_t_8)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
        __Pyx_INCREF(__pyx_t_8);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_4, function);
        __pyx_t_13 = 1;
      }
    }
    __pyx_t_22 = PyTuple_New(2+__pyx_t_13); if (unlikely(!__pyx_t_22)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 223; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_22);
    if (__pyx_t_8) {
      PyTuple_SET_ITEM(__pyx_t_22, 0, __pyx_t_8); __Pyx_GIVEREF(__pyx_t_8); __pyx_t_8 = NULL;
    }
    __Pyx_INCREF(__pyx_kp_u_fuse_unlink_fuse_reply__failed_w);
    PyTuple_SET_ITEM(__pyx_t_22, 0+__pyx_t_13, __pyx_kp_u_fuse_unlink_fuse_reply__failed_w);
    __Pyx_GIVEREF(__pyx_kp_u_fuse_unlink_fuse_reply__failed_w);
    PyTuple_SET_ITEM(__pyx_t_22, 1+__pyx_t_13, __pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_6);
    __pyx_t_6 = 0;
    __pyx_t_14 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_22, NULL); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 223; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_14);
    __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
    goto __pyx_L47;
  }
  __pyx_L47:;

  /* "src/llfuse/handlers.pxi":210
 *         log.error('fuse_mkdir(): fuse_reply_* failed with %s', strerror(-ret))
 * 
 * cdef void fuse_unlink (fuse_req_t req, fuse_ino_t parent, const_char *name) with gil:             # <<<<<<<<<<<<<<
 *     cdef int ret
 * 
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_XDECREF(__pyx_t_14);
  __Pyx_XDECREF(__pyx_t_22);
  __Pyx_WriteUnraisable("llfuse.capi.fuse_unlink", __pyx_clineno, __pyx_lineno, __pyx_filename, 0);
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_e);
  __Pyx_RefNannyFinishContext();
  #ifdef WITH_THREAD
  PyGILState_Release(__pyx_gilstate_save);
  #endif
}

/* "src/llfuse/handlers.pxi":225
 *         log.error('fuse_unlink(): fuse_reply_* failed with %s', strerror(-ret))
 * 
 * cdef void fuse_rmdir (fuse_req_t req, fuse_ino_t parent, const_char *name) with gil:             # <<<<<<<<<<<<<<
 *     cdef int ret
 * 
 */

static void __pyx_f_6llfuse_4capi_fuse_rmdir(fuse_req_t __pyx_v_req, fuse_ino_t __pyx_v_parent, const char *__pyx_v_name) {
  int __pyx_v_ret;
  PyObject *__pyx_v_e = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  Py_ssize_t __pyx_t_13;
  PyObject *__pyx_t_14 = NULL;
  PyObject *__pyx_t_15 = NULL;
  int __pyx_t_16;
  int __pyx_t_17;
  int __pyx_t_18;
  int __pyx_t_19;
  char const *__pyx_t_20;
  PyObject *__pyx_t_21 = NULL;
  PyObject *__pyx_t_22 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  #ifdef WITH_THREAD
  PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure();
  #endif
  __Pyx_RefNannySetupContext("fuse_rmdir", 0);

  /* "src/llfuse/handlers.pxi":228
 *     cdef int ret
 * 
 *     try:             # <<<<<<<<<<<<<<
 *         with lock:
 *             operations.rmdir(parent, PyBytes_FromString(name))
 */
  {
    __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);
    __Pyx_XGOTREF(__pyx_t_1);
    __Pyx_XGOTREF(__pyx_t_2);
    __Pyx_XGOTREF(__pyx_t_3);
    /*try:*/ {

      /* "src/llfuse/handlers.pxi":229
 * 
 *     try:
 *         with lock:             # <<<<<<<<<<<<<<
 *             operations.rmdir(parent, PyBytes_FromString(name))
 *         ret = fuse_reply_err(req, 0)
 */
      /*with:*/ {
        __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_lock); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 229; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_5 = __Pyx_PyObject_LookupSpecial(__pyx_t_4, __pyx_n_s_exit); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 229; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_7 = __Pyx_PyObject_LookupSpecial(__pyx_t_4, __pyx_n_s_enter); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 229; __pyx_clineno = __LINE__; goto __pyx_L11_error;}
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_8 = NULL;
        if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_7))) {
          __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7);
          if (likely(__pyx_t_8)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
            __Pyx_INCREF(__pyx_t_8);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_7, function);
          }
        }
        if (__pyx_t_8) {
          __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_8); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 229; __pyx_clineno = __LINE__; goto __pyx_L11_error;}
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        } else {
          __pyx_t_6 = __Pyx_PyObject_CallNoArg(__pyx_t_7); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 229; __pyx_clineno = __LINE__; goto __pyx_L11_error;}
        }
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        /*try:*/ {
          {
            __Pyx_ExceptionSave(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
            __Pyx_XGOTREF(__pyx_t_9);
            __Pyx_XGOTREF(__pyx_t_10);
            __Pyx_XGOTREF(__pyx_t_11);
            /*try:*/ {

              /* "src/llfuse/handlers.pxi":230
 *     try:
 *         with lock:
 *             operations.rmdir(parent, PyBytes_FromString(name))             # <<<<<<<<<<<<<<
 *         ret = fuse_reply_err(req, 0)
 *     except FUSEError as e:
 */
              __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_6llfuse_4capi_operations, __pyx_n_s_rmdir); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 230; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
              __Pyx_GOTREF(__pyx_t_6);
              __pyx_t_7 = __Pyx_PyInt_From_fuse_ino_t(__pyx_v_parent); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 230; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
              __Pyx_GOTREF(__pyx_t_7);
              __pyx_t_8 = PyBytes_FromString(__pyx_v_name); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 230; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
              __Pyx_GOTREF(__pyx_t_8);
              __pyx_t_12 = NULL;
              __pyx_t_13 = 0;
              if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_6))) {
                __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_6);
                if (likely(__pyx_t_12)) {
                  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
                  __Pyx_INCREF(__pyx_t_12);
                  __Pyx_INCREF(function);
                  __Pyx_DECREF_SET(__pyx_t_6, function);
                  __pyx_t_13 = 1;
                }
              }
              __pyx_t_14 = PyTuple_New(2+__pyx_t_13); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 230; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
              __Pyx_GOTREF(__pyx_t_14);
              if (__pyx_t_12) {
                PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_12); __Pyx_GIVEREF(__pyx_t_12); __pyx_t_12 = NULL;
              }
              PyTuple_SET_ITEM(__pyx_t_14, 0+__pyx_t_13, __pyx_t_7);
              __Pyx_GIVEREF(__pyx_t_7);
              PyTuple_SET_ITEM(__pyx_t_14, 1+__pyx_t_13, __pyx_t_8);
              __Pyx_GIVEREF(__pyx_t_8);
              __pyx_t_7 = 0;
              __pyx_t_8 = 0;
              __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_14, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 230; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
              __Pyx_GOTREF(__pyx_t_4);
              __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
              __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
              __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
            }
            __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
            __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
            __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
            goto __pyx_L24_try_end;
            __pyx_L17_error:;
            __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
            __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
            __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
            __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
            __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
            __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;

            /* "src/llfuse/handlers.pxi":229
 * 
 *     try:
 *         with lock:             # <<<<<<<<<<<<<<
 *             operations.rmdir(parent, PyBytes_FromString(name))
 *         ret = fuse_reply_err(req, 0)
 */
            /*except:*/ {
              __Pyx_AddTraceback("llfuse.capi.fuse_rmdir", __pyx_clineno, __pyx_lineno, __pyx_filename);
              if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_6, &__pyx_t_14) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 229; __pyx_clineno = __LINE__; goto __pyx_L19_except_error;}
              __Pyx_GOTREF(__pyx_t_4);
              __Pyx_GOTREF(__pyx_t_6);
              __Pyx_GOTREF(__pyx_t_14);
              __pyx_t_8 = PyTuple_Pack(3, __pyx_t_4, __pyx_t_6, __pyx_t_14); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 229; __pyx_clineno = __LINE__; goto __pyx_L19_except_error;}
              __Pyx_GOTREF(__pyx_t_8);
              __pyx_t_15 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_8, NULL);
              __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
              __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
              if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 229; __pyx_clineno = __LINE__; goto __pyx_L19_except_error;}
              __Pyx_GOTREF(__pyx_t_15);
              __pyx_t_16 = __Pyx_PyObject_IsTrue(__pyx_t_15);
              __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
              if (__pyx_t_16 < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 229; __pyx_clineno = __LINE__; goto __pyx_L19_except_error;}
              __pyx_t_17 = ((!(__pyx_t_16 != 0)) != 0);
              if (__pyx_t_17) {
                __Pyx_GIVEREF(__pyx_t_4);
                __Pyx_GIVEREF(__pyx_t_6);
                __Pyx_XGIVEREF(__pyx_t_14);
                __Pyx_ErrRestore(__pyx_t_4, __pyx_t_6, __pyx_t_14);
                __pyx_t_4 = 0; __pyx_t_6 = 0; __pyx_t_14 = 0; 
                {__pyx_filename = __pyx_f[0]; __pyx_lineno = 229; __pyx_clineno = __LINE__; goto __pyx_L19_except_error;}
              }
              __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
              __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
              __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
              goto __pyx_L18_exception_handled;
            }
            __pyx_L19_except_error:;
            __Pyx_XGIVEREF(__pyx_t_9);
            __Pyx_XGIVEREF(__pyx_t_10);
            __Pyx_XGIVEREF(__pyx_t_11);
            __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11);
            goto __pyx_L3_error;
            __pyx_L18_exception_handled:;
            __Pyx_XGIVEREF(__pyx_t_9);
            __Pyx_XGIVEREF(__pyx_t_10);
            __Pyx_XGIVEREF(__pyx_t_11);
            __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11);
            __pyx_L24_try_end:;
          }
        }
        /*finally:*/ {
          /*normal exit:*/{
            if (__pyx_t_5) {
              __pyx_t_11 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_tuple__11, NULL);
              __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
              if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 229; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
              __Pyx_GOTREF(__pyx_t_11);
              __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
            }
            goto __pyx_L16;
          }
          __pyx_L16:;
        }
        goto __pyx_L28;
        __pyx_L11_error:;
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        goto __pyx_L3_error;
        __pyx_L28:;
      }

      /* "src/llfuse/handlers.pxi":231
 *         with lock:
 *             operations.rmdir(parent, PyBytes_FromString(name))
 *         ret = fuse_reply_err(req, 0)             # <<<<<<<<<<<<<<
 *     except FUSEError as e:
 *         ret = fuse_reply_err(req, e.errno)
 */
      __pyx_v_ret = fuse_reply_err(__pyx_v_req, 0);
    }
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    goto __pyx_L10_try_end;
    __pyx_L3_error:;
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;

    /* "src/llfuse/handlers.pxi":232
 *             operations.rmdir(parent, PyBytes_FromString(name))
 *         ret = fuse_reply_err(req, 0)
 *     except FUSEError as e:             # <<<<<<<<<<<<<<
 *         ret = fuse_reply_err(req, e.errno)
 *     except BaseException as e:
 */
    __pyx_t_14 = __Pyx_GetModuleGlobalName(__pyx_n_s_FUSEError); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 232; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
    __Pyx_GOTREF(__pyx_t_14);
    __pyx_t_18 = PyErr_ExceptionMatches(__pyx_t_14);
    __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
    if (__pyx_t_18) {
      __Pyx_AddTraceback("llfuse.capi.fuse_rmdir", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_14, &__pyx_t_6, &__pyx_t_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 232; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
      __Pyx_GOTREF(__pyx_t_14);
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_6);
      __pyx_v_e = __pyx_t_6;
      /*try:*/ {

        /* "src/llfuse/handlers.pxi":233
 *         ret = fuse_reply_err(req, 0)
 *     except FUSEError as e:
 *         ret = fuse_reply_err(req, e.errno)             # <<<<<<<<<<<<<<
 *     except BaseException as e:
 *         ret = handle_exc('rmdir', e, req)
 */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_e, __pyx_n_s_errno); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 233; __pyx_clineno = __LINE__; goto __pyx_L34_error;}
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_18 = __Pyx_PyInt_As_int(__pyx_t_8); if (unlikely((__pyx_t_18 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 233; __pyx_clineno = __LINE__; goto __pyx_L34_error;}
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __pyx_v_ret = fuse_reply_err(__pyx_v_req, __pyx_t_18);
      }

      /* "src/llfuse/handlers.pxi":232
 *             operations.rmdir(parent, PyBytes_FromString(name))
 *         ret = fuse_reply_err(req, 0)
 *     except FUSEError as e:             # <<<<<<<<<<<<<<
 *         ret = fuse_reply_err(req, e.errno)
 *     except BaseException as e:
 */
      /*finally:*/ {
        /*normal exit:*/{
          __Pyx_DECREF(__pyx_v_e);
          __pyx_v_e = NULL;
          goto __pyx_L35;
        }
        /*exception exit:*/{
          __pyx_L34_error:;
          __pyx_t_5 = 0; __pyx_t_11 = 0; __pyx_t_10 = 0; __pyx_t_9 = 0; __pyx_t_15 = 0; __pyx_t_21 = 0;
          __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
          if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_9, &__pyx_t_15, &__pyx_t_21);
          if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_5, &__pyx_t_11, &__pyx_t_10) < 0)) __Pyx_ErrFetch(&__pyx_t_5, &__pyx_t_11, &__pyx_t_10);
          __Pyx_XGOTREF(__pyx_t_5);
          __Pyx_XGOTREF(__pyx_t_11);
          __Pyx_XGOTREF(__pyx_t_10);
          __Pyx_XGOTREF(__pyx_t_9);
          __Pyx_XGOTREF(__pyx_t_15);
          __Pyx_XGOTREF(__pyx_t_21);
          __pyx_t_18 = __pyx_lineno; __pyx_t_19 = __pyx_clineno; __pyx_t_20 = __pyx_filename;
          {
            __Pyx_DECREF(__pyx_v_e);
            __pyx_v_e = NULL;
          }
          if (PY_MAJOR_VERSION >= 3) {
            __Pyx_XGIVEREF(__pyx_t_9);
            __Pyx_XGIVEREF(__pyx_t_15);
            __Pyx_XGIVEREF(__pyx_t_21);
            __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_15, __pyx_t_21);
          }
          __Pyx_XGIVEREF(__pyx_t_5);
          __Pyx_XGIVEREF(__pyx_t_11);
          __Pyx_XGIVEREF(__pyx_t_10);
          __Pyx_ErrRestore(__pyx_t_5, __pyx_t_11, __pyx_t_10);
          __pyx_t_5 = 0; __pyx_t_11 = 0; __pyx_t_10 = 0; __pyx_t_9 = 0; __pyx_t_15 = 0; __pyx_t_21 = 0;
          __pyx_lineno = __pyx_t_18; __pyx_clineno = __pyx_t_19; __pyx_filename = __pyx_t_20;
          goto __pyx_L5_except_error;
        }
        __pyx_L35:;
      }
      __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      goto __pyx_L4_exception_handled;
    }

    /* "src/llfuse/handlers.pxi":234
 *     except FUSEError as e:
 *         ret = fuse_reply_err(req, e.errno)
 *     except BaseException as e:             # <<<<<<<<<<<<<<
 *         ret = handle_exc('rmdir', e, req)
 * 
 */
    __pyx_t_19 = PyErr_ExceptionMatches(__pyx_builtin_BaseException);
    if (__pyx_t_19) {
      __Pyx_AddTraceback("llfuse.capi.fuse_rmdir", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_6, &__pyx_t_14) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 234; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_GOTREF(__pyx_t_14);
      __Pyx_INCREF(__pyx_t_6);
      __pyx_v_e = __pyx_t_6;
      /*try:*/ {

        /* "src/llfuse/handlers.pxi":235
 *         ret = fuse_reply_err(req, e.errno)
 *     except BaseException as e:
 *         ret = handle_exc('rmdir', e, req)             # <<<<<<<<<<<<<<
 * 
 *     if ret != 0:
 */
        __pyx_v_ret = __pyx_f_6llfuse_4capi_handle_exc(__pyx_k_rmdir, __pyx_v_e, __pyx_v_req);
      }

      /* "src/llfuse/handlers.pxi":234
 *     except FUSEError as e:
 *         ret = fuse_reply_err(req, e.errno)
 *     except BaseException as e:             # <<<<<<<<<<<<<<
 *         ret = handle_exc('rmdir', e, req)
 * 
 */
      /*finally:*/ {
        /*normal exit:*/{
          __Pyx_DECREF(__pyx_v_e);
          __pyx_v_e = NULL;
          goto __pyx_L46;
        }
        __pyx_L46:;
      }
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
      goto __pyx_L4_exception_handled;
    }
    goto __pyx_L5_except_error;
    __pyx_L5_except_error:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L1_error;
    __pyx_L4_exception_handled:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    __pyx_L10_try_end:;
  }

  /* "src/llfuse/handlers.pxi":237
 *         ret = handle_exc('rmdir', e, req)
 * 
 *     if ret != 0:             # <<<<<<<<<<<<<<
 *         log.error('fuse_rmdir(): fuse_reply_* failed with %s', strerror(-ret))
 * 
 */
  __pyx_t_17 = ((__pyx_v_ret != 0) != 0);
  if (__pyx_t_17) {

    /* "src/llfuse/handlers.pxi":238
 * 
 *     if ret != 0:
 *         log.error('fuse_rmdir(): fuse_reply_* failed with %s', strerror(-ret))             # <<<<<<<<<<<<<<
 * 
 * cdef void fuse_symlink (fuse_req_t req, const_char *link, fuse_ino_t parent,
 */
    __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s_log); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 238; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_error); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 238; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_8 = __Pyx_GetModuleGlobalName(__pyx_n_s_strerror); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 238; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_7 = __Pyx_PyInt_From_int((-__pyx_v_ret)); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 238; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_12 = NULL;
    if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_8))) {
      __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_8);
      if (likely(__pyx_t_12)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
        __Pyx_INCREF(__pyx_t_12);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_8, function);
      }
    }
    if (!__pyx_t_12) {
      __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_7); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 238; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_GOTREF(__pyx_t_6);
    } else {
      __pyx_t_22 = PyTuple_New(1+1); if (unlikely(!__pyx_t_22)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 238; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_22);
      PyTuple_SET_ITEM(__pyx_t_22, 0, __pyx_t_12); __Pyx_GIVEREF(__pyx_t_12); __pyx_t_12 = NULL;
      PyTuple_SET_ITEM(__pyx_t_22, 0+1, __pyx_t_7);
      __Pyx_GIVEREF(__pyx_t_7);
      __pyx_t_7 = 0;
      __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_22, NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 238; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
    }
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __pyx_t_8 = NULL;
    __pyx_t_13 = 0;
    if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_4);
      if (likely(__pyx_t_8)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
        __Pyx_INCREF(__pyx_t_8);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_4, function);
        __pyx_t_13 = 1;
      }
    }
    __pyx_t_22 = PyTuple_New(2+__pyx_t_13); if (unlikely(!__pyx_t_22)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 238; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_22);
    if (__pyx_t_8) {
      PyTuple_SET_ITEM(__pyx_t_22, 0, __pyx_t_8); __Pyx_GIVEREF(__pyx_t_8); __pyx_t_8 = NULL;
    }
    __Pyx_INCREF(__pyx_kp_u_fuse_rmdir_fuse_reply__failed_wi);
    PyTuple_SET_ITEM(__pyx_t_22, 0+__pyx_t_13, __pyx_kp_u_fuse_rmdir_fuse_reply__failed_wi);
    __Pyx_GIVEREF(__pyx_kp_u_fuse_rmdir_fuse_reply__failed_wi);
    PyTuple_SET_ITEM(__pyx_t_22, 1+__pyx_t_13, __pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_6);
    __pyx_t_6 = 0;
    __pyx_t_14 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_22, NULL); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 238; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_14);
    __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
    goto __pyx_L47;
  }
  __pyx_L47:;

  /* "src/llfuse/handlers.pxi":225
 *         log.error('fuse_unlink(): fuse_reply_* failed with %s', strerror(-ret))
 * 
 * cdef void fuse_rmdir (fuse_req_t req, fuse_ino_t parent, const_char *name) with gil:             # <<<<<<<<<<<<<<
 *     cdef int ret
 * 
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_XDECREF(__pyx_t_14);
  __Pyx_XDECREF(__pyx_t_22);
  __Pyx_WriteUnraisable("llfuse.capi.fuse_rmdir", __pyx_clineno, __pyx_lineno, __pyx_filename, 0);
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_e);
  __Pyx_RefNannyFinishContext();
  #ifdef WITH_THREAD
  PyGILState_Release(__pyx_gilstate_save);
  #endif
}

/* "src/llfuse/handlers.pxi":240
 *         log.error('fuse_rmdir(): fuse_reply_* failed with %s', strerror(-ret))
 * 
 * cdef void fuse_symlink (fuse_req_t req, const_char *link, fuse_ino_t parent,             # <<<<<<<<<<<<<<
 *                         const_char *name) with gil:
 *     cdef int ret
 */

static void __pyx_f_6llfuse_4capi_fuse_symlink(fuse_req_t __pyx_v_req, const char *__pyx_v_link, fuse_ino_t __pyx_v_parent, const char *__pyx_v_name) {
  int __pyx_v_ret;
  struct fuse_entry_param __pyx_v_entry;
  PyObject *__pyx_v_ctx = NULL;
  PyObject *__pyx_v_attr = NULL;
  PyObject *__pyx_v_e = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  PyObject *__pyx_t_13 = NULL;
  Py_ssize_t __pyx_t_14;
  PyObject *__pyx_t_15 = NULL;
  PyObject *__pyx_t_16 = NULL;
  int __pyx_t_17;
  int __pyx_t_18;
  int __pyx_t_19;
  int __pyx_t_20;
  char const *__pyx_t_21;
  PyObject *__pyx_t_22 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  #ifdef WITH_THREAD
  PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure();
  #endif
  __Pyx_RefNannySetupContext("fuse_symlink", 0);

  /* "src/llfuse/handlers.pxi":245
 *     cdef fuse_entry_param entry
 * 
 *     try:             # <<<<<<<<<<<<<<
 *         ctx = get_request_context(req)
 *         with lock:
 */
  {
    __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);
    __Pyx_XGOTREF(__pyx_t_1);
    __Pyx_XGOTREF(__pyx_t_2);
    __Pyx_XGOTREF(__pyx_t_3);
    /*try:*/ {

      /* "src/llfuse/handlers.pxi":246
 * 
 *     try:
 *         ctx = get_request_context(req)             # <<<<<<<<<<<<<<
 *         with lock:
 *             attr = operations.symlink(parent, PyBytes_FromString(name),
 */
      __pyx_t_4 = __pyx_f_6llfuse_4capi_get_request_context(__pyx_v_req); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 246; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_v_ctx = __pyx_t_4;
      __pyx_t_4 = 0;

      /* "src/llfuse/handlers.pxi":247
 *     try:
 *         ctx = get_request_context(req)
 *         with lock:             # <<<<<<<<<<<<<<
 *             attr = operations.symlink(parent, PyBytes_FromString(name),
 *                                       PyBytes_FromString(link), ctx)
 */
      /*with:*/ {
        __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_lock); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 247; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_5 = __Pyx_PyObject_LookupSpecial(__pyx_t_4, __pyx_n_s_exit); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 247; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_7 = __Pyx_PyObject_LookupSpecial(__pyx_t_4, __pyx_n_s_enter); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 247; __pyx_clineno = __LINE__; goto __pyx_L11_error;}
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_8 = NULL;
        if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_7))) {
          __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7);
          if (likely(__pyx_t_8)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
            __Pyx_INCREF(__pyx_t_8);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_7, function);
          }
        }
        if (__pyx_t_8) {
          __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_8); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 247; __pyx_clineno = __LINE__; goto __pyx_L11_error;}
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        } else {
          __pyx_t_6 = __Pyx_PyObject_CallNoArg(__pyx_t_7); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 247; __pyx_clineno = __LINE__; goto __pyx_L11_error;}
        }
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        /*try:*/ {
          {
            __Pyx_ExceptionSave(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
            __Pyx_XGOTREF(__pyx_t_9);
            __Pyx_XGOTREF(__pyx_t_10);
            __Pyx_XGOTREF(__pyx_t_11);
            /*try:*/ {

              /* "src/llfuse/handlers.pxi":248
 *         ctx = get_request_context(req)
 *         with lock:
 *             attr = operations.symlink(parent, PyBytes_FromString(name),             # <<<<<<<<<<<<<<
 *                                       PyBytes_FromString(link), ctx)
 *         fill_entry_param(attr, &entry)
 */
              __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_6llfuse_4capi_operations, __pyx_n_s_symlink); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 248; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
              __Pyx_GOTREF(__pyx_t_6);
              __pyx_t_7 = __Pyx_PyInt_From_fuse_ino_t(__pyx_v_parent); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 248; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
              __Pyx_GOTREF(__pyx_t_7);
              __pyx_t_8 = PyBytes_FromString(__pyx_v_name); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 248; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
              __Pyx_GOTREF(__pyx_t_8);

              /* "src/llfuse/handlers.pxi":249
 *         with lock:
 *             attr = operations.symlink(parent, PyBytes_FromString(name),
 *                                       PyBytes_FromString(link), ctx)             # <<<<<<<<<<<<<<
 *         fill_entry_param(attr, &entry)
 *         ret = fuse_reply_entry(req, &entry)
 */
              __pyx_t_12 = PyBytes_FromString(__pyx_v_link); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 249; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
              __Pyx_GOTREF(__pyx_t_12);
              __pyx_t_13 = NULL;
              __pyx_t_14 = 0;
              if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_6))) {
                __pyx_t_13 = PyMethod_GET_SELF(__pyx_t_6);
                if (likely(__pyx_t_13)) {
                  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
                  __Pyx_INCREF(__pyx_t_13);
                  __Pyx_INCREF(function);
                  __Pyx_DECREF_SET(__pyx_t_6, function);
                  __pyx_t_14 = 1;
                }
              }
              __pyx_t_15 = PyTuple_New(4+__pyx_t_14); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 248; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
              __Pyx_GOTREF(__pyx_t_15);
              if (__pyx_t_13) {
                PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_13); __Pyx_GIVEREF(__pyx_t_13); __pyx_t_13 = NULL;
              }
              PyTuple_SET_ITEM(__pyx_t_15, 0+__pyx_t_14, __pyx_t_7);
              __Pyx_GIVEREF(__pyx_t_7);
              PyTuple_SET_ITEM(__pyx_t_15, 1+__pyx_t_14, __pyx_t_8);
              __Pyx_GIVEREF(__pyx_t_8);
              PyTuple_SET_ITEM(__pyx_t_15, 2+__pyx_t_14, __pyx_t_12);
              __Pyx_GIVEREF(__pyx_t_12);
              __Pyx_INCREF(__pyx_v_ctx);
              PyTuple_SET_ITEM(__pyx_t_15, 3+__pyx_t_14, __pyx_v_ctx);
              __Pyx_GIVEREF(__pyx_v_ctx);
              __pyx_t_7 = 0;
              __pyx_t_8 = 0;
              __pyx_t_12 = 0;
              __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_15, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 248; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
              __Pyx_GOTREF(__pyx_t_4);
              __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
              __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
              __pyx_v_attr = __pyx_t_4;
              __pyx_t_4 = 0;
            }
            __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
            __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
            __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
            goto __pyx_L24_try_end;
            __pyx_L17_error:;
            __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
            __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
            __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
            __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
            __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0;
            __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
            __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;

            /* "src/llfuse/handlers.pxi":247
 *     try:
 *         ctx = get_request_context(req)
 *         with lock:             # <<<<<<<<<<<<<<
 *             attr = operations.symlink(parent, PyBytes_FromString(name),
 *                                       PyBytes_FromString(link), ctx)
 */
            /*except:*/ {
              __Pyx_AddTraceback("llfuse.capi.fuse_symlink", __pyx_clineno, __pyx_lineno, __pyx_filename);
              if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_6, &__pyx_t_15) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 247; __pyx_clineno = __LINE__; goto __pyx_L19_except_error;}
              __Pyx_GOTREF(__pyx_t_4);
              __Pyx_GOTREF(__pyx_t_6);
              __Pyx_GOTREF(__pyx_t_15);
              __pyx_t_12 = PyTuple_Pack(3, __pyx_t_4, __pyx_t_6, __pyx_t_15); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 247; __pyx_clineno = __LINE__; goto __pyx_L19_except_error;}
              __Pyx_GOTREF(__pyx_t_12);
              __pyx_t_16 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_12, NULL);
              __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
              __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
              if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 247; __pyx_clineno = __LINE__; goto __pyx_L19_except_error;}
              __Pyx_GOTREF(__pyx_t_16);
              __pyx_t_17 = __Pyx_PyObject_IsTrue(__pyx_t_16);
              __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
              if (__pyx_t_17 < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 247; __pyx_clineno = __LINE__; goto __pyx_L19_except_error;}
              __pyx_t_18 = ((!(__pyx_t_17 != 0)) != 0);
              if (__pyx_t_18) {
                __Pyx_GIVEREF(__pyx_t_4);
                __Pyx_GIVEREF(__pyx_t_6);
                __Pyx_XGIVEREF(__pyx_t_15);
                __Pyx_ErrRestore(__pyx_t_4, __pyx_t_6, __pyx_t_15);
                __pyx_t_4 = 0; __pyx_t_6 = 0; __pyx_t_15 = 0; 
                {__pyx_filename = __pyx_f[0]; __pyx_lineno = 247; __pyx_clineno = __LINE__; goto __pyx_L19_except_error;}
              }
              __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
              __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
              __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
              goto __pyx_L18_exception_handled;
            }
            __pyx_L19_except_error:;
            __Pyx_XGIVEREF(__pyx_t_9);
            __Pyx_XGIVEREF(__pyx_t_10);
            __Pyx_XGIVEREF(__pyx_t_11);
            __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11);
            goto __pyx_L3_error;
            __pyx_L18_exception_handled:;
            __Pyx_XGIVEREF(__pyx_t_9);
            __Pyx_XGIVEREF(__pyx_t_10);
            __Pyx_XGIVEREF(__pyx_t_11);
            __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11);
            __pyx_L24_try_end:;
          }
        }
        /*finally:*/ {
          /*normal exit:*/{
            if (__pyx_t_5) {
              __pyx_t_11 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_tuple__12, NULL);
              __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
              if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 247; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
              __Pyx_GOTREF(__pyx_t_11);
              __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
            }
            goto __pyx_L16;
          }
          __pyx_L16:;
        }
        goto __pyx_L28;
        __pyx_L11_error:;
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        goto __pyx_L3_error;
        __pyx_L28:;
      }

      /* "src/llfuse/handlers.pxi":250
 *             attr = operations.symlink(parent, PyBytes_FromString(name),
 *                                       PyBytes_FromString(link), ctx)
 *         fill_entry_param(attr, &entry)             # <<<<<<<<<<<<<<
 *         ret = fuse_reply_entry(req, &entry)
 *     except FUSEError as e:
 */
      if (unlikely(!__pyx_v_attr)) { __Pyx_RaiseUnboundLocalError("attr"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 250; __pyx_clineno = __LINE__; goto __pyx_L3_error;} }
      __pyx_t_15 = __pyx_f_6llfuse_4capi_fill_entry_param(__pyx_v_attr, (&__pyx_v_entry)); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 250; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      __Pyx_GOTREF(__pyx_t_15);
      __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;

      /* "src/llfuse/handlers.pxi":251
 *                                       PyBytes_FromString(link), ctx)
 *         fill_entry_param(attr, &entry)
 *         ret = fuse_reply_entry(req, &entry)             # <<<<<<<<<<<<<<
 *     except FUSEError as e:
 *         ret = fuse_reply_err(req, e.errno)
 */
      __pyx_v_ret = fuse_reply_entry(__pyx_v_req, (&__pyx_v_entry));
    }
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    goto __pyx_L10_try_end;
    __pyx_L3_error:;
    __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0;

    /* "src/llfuse/handlers.pxi":252
 *         fill_entry_param(attr, &entry)
 *         ret = fuse_reply_entry(req, &entry)
 *     except FUSEError as e:             # <<<<<<<<<<<<<<
 *         ret = fuse_reply_err(req, e.errno)
 *     except BaseException as e:
 */
    __pyx_t_15 = __Pyx_GetModuleGlobalName(__pyx_n_s_FUSEError); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 252; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
    __Pyx_GOTREF(__pyx_t_15);
    __pyx_t_19 = PyErr_ExceptionMatches(__pyx_t_15);
    __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
    if (__pyx_t_19) {
      __Pyx_AddTraceback("llfuse.capi.fuse_symlink", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_15, &__pyx_t_6, &__pyx_t_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 252; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
      __Pyx_GOTREF(__pyx_t_15);
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_6);
      __pyx_v_e = __pyx_t_6;
      /*try:*/ {

        /* "src/llfuse/handlers.pxi":253
 *         ret = fuse_reply_entry(req, &entry)
 *     except FUSEError as e:
 *         ret = fuse_reply_err(req, e.errno)             # <<<<<<<<<<<<<<
 *     except BaseException as e:
 *         ret = handle_exc('symlink', e, req)
 */
        __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_v_e, __pyx_n_s_errno); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 253; __pyx_clineno = __LINE__; goto __pyx_L34_error;}
        __Pyx_GOTREF(__pyx_t_12);
        __pyx_t_19 = __Pyx_PyInt_As_int(__pyx_t_12); if (unlikely((__pyx_t_19 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 253; __pyx_clineno = __LINE__; goto __pyx_L34_error;}
        __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
        __pyx_v_ret = fuse_reply_err(__pyx_v_req, __pyx_t_19);
      }

      /* "src/llfuse/handlers.pxi":252
 *         fill_entry_param(attr, &entry)
 *         ret = fuse_reply_entry(req, &entry)
 *     except FUSEError as e:             # <<<<<<<<<<<<<<
 *         ret = fuse_reply_err(req, e.errno)
 *     except BaseException as e:
 */
      /*finally:*/ {
        /*normal exit:*/{
          __Pyx_DECREF(__pyx_v_e);
          __pyx_v_e = NULL;
          goto __pyx_L35;
        }
        /*exception exit:*/{
          __pyx_L34_error:;
          __pyx_t_5 = 0; __pyx_t_11 = 0; __pyx_t_10 = 0; __pyx_t_9 = 0; __pyx_t_16 = 0; __pyx_t_22 = 0;
          __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
          __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
          if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_9, &__pyx_t_16, &__pyx_t_22);
          if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_5, &__pyx_t_11, &__pyx_t_10) < 0)) __Pyx_ErrFetch(&__pyx_t_5, &__pyx_t_11, &__pyx_t_10);
          __Pyx_XGOTREF(__pyx_t_5);
          __Pyx_XGOTREF(__pyx_t_11);
          __Pyx_XGOTREF(__pyx_t_10);
          __Pyx_XGOTREF(__pyx_t_9);
          __Pyx_XGOTREF(__pyx_t_16);
          __Pyx_XGOTREF(__pyx_t_22);
          __pyx_t_19 = __pyx_lineno; __pyx_t_20 = __pyx_clineno; __pyx_t_21 = __pyx_filename;
          {
            __Pyx_DECREF(__pyx_v_e);
            __pyx_v_e = NULL;
          }
          if (PY_MAJOR_VERSION >= 3) {
            __Pyx_XGIVEREF(__pyx_t_9);
            __Pyx_XGIVEREF(__pyx_t_16);
            __Pyx_XGIVEREF(__pyx_t_22);
            __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_16, __pyx_t_22);
          }
          __Pyx_XGIVEREF(__pyx_t_5);
          __Pyx_XGIVEREF(__pyx_t_11);
          __Pyx_XGIVEREF(__pyx_t_10);
          __Pyx_ErrRestore(__pyx_t_5, __pyx_t_11, __pyx_t_10);
          __pyx_t_5 = 0; __pyx_t_11 = 0; __pyx_t_10 = 0; __pyx_t_9 = 0; __pyx_t_16 = 0; __pyx_t_22 = 0;
          __pyx_lineno = __pyx_t_19; __pyx_clineno = __pyx_t_20; __pyx_filename = __pyx_t_21;
          goto __pyx_L5_except_error;
        }
        __pyx_L35:;
      }
      __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      goto __pyx_L4_exception_handled;
    }

    /* "src/llfuse/handlers.pxi":254
 *     except FUSEError as e:
 *         ret = fuse_reply_err(req, e.errno)
 *     except BaseException as e:             # <<<<<<<<<<<<<<
 *         ret = handle_exc('symlink', e, req)
 * 
 */
    __pyx_t_20 = PyErr_ExceptionMatches(__pyx_builtin_BaseException);
    if (__pyx_t_20) {
      __Pyx_AddTraceback("llfuse.capi.fuse_symlink", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_6, &__pyx_t_15) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 254; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_GOTREF(__pyx_t_15);
      __Pyx_INCREF(__pyx_t_6);
      __pyx_v_e = __pyx_t_6;
      /*try:*/ {

        /* "src/llfuse/handlers.pxi":255
 *         ret = fuse_reply_err(req, e.errno)
 *     except BaseException as e:
 *         ret = handle_exc('symlink', e, req)             # <<<<<<<<<<<<<<
 * 
 *     if ret != 0:
 */
        __pyx_v_ret = __pyx_f_6llfuse_4capi_handle_exc(__pyx_k_symlink, __pyx_v_e, __pyx_v_req);
      }

      /* "src/llfuse/handlers.pxi":254
 *     except FUSEError as e:
 *         ret = fuse_reply_err(req, e.errno)
 *     except BaseException as e:             # <<<<<<<<<<<<<<
 *         ret = handle_exc('symlink', e, req)
 * 
 */
      /*finally:*/ {
        /*normal exit:*/{
          __Pyx_DECREF(__pyx_v_e);
          __pyx_v_e = NULL;
          goto __pyx_L46;
        }
        __pyx_L46:;
      }
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
      goto __pyx_L4_exception_handled;
    }
    goto __pyx_L5_except_error;
    __pyx_L5_except_error:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L1_error;
    __pyx_L4_exception_handled:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    __pyx_L10_try_end:;
  }

  /* "src/llfuse/handlers.pxi":257
 *         ret = handle_exc('symlink', e, req)
 * 
 *     if ret != 0:             # <<<<<<<<<<<<<<
 *         log.error('fuse_symlink(): fuse_reply_* failed with %s', strerror(-ret))
 * 
 */
  __pyx_t_18 = ((__pyx_v_ret != 0) != 0);
  if (__pyx_t_18) {

    /* "src/llfuse/handlers.pxi":258
 * 
 *     if ret != 0:
 *         log.error('fuse_symlink(): fuse_reply_* failed with %s', strerror(-ret))             # <<<<<<<<<<<<<<
 * 
 * cdef void fuse_rename (fuse_req_t req, fuse_ino_t parent, const_char *name,
 */
    __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s_log); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 258; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_error); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 258; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_12 = __Pyx_GetModuleGlobalName(__pyx_n_s_strerror); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 258; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_12);
    __pyx_t_8 = __Pyx_PyInt_From_int((-__pyx_v_ret)); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 258; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_7 = NULL;
    if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_12))) {
      __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_12);
      if (likely(__pyx_t_7)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_12);
        __Pyx_INCREF(__pyx_t_7);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_12, function);
      }
    }
    if (!__pyx_t_7) {
      __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_t_12, __pyx_t_8); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 258; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_GOTREF(__pyx_t_6);
    } else {
      __pyx_t_13 = PyTuple_New(1+1); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 258; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_13);
      PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_t_7); __Pyx_GIVEREF(__pyx_t_7); __pyx_t_7 = NULL;
      PyTuple_SET_ITEM(__pyx_t_13, 0+1, __pyx_t_8);
      __Pyx_GIVEREF(__pyx_t_8);
      __pyx_t_8 = 0;
      __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_12, __pyx_t_13, NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 258; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    }
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __pyx_t_12 = NULL;
    __pyx_t_14 = 0;
    if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_4);
      if (likely(__pyx_t_12)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
        __Pyx_INCREF(__pyx_t_12);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_4, function);
        __pyx_t_14 = 1;
      }
    }
    __pyx_t_13 = PyTuple_New(2+__pyx_t_14); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 258; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_13);
    if (__pyx_t_12) {
      PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_t_12); __Pyx_GIVEREF(__pyx_t_12); __pyx_t_12 = NULL;
    }
    __Pyx_INCREF(__pyx_kp_u_fuse_symlink_fuse_reply__failed);
    PyTuple_SET_ITEM(__pyx_t_13, 0+__pyx_t_14, __pyx_kp_u_fuse_symlink_fuse_reply__failed);
    __Pyx_GIVEREF(__pyx_kp_u_fuse_symlink_fuse_reply__failed);
    PyTuple_SET_ITEM(__pyx_t_13, 1+__pyx_t_14, __pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_6);
    __pyx_t_6 = 0;
    __pyx_t_15 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_13, NULL); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 258; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_15);
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
    goto __pyx_L47;
  }
  __pyx_L47:;

  /* "src/llfuse/handlers.pxi":240
 *         log.error('fuse_rmdir(): fuse_reply_* failed with %s', strerror(-ret))
 * 
 * cdef void fuse_symlink (fuse_req_t req, const_char *link, fuse_ino_t parent,             # <<<<<<<<<<<<<<
 *                         const_char *name) with gil:
 *     cdef int ret
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_XDECREF(__pyx_t_15);
  __Pyx_WriteUnraisable("llfuse.capi.fuse_symlink", __pyx_clineno, __pyx_lineno, __pyx_filename, 0);
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_ctx);
  __Pyx_XDECREF(__pyx_v_attr);
  __Pyx_XDECREF(__pyx_v_e);
  __Pyx_RefNannyFinishContext();
  #ifdef WITH_THREAD
  PyGILState_Release(__pyx_gilstate_save);
  #endif
}

/* "src/llfuse/handlers.pxi":260
 *         log.error('fuse_symlink(): fuse_reply_* failed with %s', strerror(-ret))
 * 
 * cdef void fuse_rename (fuse_req_t req, fuse_ino_t parent, const_char *name,             # <<<<<<<<<<<<<<
 *                        fuse_ino_t newparent, const_char *newname) with gil:
 *     cdef int ret
 */

static void __pyx_f_6llfuse_4capi_fuse_rename(fuse_req_t __pyx_v_req, fuse_ino_t __pyx_v_parent, const char *__pyx_v_name, fuse_ino_t __pyx_v_newparent, const char *__pyx_v_newname) {
  int __pyx_v_ret;
  PyObject *__pyx_v_e = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  PyObject *__pyx_t_13 = NULL;
  PyObject *__pyx_t_14 = NULL;
  Py_ssize_t __pyx_t_15;
  PyObject *__pyx_t_16 = NULL;
  PyObject *__pyx_t_17 = NULL;
  int __pyx_t_18;
  int __pyx_t_19;
  int __pyx_t_20;
  int __pyx_t_21;
  char const *__pyx_t_22;
  PyObject *__pyx_t_23 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  #ifdef WITH_THREAD
  PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure();
  #endif
  __Pyx_RefNannySetupContext("fuse_rename", 0);

  /* "src/llfuse/handlers.pxi":264
 *     cdef int ret
 * 
 *     try:             # <<<<<<<<<<<<<<
 *         with lock:
 *             operations.rename(parent, PyBytes_FromString(name),
 */
  {
    __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);
    __Pyx_XGOTREF(__pyx_t_1);
    __Pyx_XGOTREF(__pyx_t_2);
    __Pyx_XGOTREF(__pyx_t_3);
    /*try:*/ {

      /* "src/llfuse/handlers.pxi":265
 * 
 *     try:
 *         with lock:             # <<<<<<<<<<<<<<
 *             operations.rename(parent, PyBytes_FromString(name),
 *                               newparent, PyBytes_FromString(newname))
 */
      /*with:*/ {
        __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_lock); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 265; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_5 = __Pyx_PyObject_LookupSpecial(__pyx_t_4, __pyx_n_s_exit); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 265; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_7 = __Pyx_PyObject_LookupSpecial(__pyx_t_4, __pyx_n_s_enter); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 265; __pyx_clineno = __LINE__; goto __pyx_L11_error;}
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_8 = NULL;
        if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_7))) {
          __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7);
          if (likely(__pyx_t_8)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
            __Pyx_INCREF(__pyx_t_8);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_7, function);
          }
        }
        if (__pyx_t_8) {
          __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_8); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 265; __pyx_clineno = __LINE__; goto __pyx_L11_error;}
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        } else {
          __pyx_t_6 = __Pyx_PyObject_CallNoArg(__pyx_t_7); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 265; __pyx_clineno = __LINE__; goto __pyx_L11_error;}
        }
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        /*try:*/ {
          {
            __Pyx_ExceptionSave(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
            __Pyx_XGOTREF(__pyx_t_9);
            __Pyx_XGOTREF(__pyx_t_10);
            __Pyx_XGOTREF(__pyx_t_11);
            /*try:*/ {

              /* "src/llfuse/handlers.pxi":266
 *     try:
 *         with lock:
 *             operations.rename(parent, PyBytes_FromString(name),             # <<<<<<<<<<<<<<
 *                               newparent, PyBytes_FromString(newname))
 *         ret = fuse_reply_err(req, 0)
 */
              __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_6llfuse_4capi_operations, __pyx_n_s_rename); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 266; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
              __Pyx_GOTREF(__pyx_t_6);
              __pyx_t_7 = __Pyx_PyInt_From_fuse_ino_t(__pyx_v_parent); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 266; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
              __Pyx_GOTREF(__pyx_t_7);
              __pyx_t_8 = PyBytes_FromString(__pyx_v_name); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 266; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
              __Pyx_GOTREF(__pyx_t_8);

              /* "src/llfuse/handlers.pxi":267
 *         with lock:
 *             operations.rename(parent, PyBytes_FromString(name),
 *                               newparent, PyBytes_FromString(newname))             # <<<<<<<<<<<<<<
 *         ret = fuse_reply_err(req, 0)
 *     except FUSEError as e:
 */
              __pyx_t_12 = __Pyx_PyInt_From_fuse_ino_t(__pyx_v_newparent); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 267; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
              __Pyx_GOTREF(__pyx_t_12);
              __pyx_t_13 = PyBytes_FromString(__pyx_v_newname); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 267; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
              __Pyx_GOTREF(__pyx_t_13);
              __pyx_t_14 = NULL;
              __pyx_t_15 = 0;
              if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_6))) {
                __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_6);
                if (likely(__pyx_t_14)) {
                  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
                  __Pyx_INCREF(__pyx_t_14);
                  __Pyx_INCREF(function);
                  __Pyx_DECREF_SET(__pyx_t_6, function);
                  __pyx_t_15 = 1;
                }
              }
              __pyx_t_16 = PyTuple_New(4+__pyx_t_15); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 266; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
              __Pyx_GOTREF(__pyx_t_16);
              if (__pyx_t_14) {
                PyTuple_SET_ITEM(__pyx_t_16, 0, __pyx_t_14); __Pyx_GIVEREF(__pyx_t_14); __pyx_t_14 = NULL;
              }
              PyTuple_SET_ITEM(__pyx_t_16, 0+__pyx_t_15, __pyx_t_7);
              __Pyx_GIVEREF(__pyx_t_7);
              PyTuple_SET_ITEM(__pyx_t_16, 1+__pyx_t_15, __pyx_t_8);
              __Pyx_GIVEREF(__pyx_t_8);
              PyTuple_SET_ITEM(__pyx_t_16, 2+__pyx_t_15, __pyx_t_12);
              __Pyx_GIVEREF(__pyx_t_12);
              PyTuple_SET_ITEM(__pyx_t_16, 3+__pyx_t_15, __pyx_t_13);
              __Pyx_GIVEREF(__pyx_t_13);
              __pyx_t_7 = 0;
              __pyx_t_8 = 0;
              __pyx_t_12 = 0;
              __pyx_t_13 = 0;
              __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_16, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 266; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
              __Pyx_GOTREF(__pyx_t_4);
              __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
              __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
              __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
            }
            __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
            __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
            __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
            goto __pyx_L24_try_end;
            __pyx_L17_error:;
            __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
            __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
            __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
            __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
            __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
            __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0;
            __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
            __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;

            /* "src/llfuse/handlers.pxi":265
 * 
 *     try:
 *         with lock:             # <<<<<<<<<<<<<<
 *             operations.rename(parent, PyBytes_FromString(name),
 *                               newparent, PyBytes_FromString(newname))
 */
            /*except:*/ {
              __Pyx_AddTraceback("llfuse.capi.fuse_rename", __pyx_clineno, __pyx_lineno, __pyx_filename);
              if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_6, &__pyx_t_16) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 265; __pyx_clineno = __LINE__; goto __pyx_L19_except_error;}
              __Pyx_GOTREF(__pyx_t_4);
              __Pyx_GOTREF(__pyx_t_6);
              __Pyx_GOTREF(__pyx_t_16);
              __pyx_t_13 = PyTuple_Pack(3, __pyx_t_4, __pyx_t_6, __pyx_t_16); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 265; __pyx_clineno = __LINE__; goto __pyx_L19_except_error;}
              __Pyx_GOTREF(__pyx_t_13);
              __pyx_t_17 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_13, NULL);
              __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
              __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
              if (unlikely(!__pyx_t_17)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 265; __pyx_clineno = __LINE__; goto __pyx_L19_except_error;}
              __Pyx_GOTREF(__pyx_t_17);
              __pyx_t_18 = __Pyx_PyObject_IsTrue(__pyx_t_17);
              __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
              if (__pyx_t_18 < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 265; __pyx_clineno = __LINE__; goto __pyx_L19_except_error;}
              __pyx_t_19 = ((!(__pyx_t_18 != 0)) != 0);
              if (__pyx_t_19) {
                __Pyx_GIVEREF(__pyx_t_4);
                __Pyx_GIVEREF(__pyx_t_6);
                __Pyx_XGIVEREF(__pyx_t_16);
                __Pyx_ErrRestore(__pyx_t_4, __pyx_t_6, __pyx_t_16);
                __pyx_t_4 = 0; __pyx_t_6 = 0; __pyx_t_16 = 0; 
                {__pyx_filename = __pyx_f[0]; __pyx_lineno = 265; __pyx_clineno = __LINE__; goto __pyx_L19_except_error;}
              }
              __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
              __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
              __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
              goto __pyx_L18_exception_handled;
            }
            __pyx_L19_except_error:;
            __Pyx_XGIVEREF(__pyx_t_9);
            __Pyx_XGIVEREF(__pyx_t_10);
            __Pyx_XGIVEREF(__pyx_t_11);
            __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11);
            goto __pyx_L3_error;
            __pyx_L18_exception_handled:;
            __Pyx_XGIVEREF(__pyx_t_9);
            __Pyx_XGIVEREF(__pyx_t_10);
            __Pyx_XGIVEREF(__pyx_t_11);
            __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11);
            __pyx_L24_try_end:;
          }
        }
        /*finally:*/ {
          /*normal exit:*/{
            if (__pyx_t_5) {
              __pyx_t_11 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_tuple__13, NULL);
              __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
              if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 265; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
              __Pyx_GOTREF(__pyx_t_11);
              __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
            }
            goto __pyx_L16;
          }
          __pyx_L16:;
        }
        goto __pyx_L28;
        __pyx_L11_error:;
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        goto __pyx_L3_error;
        __pyx_L28:;
      }

      /* "src/llfuse/handlers.pxi":268
 *             operations.rename(parent, PyBytes_FromString(name),
 *                               newparent, PyBytes_FromString(newname))
 *         ret = fuse_reply_err(req, 0)             # <<<<<<<<<<<<<<
 *     except FUSEError as e:
 *         ret = fuse_reply_err(req, e.errno)
 */
      __pyx_v_ret = fuse_reply_err(__pyx_v_req, 0);
    }
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    goto __pyx_L10_try_end;
    __pyx_L3_error:;
    __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0;

    /* "src/llfuse/handlers.pxi":269
 *                               newparent, PyBytes_FromString(newname))
 *         ret = fuse_reply_err(req, 0)
 *     except FUSEError as e:             # <<<<<<<<<<<<<<
 *         ret = fuse_reply_err(req, e.errno)
 *     except BaseException as e:
 */
    __pyx_t_16 = __Pyx_GetModuleGlobalName(__pyx_n_s_FUSEError); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 269; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
    __Pyx_GOTREF(__pyx_t_16);
    __pyx_t_20 = PyErr_ExceptionMatches(__pyx_t_16);
    __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
    if (__pyx_t_20) {
      __Pyx_AddTraceback("llfuse.capi.fuse_rename", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_16, &__pyx_t_6, &__pyx_t_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 269; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
      __Pyx_GOTREF(__pyx_t_16);
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_6);
      __pyx_v_e = __pyx_t_6;
      /*try:*/ {

        /* "src/llfuse/handlers.pxi":270
 *         ret = fuse_reply_err(req, 0)
 *     except FUSEError as e:
 *         ret = fuse_reply_err(req, e.errno)             # <<<<<<<<<<<<<<
 *     except BaseException as e:
 *         ret = handle_exc('rename', e, req)
 */
        __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_v_e, __pyx_n_s_errno); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 270; __pyx_clineno = __LINE__; goto __pyx_L34_error;}
        __Pyx_GOTREF(__pyx_t_13);
        __pyx_t_20 = __Pyx_PyInt_As_int(__pyx_t_13); if (unlikely((__pyx_t_20 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 270; __pyx_clineno = __LINE__; goto __pyx_L34_error;}
        __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
        __pyx_v_ret = fuse_reply_err(__pyx_v_req, __pyx_t_20);
      }

      /* "src/llfuse/handlers.pxi":269
 *                               newparent, PyBytes_FromString(newname))
 *         ret = fuse_reply_err(req, 0)
 *     except FUSEError as e:             # <<<<<<<<<<<<<<
 *         ret = fuse_reply_err(req, e.errno)
 *     except BaseException as e:
 */
      /*finally:*/ {
        /*normal exit:*/{
          __Pyx_DECREF(__pyx_v_e);
          __pyx_v_e = NULL;
          goto __pyx_L35;
        }
        /*exception exit:*/{
          __pyx_L34_error:;
          __pyx_t_5 = 0; __pyx_t_11 = 0; __pyx_t_10 = 0; __pyx_t_9 = 0; __pyx_t_17 = 0; __pyx_t_23 = 0;
          __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
          __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
          __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
          if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_9, &__pyx_t_17, &__pyx_t_23);
          if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_5, &__pyx_t_11, &__pyx_t_10) < 0)) __Pyx_ErrFetch(&__pyx_t_5, &__pyx_t_11, &__pyx_t_10);
          __Pyx_XGOTREF(__pyx_t_5);
          __Pyx_XGOTREF(__pyx_t_11);
          __Pyx_XGOTREF(__pyx_t_10);
          __Pyx_XGOTREF(__pyx_t_9);
          __Pyx_XGOTREF(__pyx_t_17);
          __Pyx_XGOTREF(__pyx_t_23);
          __pyx_t_20 = __pyx_lineno; __pyx_t_21 = __pyx_clineno; __pyx_t_22 = __pyx_filename;
          {
            __Pyx_DECREF(__pyx_v_e);
            __pyx_v_e = NULL;
          }
          if (PY_MAJOR_VERSION >= 3) {
            __Pyx_XGIVEREF(__pyx_t_9);
            __Pyx_XGIVEREF(__pyx_t_17);
            __Pyx_XGIVEREF(__pyx_t_23);
            __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_17, __pyx_t_23);
          }
          __Pyx_XGIVEREF(__pyx_t_5);
          __Pyx_XGIVEREF(__pyx_t_11);
          __Pyx_XGIVEREF(__pyx_t_10);
          __Pyx_ErrRestore(__pyx_t_5, __pyx_t_11, __pyx_t_10);
          __pyx_t_5 = 0; __pyx_t_11 = 0; __pyx_t_10 = 0; __pyx_t_9 = 0; __pyx_t_17 = 0; __pyx_t_23 = 0;
          __pyx_lineno = __pyx_t_20; __pyx_clineno = __pyx_t_21; __pyx_filename = __pyx_t_22;
          goto __pyx_L5_except_error;
        }
        __pyx_L35:;
      }
      __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      goto __pyx_L4_exception_handled;
    }

    /* "src/llfuse/handlers.pxi":271
 *     except FUSEError as e:
 *         ret = fuse_reply_err(req, e.errno)
 *     except BaseException as e:             # <<<<<<<<<<<<<<
 *         ret = handle_exc('rename', e, req)
 * 
 */
    __pyx_t_21 = PyErr_ExceptionMatches(__pyx_builtin_BaseException);
    if (__pyx_t_21) {
      __Pyx_AddTraceback("llfuse.capi.fuse_rename", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_6, &__pyx_t_16) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 271; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_GOTREF(__pyx_t_16);
      __Pyx_INCREF(__pyx_t_6);
      __pyx_v_e = __pyx_t_6;
      /*try:*/ {

        /* "src/llfuse/handlers.pxi":272
 *         ret = fuse_reply_err(req, e.errno)
 *     except BaseException as e:
 *         ret = handle_exc('rename', e, req)             # <<<<<<<<<<<<<<
 * 
 *     if ret != 0:
 */
        __pyx_v_ret = __pyx_f_6llfuse_4capi_handle_exc(__pyx_k_rename, __pyx_v_e, __pyx_v_req);
      }

      /* "src/llfuse/handlers.pxi":271
 *     except FUSEError as e:
 *         ret = fuse_reply_err(req, e.errno)
 *     except BaseException as e:             # <<<<<<<<<<<<<<
 *         ret = handle_exc('rename', e, req)
 * 
 */
      /*finally:*/ {
        /*normal exit:*/{
          __Pyx_DECREF(__pyx_v_e);
          __pyx_v_e = NULL;
          goto __pyx_L46;
        }
        __pyx_L46:;
      }
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
      goto __pyx_L4_exception_handled;
    }
    goto __pyx_L5_except_error;
    __pyx_L5_except_error:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L1_error;
    __pyx_L4_exception_handled:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    __pyx_L10_try_end:;
  }

  /* "src/llfuse/handlers.pxi":274
 *         ret = handle_exc('rename', e, req)
 * 
 *     if ret != 0:             # <<<<<<<<<<<<<<
 *         log.error('fuse_rename(): fuse_reply_* failed with %s', strerror(-ret))
 * 
 */
  __pyx_t_19 = ((__pyx_v_ret != 0) != 0);
  if (__pyx_t_19) {

    /* "src/llfuse/handlers.pxi":275
 * 
 *     if ret != 0:
 *         log.error('fuse_rename(): fuse_reply_* failed with %s', strerror(-ret))             # <<<<<<<<<<<<<<
 * 
 * cdef void fuse_link (fuse_req_t req, fuse_ino_t ino, fuse_ino_t newparent,
 */
    __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s_log); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 275; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_error); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 275; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_13 = __Pyx_GetModuleGlobalName(__pyx_n_s_strerror); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 275; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_13);
    __pyx_t_12 = __Pyx_PyInt_From_int((-__pyx_v_ret)); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 275; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_12);
    __pyx_t_8 = NULL;
    if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_13))) {
      __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_13);
      if (likely(__pyx_t_8)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13);
        __Pyx_INCREF(__pyx_t_8);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_13, function);
      }
    }
    if (!__pyx_t_8) {
      __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_t_13, __pyx_t_12); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 275; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
      __Pyx_GOTREF(__pyx_t_6);
    } else {
      __pyx_t_7 = PyTuple_New(1+1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 275; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_7);
      PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_8); __Pyx_GIVEREF(__pyx_t_8); __pyx_t_8 = NULL;
      PyTuple_SET_ITEM(__pyx_t_7, 0+1, __pyx_t_12);
      __Pyx_GIVEREF(__pyx_t_12);
      __pyx_t_12 = 0;
      __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_13, __pyx_t_7, NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 275; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    }
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    __pyx_t_13 = NULL;
    __pyx_t_15 = 0;
    if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_13 = PyMethod_GET_SELF(__pyx_t_4);
      if (likely(__pyx_t_13)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
        __Pyx_INCREF(__pyx_t_13);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_4, function);
        __pyx_t_15 = 1;
      }
    }
    __pyx_t_7 = PyTuple_New(2+__pyx_t_15); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 275; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    if (__pyx_t_13) {
      PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_13); __Pyx_GIVEREF(__pyx_t_13); __pyx_t_13 = NULL;
    }
    __Pyx_INCREF(__pyx_kp_u_fuse_rename_fuse_reply__failed_w);
    PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_15, __pyx_kp_u_fuse_rename_fuse_reply__failed_w);
    __Pyx_GIVEREF(__pyx_kp_u_fuse_rename_fuse_reply__failed_w);
    PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_15, __pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_6);
    __pyx_t_6 = 0;
    __pyx_t_16 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_7, NULL); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 275; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_16);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
    goto __pyx_L47;
  }
  __pyx_L47:;

  /* "src/llfuse/handlers.pxi":260
 *         log.error('fuse_symlink(): fuse_reply_* failed with %s', strerror(-ret))
 * 
 * cdef void fuse_rename (fuse_req_t req, fuse_ino_t parent, const_char *name,             # <<<<<<<<<<<<<<
 *                        fuse_ino_t newparent, const_char *newname) with gil:
 *     cdef int ret
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_XDECREF(__pyx_t_14);
  __Pyx_XDECREF(__pyx_t_16);
  __Pyx_WriteUnraisable("llfuse.capi.fuse_rename", __pyx_clineno, __pyx_lineno, __pyx_filename, 0);
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_e);
  __Pyx_RefNannyFinishContext();
  #ifdef WITH_THREAD
  PyGILState_Release(__pyx_gilstate_save);
  #endif
}

/* "src/llfuse/handlers.pxi":277
 *         log.error('fuse_rename(): fuse_reply_* failed with %s', strerror(-ret))
 * 
 * cdef void fuse_link (fuse_req_t req, fuse_ino_t ino, fuse_ino_t newparent,             # <<<<<<<<<<<<<<
 *                      const_char *newname) with gil:
 *     cdef int ret
 */

static void __pyx_f_6llfuse_4capi_fuse_link(fuse_req_t __pyx_v_req, fuse_ino_t __pyx_v_ino, fuse_ino_t __pyx_v_newparent, const char *__pyx_v_newname) {
  int __pyx_v_ret;
  struct fuse_entry_param __pyx_v_entry;
  PyObject *__pyx_v_attr = NULL;
  PyObject *__pyx_v_e = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  PyObject *__pyx_t_13 = NULL;
  Py_ssize_t __pyx_t_14;
  PyObject *__pyx_t_15 = NULL;
  PyObject *__pyx_t_16 = NULL;
  int __pyx_t_17;
  int __pyx_t_18;
  int __pyx_t_19;
  int __pyx_t_20;
  char const *__pyx_t_21;
  PyObject *__pyx_t_22 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  #ifdef WITH_THREAD
  PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure();
  #endif
  __Pyx_RefNannySetupContext("fuse_link", 0);

  /* "src/llfuse/handlers.pxi":282
 *     cdef fuse_entry_param entry
 * 
 *     try:             # <<<<<<<<<<<<<<
 *         with lock:
 *             attr = operations.link(ino, newparent, PyBytes_FromString(newname))
 */
  {
    __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);
    __Pyx_XGOTREF(__pyx_t_1);
    __Pyx_XGOTREF(__pyx_t_2);
    __Pyx_XGOTREF(__pyx_t_3);
    /*try:*/ {

      /* "src/llfuse/handlers.pxi":283
 * 
 *     try:
 *         with lock:             # <<<<<<<<<<<<<<
 *             attr = operations.link(ino, newparent, PyBytes_FromString(newname))
 *         fill_entry_param(attr, &entry)
 */
      /*with:*/ {
        __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_lock); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 283; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_5 = __Pyx_PyObject_LookupSpecial(__pyx_t_4, __pyx_n_s_exit); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 283; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_7 = __Pyx_PyObject_LookupSpecial(__pyx_t_4, __pyx_n_s_enter); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 283; __pyx_clineno = __LINE__; goto __pyx_L11_error;}
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_8 = NULL;
        if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_7))) {
          __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7);
          if (likely(__pyx_t_8)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
            __Pyx_INCREF(__pyx_t_8);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_7, function);
          }
        }
        if (__pyx_t_8) {
          __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_8); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 283; __pyx_clineno = __LINE__; goto __pyx_L11_error;}
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        } else {
          __pyx_t_6 = __Pyx_PyObject_CallNoArg(__pyx_t_7); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 283; __pyx_clineno = __LINE__; goto __pyx_L11_error;}
        }
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        /*try:*/ {
          {
            __Pyx_ExceptionSave(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
            __Pyx_XGOTREF(__pyx_t_9);
            __Pyx_XGOTREF(__pyx_t_10);
            __Pyx_XGOTREF(__pyx_t_11);
            /*try:*/ {

              /* "src/llfuse/handlers.pxi":284
 *     try:
 *         with lock:
 *             attr = operations.link(ino, newparent, PyBytes_FromString(newname))             # <<<<<<<<<<<<<<
 *         fill_entry_param(attr, &entry)
 *         ret = fuse_reply_entry(req, &entry)
 */
              __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_6llfuse_4capi_operations, __pyx_n_s_link); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 284; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
              __Pyx_GOTREF(__pyx_t_6);
              __pyx_t_7 = __Pyx_PyInt_From_fuse_ino_t(__pyx_v_ino); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 284; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
              __Pyx_GOTREF(__pyx_t_7);
              __pyx_t_8 = __Pyx_PyInt_From_fuse_ino_t(__pyx_v_newparent); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 284; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
              __Pyx_GOTREF(__pyx_t_8);
              __pyx_t_12 = PyBytes_FromString(__pyx_v_newname); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 284; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
              __Pyx_GOTREF(__pyx_t_12);
              __pyx_t_13 = NULL;
              __pyx_t_14 = 0;
              if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_6))) {
                __pyx_t_13 = PyMethod_GET_SELF(__pyx_t_6);
                if (likely(__pyx_t_13)) {
                  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
                  __Pyx_INCREF(__pyx_t_13);
                  __Pyx_INCREF(function);
                  __Pyx_DECREF_SET(__pyx_t_6, function);
                  __pyx_t_14 = 1;
                }
              }
              __pyx_t_15 = PyTuple_New(3+__pyx_t_14); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 284; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
              __Pyx_GOTREF(__pyx_t_15);
              if (__pyx_t_13) {
                PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_13); __Pyx_GIVEREF(__pyx_t_13); __pyx_t_13 = NULL;
              }
              PyTuple_SET_ITEM(__pyx_t_15, 0+__pyx_t_14, __pyx_t_7);
              __Pyx_GIVEREF(__pyx_t_7);
              PyTuple_SET_ITEM(__pyx_t_15, 1+__pyx_t_14, __pyx_t_8);
              __Pyx_GIVEREF(__pyx_t_8);
              PyTuple_SET_ITEM(__pyx_t_15, 2+__pyx_t_14, __pyx_t_12);
              __Pyx_GIVEREF(__pyx_t_12);
              __pyx_t_7 = 0;
              __pyx_t_8 = 0;
              __pyx_t_12 = 0;
              __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_15, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 284; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
              __Pyx_GOTREF(__pyx_t_4);
              __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
              __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
              __pyx_v_attr = __pyx_t_4;
              __pyx_t_4 = 0;
            }
            __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
            __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
            __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
            goto __pyx_L24_try_end;
            __pyx_L17_error:;
            __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
            __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
            __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
            __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
            __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0;
            __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
            __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;

            /* "src/llfuse/handlers.pxi":283
 * 
 *     try:
 *         with lock:             # <<<<<<<<<<<<<<
 *             attr = operations.link(ino, newparent, PyBytes_FromString(newname))
 *         fill_entry_param(attr, &entry)
 */
            /*except:*/ {
              __Pyx_AddTraceback("llfuse.capi.fuse_link", __pyx_clineno, __pyx_lineno, __pyx_filename);
              if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_6, &__pyx_t_15) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 283; __pyx_clineno = __LINE__; goto __pyx_L19_except_error;}
              __Pyx_GOTREF(__pyx_t_4);
              __Pyx_GOTREF(__pyx_t_6);
              __Pyx_GOTREF(__pyx_t_15);
              __pyx_t_12 = PyTuple_Pack(3, __pyx_t_4, __pyx_t_6, __pyx_t_15); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 283; __pyx_clineno = __LINE__; goto __pyx_L19_except_error;}
              __Pyx_GOTREF(__pyx_t_12);
              __pyx_t_16 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_12, NULL);
              __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
              __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
              if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 283; __pyx_clineno = __LINE__; goto __pyx_L19_except_error;}
              __Pyx_GOTREF(__pyx_t_16);
              __pyx_t_17 = __Pyx_PyObject_IsTrue(__pyx_t_16);
              __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
              if (__pyx_t_17 < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 283; __pyx_clineno = __LINE__; goto __pyx_L19_except_error;}
              __pyx_t_18 = ((!(__pyx_t_17 != 0)) != 0);
              if (__pyx_t_18) {
                __Pyx_GIVEREF(__pyx_t_4);
                __Pyx_GIVEREF(__pyx_t_6);
                __Pyx_XGIVEREF(__pyx_t_15);
                __Pyx_ErrRestore(__pyx_t_4, __pyx_t_6, __pyx_t_15);
                __pyx_t_4 = 0; __pyx_t_6 = 0; __pyx_t_15 = 0; 
                {__pyx_filename = __pyx_f[0]; __pyx_lineno = 283; __pyx_clineno = __LINE__; goto __pyx_L19_except_error;}
              }
              __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
              __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
              __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
              goto __pyx_L18_exception_handled;
            }
            __pyx_L19_except_error:;
            __Pyx_XGIVEREF(__pyx_t_9);
            __Pyx_XGIVEREF(__pyx_t_10);
            __Pyx_XGIVEREF(__pyx_t_11);
            __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11);
            goto __pyx_L3_error;
            __pyx_L18_exception_handled:;
            __Pyx_XGIVEREF(__pyx_t_9);
            __Pyx_XGIVEREF(__pyx_t_10);
            __Pyx_XGIVEREF(__pyx_t_11);
            __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11);
            __pyx_L24_try_end:;
          }
        }
        /*finally:*/ {
          /*normal exit:*/{
            if (__pyx_t_5) {
              __pyx_t_11 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_tuple__14, NULL);
              __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
              if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 283; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
              __Pyx_GOTREF(__pyx_t_11);
              __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
            }
            goto __pyx_L16;
          }
          __pyx_L16:;
        }
        goto __pyx_L28;
        __pyx_L11_error:;
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        goto __pyx_L3_error;
        __pyx_L28:;
      }

      /* "src/llfuse/handlers.pxi":285
 *         with lock:
 *             attr = operations.link(ino, newparent, PyBytes_FromString(newname))
 *         fill_entry_param(attr, &entry)             # <<<<<<<<<<<<<<
 *         ret = fuse_reply_entry(req, &entry)
 *     except FUSEError as e:
 */
      if (unlikely(!__pyx_v_attr)) { __Pyx_RaiseUnboundLocalError("attr"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 285; __pyx_clineno = __LINE__; goto __pyx_L3_error;} }
      __pyx_t_15 = __pyx_f_6llfuse_4capi_fill_entry_param(__pyx_v_attr, (&__pyx_v_entry)); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 285; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      __Pyx_GOTREF(__pyx_t_15);
      __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;

      /* "src/llfuse/handlers.pxi":286
 *             attr = operations.link(ino, newparent, PyBytes_FromString(newname))
 *         fill_entry_param(attr, &entry)
 *         ret = fuse_reply_entry(req, &entry)             # <<<<<<<<<<<<<<
 *     except FUSEError as e:
 *         ret = fuse_reply_err(req, e.errno)
 */
      __pyx_v_ret = fuse_reply_entry(__pyx_v_req, (&__pyx_v_entry));
    }
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    goto __pyx_L10_try_end;
    __pyx_L3_error:;
    __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0;

    /* "src/llfuse/handlers.pxi":287
 *         fill_entry_param(attr, &entry)
 *         ret = fuse_reply_entry(req, &entry)
 *     except FUSEError as e:             # <<<<<<<<<<<<<<
 *         ret = fuse_reply_err(req, e.errno)
 *     except BaseException as e:
 */
    __pyx_t_15 = __Pyx_GetModuleGlobalName(__pyx_n_s_FUSEError); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 287; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
    __Pyx_GOTREF(__pyx_t_15);
    __pyx_t_19 = PyErr_ExceptionMatches(__pyx_t_15);
    __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
    if (__pyx_t_19) {
      __Pyx_AddTraceback("llfuse.capi.fuse_link", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_15, &__pyx_t_6, &__pyx_t_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 287; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
      __Pyx_GOTREF(__pyx_t_15);
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_6);
      __pyx_v_e = __pyx_t_6;
      /*try:*/ {

        /* "src/llfuse/handlers.pxi":288
 *         ret = fuse_reply_entry(req, &entry)
 *     except FUSEError as e:
 *         ret = fuse_reply_err(req, e.errno)             # <<<<<<<<<<<<<<
 *     except BaseException as e:
 *         ret = handle_exc('link', e, req)
 */
        __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_v_e, __pyx_n_s_errno); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 288; __pyx_clineno = __LINE__; goto __pyx_L34_error;}
        __Pyx_GOTREF(__pyx_t_12);
        __pyx_t_19 = __Pyx_PyInt_As_int(__pyx_t_12); if (unlikely((__pyx_t_19 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 288; __pyx_clineno = __LINE__; goto __pyx_L34_error;}
        __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
        __pyx_v_ret = fuse_reply_err(__pyx_v_req, __pyx_t_19);
      }

      /* "src/llfuse/handlers.pxi":287
 *         fill_entry_param(attr, &entry)
 *         ret = fuse_reply_entry(req, &entry)
 *     except FUSEError as e:             # <<<<<<<<<<<<<<
 *         ret = fuse_reply_err(req, e.errno)
 *     except BaseException as e:
 */
      /*finally:*/ {
        /*normal exit:*/{
          __Pyx_DECREF(__pyx_v_e);
          __pyx_v_e = NULL;
          goto __pyx_L35;
        }
        /*exception exit:*/{
          __pyx_L34_error:;
          __pyx_t_5 = 0; __pyx_t_11 = 0; __pyx_t_10 = 0; __pyx_t_9 = 0; __pyx_t_16 = 0; __pyx_t_22 = 0;
          __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
          __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
          if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_9, &__pyx_t_16, &__pyx_t_22);
          if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_5, &__pyx_t_11, &__pyx_t_10) < 0)) __Pyx_ErrFetch(&__pyx_t_5, &__pyx_t_11, &__pyx_t_10);
          __Pyx_XGOTREF(__pyx_t_5);
          __Pyx_XGOTREF(__pyx_t_11);
          __Pyx_XGOTREF(__pyx_t_10);
          __Pyx_XGOTREF(__pyx_t_9);
          __Pyx_XGOTREF(__pyx_t_16);
          __Pyx_XGOTREF(__pyx_t_22);
          __pyx_t_19 = __pyx_lineno; __pyx_t_20 = __pyx_clineno; __pyx_t_21 = __pyx_filename;
          {
            __Pyx_DECREF(__pyx_v_e);
            __pyx_v_e = NULL;
          }
          if (PY_MAJOR_VERSION >= 3) {
            __Pyx_XGIVEREF(__pyx_t_9);
            __Pyx_XGIVEREF(__pyx_t_16);
            __Pyx_XGIVEREF(__pyx_t_22);
            __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_16, __pyx_t_22);
          }
          __Pyx_XGIVEREF(__pyx_t_5);
          __Pyx_XGIVEREF(__pyx_t_11);
          __Pyx_XGIVEREF(__pyx_t_10);
          __Pyx_ErrRestore(__pyx_t_5, __pyx_t_11, __pyx_t_10);
          __pyx_t_5 = 0; __pyx_t_11 = 0; __pyx_t_10 = 0; __pyx_t_9 = 0; __pyx_t_16 = 0; __pyx_t_22 = 0;
          __pyx_lineno = __pyx_t_19; __pyx_clineno = __pyx_t_20; __pyx_filename = __pyx_t_21;
          goto __pyx_L5_except_error;
        }
        __pyx_L35:;
      }
      __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      goto __pyx_L4_exception_handled;
    }

    /* "src/llfuse/handlers.pxi":289
 *     except FUSEError as e:
 *         ret = fuse_reply_err(req, e.errno)
 *     except BaseException as e:             # <<<<<<<<<<<<<<
 *         ret = handle_exc('link', e, req)
 * 
 */
    __pyx_t_20 = PyErr_ExceptionMatches(__pyx_builtin_BaseException);
    if (__pyx_t_20) {
      __Pyx_AddTraceback("llfuse.capi.fuse_link", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_6, &__pyx_t_15) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 289; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_GOTREF(__pyx_t_15);
      __Pyx_INCREF(__pyx_t_6);
      __pyx_v_e = __pyx_t_6;
      /*try:*/ {

        /* "src/llfuse/handlers.pxi":290
 *         ret = fuse_reply_err(req, e.errno)
 *     except BaseException as e:
 *         ret = handle_exc('link', e, req)             # <<<<<<<<<<<<<<
 * 
 *     if ret != 0:
 */
        __pyx_v_ret = __pyx_f_6llfuse_4capi_handle_exc(__pyx_k_link, __pyx_v_e, __pyx_v_req);
      }

      /* "src/llfuse/handlers.pxi":289
 *     except FUSEError as e:
 *         ret = fuse_reply_err(req, e.errno)
 *     except BaseException as e:             # <<<<<<<<<<<<<<
 *         ret = handle_exc('link', e, req)
 * 
 */
      /*finally:*/ {
        /*normal exit:*/{
          __Pyx_DECREF(__pyx_v_e);
          __pyx_v_e = NULL;
          goto __pyx_L46;
        }
        __pyx_L46:;
      }
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
      goto __pyx_L4_exception_handled;
    }
    goto __pyx_L5_except_error;
    __pyx_L5_except_error:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L1_error;
    __pyx_L4_exception_handled:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    __pyx_L10_try_end:;
  }

  /* "src/llfuse/handlers.pxi":292
 *         ret = handle_exc('link', e, req)
 * 
 *     if ret != 0:             # <<<<<<<<<<<<<<
 *         log.error('fuse_link(): fuse_reply_* failed with %s', strerror(-ret))
 * 
 */
  __pyx_t_18 = ((__pyx_v_ret != 0) != 0);
  if (__pyx_t_18) {

    /* "src/llfuse/handlers.pxi":293
 * 
 *     if ret != 0:
 *         log.error('fuse_link(): fuse_reply_* failed with %s', strerror(-ret))             # <<<<<<<<<<<<<<
 * 
 * 
 */
    __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s_log); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 293; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_error); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 293; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_12 = __Pyx_GetModuleGlobalName(__pyx_n_s_strerror); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 293; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_12);
    __pyx_t_8 = __Pyx_PyInt_From_int((-__pyx_v_ret)); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 293; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_7 = NULL;
    if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_12))) {
      __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_12);
      if (likely(__pyx_t_7)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_12);
        __Pyx_INCREF(__pyx_t_7);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_12, function);
      }
    }
    if (!__pyx_t_7) {
      __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_t_12, __pyx_t_8); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 293; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_GOTREF(__pyx_t_6);
    } else {
      __pyx_t_13 = PyTuple_New(1+1); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 293; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_13);
      PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_t_7); __Pyx_GIVEREF(__pyx_t_7); __pyx_t_7 = NULL;
      PyTuple_SET_ITEM(__pyx_t_13, 0+1, __pyx_t_8);
      __Pyx_GIVEREF(__pyx_t_8);
      __pyx_t_8 = 0;
      __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_12, __pyx_t_13, NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 293; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    }
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __pyx_t_12 = NULL;
    __pyx_t_14 = 0;
    if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_4);
      if (likely(__pyx_t_12)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
        __Pyx_INCREF(__pyx_t_12);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_4, function);
        __pyx_t_14 = 1;
      }
    }
    __pyx_t_13 = PyTuple_New(2+__pyx_t_14); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 293; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_13);
    if (__pyx_t_12) {
      PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_t_12); __Pyx_GIVEREF(__pyx_t_12); __pyx_t_12 = NULL;
    }
    __Pyx_INCREF(__pyx_kp_u_fuse_link_fuse_reply__failed_wit);
    PyTuple_SET_ITEM(__pyx_t_13, 0+__pyx_t_14, __pyx_kp_u_fuse_link_fuse_reply__failed_wit);
    __Pyx_GIVEREF(__pyx_kp_u_fuse_link_fuse_reply__failed_wit);
    PyTuple_SET_ITEM(__pyx_t_13, 1+__pyx_t_14, __pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_6);
    __pyx_t_6 = 0;
    __pyx_t_15 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_13, NULL); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 293; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_15);
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
    goto __pyx_L47;
  }
  __pyx_L47:;

  /* "src/llfuse/handlers.pxi":277
 *         log.error('fuse_rename(): fuse_reply_* failed with %s', strerror(-ret))
 * 
 * cdef void fuse_link (fuse_req_t req, fuse_ino_t ino, fuse_ino_t newparent,             # <<<<<<<<<<<<<<
 *                      const_char *newname) with gil:
 *     cdef int ret
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_XDECREF(__pyx_t_15);
  __Pyx_WriteUnraisable("llfuse.capi.fuse_link", __pyx_clineno, __pyx_lineno, __pyx_filename, 0);
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_attr);
  __Pyx_XDECREF(__pyx_v_e);
  __Pyx_RefNannyFinishContext();
  #ifdef WITH_THREAD
  PyGILState_Release(__pyx_gilstate_save);
  #endif
}

/* "src/llfuse/handlers.pxi":296
 * 
 * 
 * cdef void fuse_open (fuse_req_t req, fuse_ino_t ino, fuse_file_info *fi) with gil:             # <<<<<<<<<<<<<<
 *     cdef int ret
 * 
 */

static void __pyx_f_6llfuse_4capi_fuse_open(fuse_req_t __pyx_v_req, fuse_ino_t __pyx_v_ino, struct fuse_file_info *__pyx_v_fi) {
  int __pyx_v_ret;
  PyObject *__pyx_v_e = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  Py_ssize_t __pyx_t_13;
  PyObject *__pyx_t_14 = NULL;
  uint64_t __pyx_t_15;
  PyObject *__pyx_t_16 = NULL;
  int __pyx_t_17;
  int __pyx_t_18;
  int __pyx_t_19;
  int __pyx_t_20;
  char const *__pyx_t_21;
  PyObject *__pyx_t_22 = NULL;
  PyObject *__pyx_t_23 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  #ifdef WITH_THREAD
  PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure();
  #endif
  __Pyx_RefNannySetupContext("fuse_open", 0);

  /* "src/llfuse/handlers.pxi":299
 *     cdef int ret
 * 
 *     try:             # <<<<<<<<<<<<<<
 *         with lock:
 *             fi.fh = operations.open(ino, fi.flags)
 */
  {
    __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);
    __Pyx_XGOTREF(__pyx_t_1);
    __Pyx_XGOTREF(__pyx_t_2);
    __Pyx_XGOTREF(__pyx_t_3);
    /*try:*/ {

      /* "src/llfuse/handlers.pxi":300
 * 
 *     try:
 *         with lock:             # <<<<<<<<<<<<<<
 *             fi.fh = operations.open(ino, fi.flags)
 * 
 */
      /*with:*/ {
        __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_lock); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 300; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_5 = __Pyx_PyObject_LookupSpecial(__pyx_t_4, __pyx_n_s_exit); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 300; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_7 = __Pyx_PyObject_LookupSpecial(__pyx_t_4, __pyx_n_s_enter); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 300; __pyx_clineno = __LINE__; goto __pyx_L11_error;}
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_8 = NULL;
        if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_7))) {
          __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7);
          if (likely(__pyx_t_8)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
            __Pyx_INCREF(__pyx_t_8);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_7, function);
          }
        }
        if (__pyx_t_8) {
          __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_8); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 300; __pyx_clineno = __LINE__; goto __pyx_L11_error;}
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        } else {
          __pyx_t_6 = __Pyx_PyObject_CallNoArg(__pyx_t_7); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 300; __pyx_clineno = __LINE__; goto __pyx_L11_error;}
        }
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        /*try:*/ {
          {
            __Pyx_ExceptionSave(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
            __Pyx_XGOTREF(__pyx_t_9);
            __Pyx_XGOTREF(__pyx_t_10);
            __Pyx_XGOTREF(__pyx_t_11);
            /*try:*/ {

              /* "src/llfuse/handlers.pxi":301
 *     try:
 *         with lock:
 *             fi.fh = operations.open(ino, fi.flags)             # <<<<<<<<<<<<<<
 * 
 *         # Cached file data does not need to be invalidated.
 */
              __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_6llfuse_4capi_operations, __pyx_n_s_open); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 301; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
              __Pyx_GOTREF(__pyx_t_6);
              __pyx_t_7 = __Pyx_PyInt_From_fuse_ino_t(__pyx_v_ino); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 301; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
              __Pyx_GOTREF(__pyx_t_7);
              __pyx_t_8 = __Pyx_PyInt_From_int(__pyx_v_fi->flags); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 301; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
              __Pyx_GOTREF(__pyx_t_8);
              __pyx_t_12 = NULL;
              __pyx_t_13 = 0;
              if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_6))) {
                __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_6);
                if (likely(__pyx_t_12)) {
                  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
                  __Pyx_INCREF(__pyx_t_12);
                  __Pyx_INCREF(function);
                  __Pyx_DECREF_SET(__pyx_t_6, function);
                  __pyx_t_13 = 1;
                }
              }
              __pyx_t_14 = PyTuple_New(2+__pyx_t_13); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 301; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
              __Pyx_GOTREF(__pyx_t_14);
              if (__pyx_t_12) {
                PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_12); __Pyx_GIVEREF(__pyx_t_12); __pyx_t_12 = NULL;
              }
              PyTuple_SET_ITEM(__pyx_t_14, 0+__pyx_t_13, __pyx_t_7);
              __Pyx_GIVEREF(__pyx_t_7);
              PyTuple_SET_ITEM(__pyx_t_14, 1+__pyx_t_13, __pyx_t_8);
              __Pyx_GIVEREF(__pyx_t_8);
              __pyx_t_7 = 0;
              __pyx_t_8 = 0;
              __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_14, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 301; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
              __Pyx_GOTREF(__pyx_t_4);
              __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
              __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
              __pyx_t_15 = __Pyx_PyInt_As_uint64_t(__pyx_t_4); if (unlikely((__pyx_t_15 == (uint64_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 301; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
              __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
              __pyx_v_fi->fh = __pyx_t_15;
            }
            __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
            __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
            __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
            goto __pyx_L24_try_end;
            __pyx_L17_error:;
            __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
            __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
            __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
            __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
            __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
            __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;

            /* "src/llfuse/handlers.pxi":300
 * 
 *     try:
 *         with lock:             # <<<<<<<<<<<<<<
 *             fi.fh = operations.open(ino, fi.flags)
 * 
 */
            /*except:*/ {
              __Pyx_AddTraceback("llfuse.capi.fuse_open", __pyx_clineno, __pyx_lineno, __pyx_filename);
              if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_6, &__pyx_t_14) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 300; __pyx_clineno = __LINE__; goto __pyx_L19_except_error;}
              __Pyx_GOTREF(__pyx_t_4);
              __Pyx_GOTREF(__pyx_t_6);
              __Pyx_GOTREF(__pyx_t_14);
              __pyx_t_8 = PyTuple_Pack(3, __pyx_t_4, __pyx_t_6, __pyx_t_14); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 300; __pyx_clineno = __LINE__; goto __pyx_L19_except_error;}
              __Pyx_GOTREF(__pyx_t_8);
              __pyx_t_16 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_8, NULL);
              __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
              __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
              if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 300; __pyx_clineno = __LINE__; goto __pyx_L19_except_error;}
              __Pyx_GOTREF(__pyx_t_16);
              __pyx_t_17 = __Pyx_PyObject_IsTrue(__pyx_t_16);
              __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
              if (__pyx_t_17 < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 300; __pyx_clineno = __LINE__; goto __pyx_L19_except_error;}
              __pyx_t_18 = ((!(__pyx_t_17 != 0)) != 0);
              if (__pyx_t_18) {
                __Pyx_GIVEREF(__pyx_t_4);
                __Pyx_GIVEREF(__pyx_t_6);
                __Pyx_XGIVEREF(__pyx_t_14);
                __Pyx_ErrRestore(__pyx_t_4, __pyx_t_6, __pyx_t_14);
                __pyx_t_4 = 0; __pyx_t_6 = 0; __pyx_t_14 = 0; 
                {__pyx_filename = __pyx_f[0]; __pyx_lineno = 300; __pyx_clineno = __LINE__; goto __pyx_L19_except_error;}
              }
              __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
              __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
              __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
              goto __pyx_L18_exception_handled;
            }
            __pyx_L19_except_error:;
            __Pyx_XGIVEREF(__pyx_t_9);
            __Pyx_XGIVEREF(__pyx_t_10);
            __Pyx_XGIVEREF(__pyx_t_11);
            __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11);
            goto __pyx_L3_error;
            __pyx_L18_exception_handled:;
            __Pyx_XGIVEREF(__pyx_t_9);
            __Pyx_XGIVEREF(__pyx_t_10);
            __Pyx_XGIVEREF(__pyx_t_11);
            __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11);
            __pyx_L24_try_end:;
          }
        }
        /*finally:*/ {
          /*normal exit:*/{
            if (__pyx_t_5) {
              __pyx_t_11 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_tuple__15, NULL);
              __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
              if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 300; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
              __Pyx_GOTREF(__pyx_t_11);
              __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
            }
            goto __pyx_L16;
          }
          __pyx_L16:;
        }
        goto __pyx_L28;
        __pyx_L11_error:;
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        goto __pyx_L3_error;
        __pyx_L28:;
      }

      /* "src/llfuse/handlers.pxi":305
 *         # Cached file data does not need to be invalidated.
 *         # http://article.gmane.org/gmane.comp.file-systems.fuse.devel/5325/
 *         fi.keep_cache = 1             # <<<<<<<<<<<<<<
 * 
 *         ret = fuse_reply_open(req, fi)
 */
      __pyx_v_fi->keep_cache = 1;

      /* "src/llfuse/handlers.pxi":307
 *         fi.keep_cache = 1
 * 
 *         ret = fuse_reply_open(req, fi)             # <<<<<<<<<<<<<<
 *     except FUSEError as e:
 *         ret = fuse_reply_err(req, e.errno)
 */
      __pyx_v_ret = fuse_reply_open(__pyx_v_req, __pyx_v_fi);
    }
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    goto __pyx_L10_try_end;
    __pyx_L3_error:;
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;

    /* "src/llfuse/handlers.pxi":308
 * 
 *         ret = fuse_reply_open(req, fi)
 *     except FUSEError as e:             # <<<<<<<<<<<<<<
 *         ret = fuse_reply_err(req, e.errno)
 *     except BaseException as e:
 */
    __pyx_t_14 = __Pyx_GetModuleGlobalName(__pyx_n_s_FUSEError); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 308; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
    __Pyx_GOTREF(__pyx_t_14);
    __pyx_t_19 = PyErr_ExceptionMatches(__pyx_t_14);
    __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
    if (__pyx_t_19) {
      __Pyx_AddTraceback("llfuse.capi.fuse_open", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_14, &__pyx_t_6, &__pyx_t_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 308; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
      __Pyx_GOTREF(__pyx_t_14);
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_6);
      __pyx_v_e = __pyx_t_6;
      /*try:*/ {

        /* "src/llfuse/handlers.pxi":309
 *         ret = fuse_reply_open(req, fi)
 *     except FUSEError as e:
 *         ret = fuse_reply_err(req, e.errno)             # <<<<<<<<<<<<<<
 *     except BaseException as e:
 *         ret = handle_exc('open', e, req)
 */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_e, __pyx_n_s_errno); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 309; __pyx_clineno = __LINE__; goto __pyx_L34_error;}
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_19 = __Pyx_PyInt_As_int(__pyx_t_8); if (unlikely((__pyx_t_19 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 309; __pyx_clineno = __LINE__; goto __pyx_L34_error;}
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __pyx_v_ret = fuse_reply_err(__pyx_v_req, __pyx_t_19);
      }

      /* "src/llfuse/handlers.pxi":308
 * 
 *         ret = fuse_reply_open(req, fi)
 *     except FUSEError as e:             # <<<<<<<<<<<<<<
 *         ret = fuse_reply_err(req, e.errno)
 *     except BaseException as e:
 */
      /*finally:*/ {
        /*normal exit:*/{
          __Pyx_DECREF(__pyx_v_e);
          __pyx_v_e = NULL;
          goto __pyx_L35;
        }
        /*exception exit:*/{
          __pyx_L34_error:;
          __pyx_t_5 = 0; __pyx_t_11 = 0; __pyx_t_10 = 0; __pyx_t_9 = 0; __pyx_t_16 = 0; __pyx_t_22 = 0;
          __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
          if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_9, &__pyx_t_16, &__pyx_t_22);
          if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_5, &__pyx_t_11, &__pyx_t_10) < 0)) __Pyx_ErrFetch(&__pyx_t_5, &__pyx_t_11, &__pyx_t_10);
          __Pyx_XGOTREF(__pyx_t_5);
          __Pyx_XGOTREF(__pyx_t_11);
          __Pyx_XGOTREF(__pyx_t_10);
          __Pyx_XGOTREF(__pyx_t_9);
          __Pyx_XGOTREF(__pyx_t_16);
          __Pyx_XGOTREF(__pyx_t_22);
          __pyx_t_19 = __pyx_lineno; __pyx_t_20 = __pyx_clineno; __pyx_t_21 = __pyx_filename;
          {
            __Pyx_DECREF(__pyx_v_e);
            __pyx_v_e = NULL;
          }
          if (PY_MAJOR_VERSION >= 3) {
            __Pyx_XGIVEREF(__pyx_t_9);
            __Pyx_XGIVEREF(__pyx_t_16);
            __Pyx_XGIVEREF(__pyx_t_22);
            __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_16, __pyx_t_22);
          }
          __Pyx_XGIVEREF(__pyx_t_5);
          __Pyx_XGIVEREF(__pyx_t_11);
          __Pyx_XGIVEREF(__pyx_t_10);
          __Pyx_ErrRestore(__pyx_t_5, __pyx_t_11, __pyx_t_10);
          __pyx_t_5 = 0; __pyx_t_11 = 0; __pyx_t_10 = 0; __pyx_t_9 = 0; __pyx_t_16 = 0; __pyx_t_22 = 0;
          __pyx_lineno = __pyx_t_19; __pyx_clineno = __pyx_t_20; __pyx_filename = __pyx_t_21;
          goto __pyx_L5_except_error;
        }
        __pyx_L35:;
      }
      __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      goto __pyx_L4_exception_handled;
    }

    /* "src/llfuse/handlers.pxi":310
 *     except FUSEError as e:
 *         ret = fuse_reply_err(req, e.errno)
 *     except BaseException as e:             # <<<<<<<<<<<<<<
 *         ret = handle_exc('open', e, req)
 * 
 */
    __pyx_t_20 = PyErr_ExceptionMatches(__pyx_builtin_BaseException);
    if (__pyx_t_20) {
      __Pyx_AddTraceback("llfuse.capi.fuse_open", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_6, &__pyx_t_14) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 310; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_GOTREF(__pyx_t_14);
      __Pyx_INCREF(__pyx_t_6);
      __pyx_v_e = __pyx_t_6;
      /*try:*/ {

        /* "src/llfuse/handlers.pxi":311
 *         ret = fuse_reply_err(req, e.errno)
 *     except BaseException as e:
 *         ret = handle_exc('open', e, req)             # <<<<<<<<<<<<<<
 * 
 *     if ret != 0:
 */
        __pyx_v_ret = __pyx_f_6llfuse_4capi_handle_exc(__pyx_k_open, __pyx_v_e, __pyx_v_req);
      }

      /* "src/llfuse/handlers.pxi":310
 *     except FUSEError as e:
 *         ret = fuse_reply_err(req, e.errno)
 *     except BaseException as e:             # <<<<<<<<<<<<<<
 *         ret = handle_exc('open', e, req)
 * 
 */
      /*finally:*/ {
        /*normal exit:*/{
          __Pyx_DECREF(__pyx_v_e);
          __pyx_v_e = NULL;
          goto __pyx_L46;
        }
        __pyx_L46:;
      }
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
      goto __pyx_L4_exception_handled;
    }
    goto __pyx_L5_except_error;
    __pyx_L5_except_error:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L1_error;
    __pyx_L4_exception_handled:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    __pyx_L10_try_end:;
  }

  /* "src/llfuse/handlers.pxi":313
 *         ret = handle_exc('open', e, req)
 * 
 *     if ret != 0:             # <<<<<<<<<<<<<<
 *         log.error('fuse_link(): fuse_reply_* failed with %s', strerror(-ret))
 * 
 */
  __pyx_t_18 = ((__pyx_v_ret != 0) != 0);
  if (__pyx_t_18) {

    /* "src/llfuse/handlers.pxi":314
 * 
 *     if ret != 0:
 *         log.error('fuse_link(): fuse_reply_* failed with %s', strerror(-ret))             # <<<<<<<<<<<<<<
 * 
 * cdef void fuse_read (fuse_req_t req, fuse_ino_t ino, size_t size, off_t off,
 */
    __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s_log); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 314; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_error); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 314; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_8 = __Pyx_GetModuleGlobalName(__pyx_n_s_strerror); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 314; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_7 = __Pyx_PyInt_From_int((-__pyx_v_ret)); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 314; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_12 = NULL;
    if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_8))) {
      __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_8);
      if (likely(__pyx_t_12)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
        __Pyx_INCREF(__pyx_t_12);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_8, function);
      }
    }
    if (!__pyx_t_12) {
      __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_7); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 314; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_GOTREF(__pyx_t_6);
    } else {
      __pyx_t_23 = PyTuple_New(1+1); if (unlikely(!__pyx_t_23)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 314; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_23);
      PyTuple_SET_ITEM(__pyx_t_23, 0, __pyx_t_12); __Pyx_GIVEREF(__pyx_t_12); __pyx_t_12 = NULL;
      PyTuple_SET_ITEM(__pyx_t_23, 0+1, __pyx_t_7);
      __Pyx_GIVEREF(__pyx_t_7);
      __pyx_t_7 = 0;
      __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_23, NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 314; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
    }
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __pyx_t_8 = NULL;
    __pyx_t_13 = 0;
    if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_4);
      if (likely(__pyx_t_8)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
        __Pyx_INCREF(__pyx_t_8);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_4, function);
        __pyx_t_13 = 1;
      }
    }
    __pyx_t_23 = PyTuple_New(2+__pyx_t_13); if (unlikely(!__pyx_t_23)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 314; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_23);
    if (__pyx_t_8) {
      PyTuple_SET_ITEM(__pyx_t_23, 0, __pyx_t_8); __Pyx_GIVEREF(__pyx_t_8); __pyx_t_8 = NULL;
    }
    __Pyx_INCREF(__pyx_kp_u_fuse_link_fuse_reply__failed_wit);
    PyTuple_SET_ITEM(__pyx_t_23, 0+__pyx_t_13, __pyx_kp_u_fuse_link_fuse_reply__failed_wit);
    __Pyx_GIVEREF(__pyx_kp_u_fuse_link_fuse_reply__failed_wit);
    PyTuple_SET_ITEM(__pyx_t_23, 1+__pyx_t_13, __pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_6);
    __pyx_t_6 = 0;
    __pyx_t_14 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_23, NULL); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 314; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_14);
    __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
    goto __pyx_L47;
  }
  __pyx_L47:;

  /* "src/llfuse/handlers.pxi":296
 * 
 * 
 * cdef void fuse_open (fuse_req_t req, fuse_ino_t ino, fuse_file_info *fi) with gil:             # <<<<<<<<<<<<<<
 *     cdef int ret
 * 
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_XDECREF(__pyx_t_14);
  __Pyx_XDECREF(__pyx_t_23);
  __Pyx_WriteUnraisable("llfuse.capi.fuse_open", __pyx_clineno, __pyx_lineno, __pyx_filename, 0);
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_e);
  __Pyx_RefNannyFinishContext();
  #ifdef WITH_THREAD
  PyGILState_Release(__pyx_gilstate_save);
  #endif
}

/* "src/llfuse/handlers.pxi":316
 *         log.error('fuse_link(): fuse_reply_* failed with %s', strerror(-ret))
 * 
 * cdef void fuse_read (fuse_req_t req, fuse_ino_t ino, size_t size, off_t off,             # <<<<<<<<<<<<<<
 *                      fuse_file_info *fi) with gil:
 *     cdef int ret
 */

static void __pyx_f_6llfuse_4capi_fuse_read(fuse_req_t __pyx_v_req, CYTHON_UNUSED fuse_ino_t __pyx_v_ino, size_t __pyx_v_size, off_t __pyx_v_off, struct fuse_file_info *__pyx_v_fi) {
  int __pyx_v_ret;
  Py_ssize_t __pyx_v_len_;
  char *__pyx_v_cbuf;
  PyObject *__pyx_v_buf = NULL;
  PyObject *__pyx_v_e = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  PyObject *__pyx_t_13 = NULL;
  Py_ssize_t __pyx_t_14;
  PyObject *__pyx_t_15 = NULL;
  PyObject *__pyx_t_16 = NULL;
  int __pyx_t_17;
  int __pyx_t_18;
  int __pyx_t_19;
  int __pyx_t_20;
  char const *__pyx_t_21;
  PyObject *__pyx_t_22 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  #ifdef WITH_THREAD
  PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure();
  #endif
  __Pyx_RefNannySetupContext("fuse_read", 0);

  /* "src/llfuse/handlers.pxi":322
 *     cdef char* cbuf
 * 
 *     try:             # <<<<<<<<<<<<<<
 *         with lock:
 *             buf = operations.read(fi.fh, off, size)
 */
  {
    __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);
    __Pyx_XGOTREF(__pyx_t_1);
    __Pyx_XGOTREF(__pyx_t_2);
    __Pyx_XGOTREF(__pyx_t_3);
    /*try:*/ {

      /* "src/llfuse/handlers.pxi":323
 * 
 *     try:
 *         with lock:             # <<<<<<<<<<<<<<
 *             buf = operations.read(fi.fh, off, size)
 *         PyBytes_AsStringAndSize(buf, &cbuf, &len_)
 */
      /*with:*/ {
        __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_lock); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 323; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_5 = __Pyx_PyObject_LookupSpecial(__pyx_t_4, __pyx_n_s_exit); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 323; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_7 = __Pyx_PyObject_LookupSpecial(__pyx_t_4, __pyx_n_s_enter); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 323; __pyx_clineno = __LINE__; goto __pyx_L11_error;}
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_8 = NULL;
        if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_7))) {
          __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7);
          if (likely(__pyx_t_8)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
            __Pyx_INCREF(__pyx_t_8);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_7, function);
          }
        }
        if (__pyx_t_8) {
          __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_8); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 323; __pyx_clineno = __LINE__; goto __pyx_L11_error;}
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        } else {
          __pyx_t_6 = __Pyx_PyObject_CallNoArg(__pyx_t_7); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 323; __pyx_clineno = __LINE__; goto __pyx_L11_error;}
        }
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        /*try:*/ {
          {
            __Pyx_ExceptionSave(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
            __Pyx_XGOTREF(__pyx_t_9);
            __Pyx_XGOTREF(__pyx_t_10);
            __Pyx_XGOTREF(__pyx_t_11);
            /*try:*/ {

              /* "src/llfuse/handlers.pxi":324
 *     try:
 *         with lock:
 *             buf = operations.read(fi.fh, off, size)             # <<<<<<<<<<<<<<
 *         PyBytes_AsStringAndSize(buf, &cbuf, &len_)
 *         ret = fuse_reply_buf(req, cbuf, len_)
 */
              __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_6llfuse_4capi_operations, __pyx_n_s_read); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 324; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
              __Pyx_GOTREF(__pyx_t_6);
              __pyx_t_7 = __Pyx_PyInt_From_uint64_t(__pyx_v_fi->fh); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 324; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
              __Pyx_GOTREF(__pyx_t_7);
              __pyx_t_8 = __Pyx_PyInt_From_off_t(__pyx_v_off); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 324; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
              __Pyx_GOTREF(__pyx_t_8);
              __pyx_t_12 = __Pyx_PyInt_FromSize_t(__pyx_v_size); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 324; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
              __Pyx_GOTREF(__pyx_t_12);
              __pyx_t_13 = NULL;
              __pyx_t_14 = 0;
              if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_6))) {
                __pyx_t_13 = PyMethod_GET_SELF(__pyx_t_6);
                if (likely(__pyx_t_13)) {
                  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
                  __Pyx_INCREF(__pyx_t_13);
                  __Pyx_INCREF(function);
                  __Pyx_DECREF_SET(__pyx_t_6, function);
                  __pyx_t_14 = 1;
                }
              }
              __pyx_t_15 = PyTuple_New(3+__pyx_t_14); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 324; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
              __Pyx_GOTREF(__pyx_t_15);
              if (__pyx_t_13) {
                PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_13); __Pyx_GIVEREF(__pyx_t_13); __pyx_t_13 = NULL;
              }
              PyTuple_SET_ITEM(__pyx_t_15, 0+__pyx_t_14, __pyx_t_7);
              __Pyx_GIVEREF(__pyx_t_7);
              PyTuple_SET_ITEM(__pyx_t_15, 1+__pyx_t_14, __pyx_t_8);
              __Pyx_GIVEREF(__pyx_t_8);
              PyTuple_SET_ITEM(__pyx_t_15, 2+__pyx_t_14, __pyx_t_12);
              __Pyx_GIVEREF(__pyx_t_12);
              __pyx_t_7 = 0;
              __pyx_t_8 = 0;
              __pyx_t_12 = 0;
              __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_15, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 324; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
              __Pyx_GOTREF(__pyx_t_4);
              __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
              __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
              __pyx_v_buf = __pyx_t_4;
              __pyx_t_4 = 0;
            }
            __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
            __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
            __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
            goto __pyx_L24_try_end;
            __pyx_L17_error:;
            __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
            __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
            __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
            __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
            __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0;
            __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
            __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;

            /* "src/llfuse/handlers.pxi":323
 * 
 *     try:
 *         with lock:             # <<<<<<<<<<<<<<
 *             buf = operations.read(fi.fh, off, size)
 *         PyBytes_AsStringAndSize(buf, &cbuf, &len_)
 */
            /*except:*/ {
              __Pyx_AddTraceback("llfuse.capi.fuse_read", __pyx_clineno, __pyx_lineno, __pyx_filename);
              if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_6, &__pyx_t_15) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 323; __pyx_clineno = __LINE__; goto __pyx_L19_except_error;}
              __Pyx_GOTREF(__pyx_t_4);
              __Pyx_GOTREF(__pyx_t_6);
              __Pyx_GOTREF(__pyx_t_15);
              __pyx_t_12 = PyTuple_Pack(3, __pyx_t_4, __pyx_t_6, __pyx_t_15); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 323; __pyx_clineno = __LINE__; goto __pyx_L19_except_error;}
              __Pyx_GOTREF(__pyx_t_12);
              __pyx_t_16 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_12, NULL);
              __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
              __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
              if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 323; __pyx_clineno = __LINE__; goto __pyx_L19_except_error;}
              __Pyx_GOTREF(__pyx_t_16);
              __pyx_t_17 = __Pyx_PyObject_IsTrue(__pyx_t_16);
              __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
              if (__pyx_t_17 < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 323; __pyx_clineno = __LINE__; goto __pyx_L19_except_error;}
              __pyx_t_18 = ((!(__pyx_t_17 != 0)) != 0);
              if (__pyx_t_18) {
                __Pyx_GIVEREF(__pyx_t_4);
                __Pyx_GIVEREF(__pyx_t_6);
                __Pyx_XGIVEREF(__pyx_t_15);
                __Pyx_ErrRestore(__pyx_t_4, __pyx_t_6, __pyx_t_15);
                __pyx_t_4 = 0; __pyx_t_6 = 0; __pyx_t_15 = 0; 
                {__pyx_filename = __pyx_f[0]; __pyx_lineno = 323; __pyx_clineno = __LINE__; goto __pyx_L19_except_error;}
              }
              __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
              __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
              __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
              goto __pyx_L18_exception_handled;
            }
            __pyx_L19_except_error:;
            __Pyx_XGIVEREF(__pyx_t_9);
            __Pyx_XGIVEREF(__pyx_t_10);
            __Pyx_XGIVEREF(__pyx_t_11);
            __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11);
            goto __pyx_L3_error;
            __pyx_L18_exception_handled:;
            __Pyx_XGIVEREF(__pyx_t_9);
            __Pyx_XGIVEREF(__pyx_t_10);
            __Pyx_XGIVEREF(__pyx_t_11);
            __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11);
            __pyx_L24_try_end:;
          }
        }
        /*finally:*/ {
          /*normal exit:*/{
            if (__pyx_t_5) {
              __pyx_t_11 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_tuple__16, NULL);
              __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
              if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 323; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
              __Pyx_GOTREF(__pyx_t_11);
              __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
            }
            goto __pyx_L16;
          }
          __pyx_L16:;
        }
        goto __pyx_L28;
        __pyx_L11_error:;
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        goto __pyx_L3_error;
        __pyx_L28:;
      }

      /* "src/llfuse/handlers.pxi":325
 *         with lock:
 *             buf = operations.read(fi.fh, off, size)
 *         PyBytes_AsStringAndSize(buf, &cbuf, &len_)             # <<<<<<<<<<<<<<
 *         ret = fuse_reply_buf(req, cbuf, len_)
 *     except FUSEError as e:
 */
      if (unlikely(!__pyx_v_buf)) { __Pyx_RaiseUnboundLocalError("buf"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 325; __pyx_clineno = __LINE__; goto __pyx_L3_error;} }
      __pyx_t_19 = PyBytes_AsStringAndSize(__pyx_v_buf, (&__pyx_v_cbuf), ((Py_ssize_t *)(&__pyx_v_len_))); if (unlikely(__pyx_t_19 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 325; __pyx_clineno = __LINE__; goto __pyx_L3_error;}

      /* "src/llfuse/handlers.pxi":326
 *             buf = operations.read(fi.fh, off, size)
 *         PyBytes_AsStringAndSize(buf, &cbuf, &len_)
 *         ret = fuse_reply_buf(req, cbuf, len_)             # <<<<<<<<<<<<<<
 *     except FUSEError as e:
 *         ret = fuse_reply_err(req, e.errno)
 */
      __pyx_v_ret = fuse_reply_buf(__pyx_v_req, __pyx_v_cbuf, __pyx_v_len_);
    }
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    goto __pyx_L10_try_end;
    __pyx_L3_error:;
    __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0;

    /* "src/llfuse/handlers.pxi":327
 *         PyBytes_AsStringAndSize(buf, &cbuf, &len_)
 *         ret = fuse_reply_buf(req, cbuf, len_)
 *     except FUSEError as e:             # <<<<<<<<<<<<<<
 *         ret = fuse_reply_err(req, e.errno)
 *     except BaseException as e:
 */
    __pyx_t_15 = __Pyx_GetModuleGlobalName(__pyx_n_s_FUSEError); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 327; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
    __Pyx_GOTREF(__pyx_t_15);
    __pyx_t_19 = PyErr_ExceptionMatches(__pyx_t_15);
    __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
    if (__pyx_t_19) {
      __Pyx_AddTraceback("llfuse.capi.fuse_read", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_15, &__pyx_t_6, &__pyx_t_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 327; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
      __Pyx_GOTREF(__pyx_t_15);
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_6);
      __pyx_v_e = __pyx_t_6;
      /*try:*/ {

        /* "src/llfuse/handlers.pxi":328
 *         ret = fuse_reply_buf(req, cbuf, len_)
 *     except FUSEError as e:
 *         ret = fuse_reply_err(req, e.errno)             # <<<<<<<<<<<<<<
 *     except BaseException as e:
 *         ret = handle_exc('read', e, req)
 */
        __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_v_e, __pyx_n_s_errno); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 328; __pyx_clineno = __LINE__; goto __pyx_L34_error;}
        __Pyx_GOTREF(__pyx_t_12);
        __pyx_t_19 = __Pyx_PyInt_As_int(__pyx_t_12); if (unlikely((__pyx_t_19 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 328; __pyx_clineno = __LINE__; goto __pyx_L34_error;}
        __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
        __pyx_v_ret = fuse_reply_err(__pyx_v_req, __pyx_t_19);
      }

      /* "src/llfuse/handlers.pxi":327
 *         PyBytes_AsStringAndSize(buf, &cbuf, &len_)
 *         ret = fuse_reply_buf(req, cbuf, len_)
 *     except FUSEError as e:             # <<<<<<<<<<<<<<
 *         ret = fuse_reply_err(req, e.errno)
 *     except BaseException as e:
 */
      /*finally:*/ {
        /*normal exit:*/{
          __Pyx_DECREF(__pyx_v_e);
          __pyx_v_e = NULL;
          goto __pyx_L35;
        }
        /*exception exit:*/{
          __pyx_L34_error:;
          __pyx_t_5 = 0; __pyx_t_11 = 0; __pyx_t_10 = 0; __pyx_t_9 = 0; __pyx_t_16 = 0; __pyx_t_22 = 0;
          __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
          __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
          if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_9, &__pyx_t_16, &__pyx_t_22);
          if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_5, &__pyx_t_11, &__pyx_t_10) < 0)) __Pyx_ErrFetch(&__pyx_t_5, &__pyx_t_11, &__pyx_t_10);
          __Pyx_XGOTREF(__pyx_t_5);
          __Pyx_XGOTREF(__pyx_t_11);
          __Pyx_XGOTREF(__pyx_t_10);
          __Pyx_XGOTREF(__pyx_t_9);
          __Pyx_XGOTREF(__pyx_t_16);
          __Pyx_XGOTREF(__pyx_t_22);
          __pyx_t_19 = __pyx_lineno; __pyx_t_20 = __pyx_clineno; __pyx_t_21 = __pyx_filename;
          {
            __Pyx_DECREF(__pyx_v_e);
            __pyx_v_e = NULL;
          }
          if (PY_MAJOR_VERSION >= 3) {
            __Pyx_XGIVEREF(__pyx_t_9);
            __Pyx_XGIVEREF(__pyx_t_16);
            __Pyx_XGIVEREF(__pyx_t_22);
            __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_16, __pyx_t_22);
          }
          __Pyx_XGIVEREF(__pyx_t_5);
          __Pyx_XGIVEREF(__pyx_t_11);
          __Pyx_XGIVEREF(__pyx_t_10);
          __Pyx_ErrRestore(__pyx_t_5, __pyx_t_11, __pyx_t_10);
          __pyx_t_5 = 0; __pyx_t_11 = 0; __pyx_t_10 = 0; __pyx_t_9 = 0; __pyx_t_16 = 0; __pyx_t_22 = 0;
          __pyx_lineno = __pyx_t_19; __pyx_clineno = __pyx_t_20; __pyx_filename = __pyx_t_21;
          goto __pyx_L5_except_error;
        }
        __pyx_L35:;
      }
      __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      goto __pyx_L4_exception_handled;
    }

    /* "src/llfuse/handlers.pxi":329
 *     except FUSEError as e:
 *         ret = fuse_reply_err(req, e.errno)
 *     except BaseException as e:             # <<<<<<<<<<<<<<
 *         ret = handle_exc('read', e, req)
 * 
 */
    __pyx_t_20 = PyErr_ExceptionMatches(__pyx_builtin_BaseException);
    if (__pyx_t_20) {
      __Pyx_AddTraceback("llfuse.capi.fuse_read", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_6, &__pyx_t_15) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 329; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_GOTREF(__pyx_t_15);
      __Pyx_INCREF(__pyx_t_6);
      __pyx_v_e = __pyx_t_6;
      /*try:*/ {

        /* "src/llfuse/handlers.pxi":330
 *         ret = fuse_reply_err(req, e.errno)
 *     except BaseException as e:
 *         ret = handle_exc('read', e, req)             # <<<<<<<<<<<<<<
 * 
 *     if ret != 0:
 */
        __pyx_v_ret = __pyx_f_6llfuse_4capi_handle_exc(__pyx_k_read, __pyx_v_e, __pyx_v_req);
      }

      /* "src/llfuse/handlers.pxi":329
 *     except FUSEError as e:
 *         ret = fuse_reply_err(req, e.errno)
 *     except BaseException as e:             # <<<<<<<<<<<<<<
 *         ret = handle_exc('read', e, req)
 * 
 */
      /*finally:*/ {
        /*normal exit:*/{
          __Pyx_DECREF(__pyx_v_e);
          __pyx_v_e = NULL;
          goto __pyx_L46;
        }
        __pyx_L46:;
      }
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
      goto __pyx_L4_exception_handled;
    }
    goto __pyx_L5_except_error;
    __pyx_L5_except_error:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L1_error;
    __pyx_L4_exception_handled:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    __pyx_L10_try_end:;
  }

  /* "src/llfuse/handlers.pxi":332
 *         ret = handle_exc('read', e, req)
 * 
 *     if ret != 0:             # <<<<<<<<<<<<<<
 *         log.error('fuse_read(): fuse_reply_* failed with %s', strerror(-ret))
 * 
 */
  __pyx_t_18 = ((__pyx_v_ret != 0) != 0);
  if (__pyx_t_18) {

    /* "src/llfuse/handlers.pxi":333
 * 
 *     if ret != 0:
 *         log.error('fuse_read(): fuse_reply_* failed with %s', strerror(-ret))             # <<<<<<<<<<<<<<
 * 
 * cdef void fuse_write (fuse_req_t req, fuse_ino_t ino, const_char *buf,
 */
    __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s_log); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 333; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_error); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 333; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_12 = __Pyx_GetModuleGlobalName(__pyx_n_s_strerror); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 333; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_12);
    __pyx_t_8 = __Pyx_PyInt_From_int((-__pyx_v_ret)); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 333; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_7 = NULL;
    if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_12))) {
      __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_12);
      if (likely(__pyx_t_7)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_12);
        __Pyx_INCREF(__pyx_t_7);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_12, function);
      }
    }
    if (!__pyx_t_7) {
      __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_t_12, __pyx_t_8); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 333; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_GOTREF(__pyx_t_6);
    } else {
      __pyx_t_13 = PyTuple_New(1+1); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 333; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_13);
      PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_t_7); __Pyx_GIVEREF(__pyx_t_7); __pyx_t_7 = NULL;
      PyTuple_SET_ITEM(__pyx_t_13, 0+1, __pyx_t_8);
      __Pyx_GIVEREF(__pyx_t_8);
      __pyx_t_8 = 0;
      __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_12, __pyx_t_13, NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 333; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    }
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __pyx_t_12 = NULL;
    __pyx_t_14 = 0;
    if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_4);
      if (likely(__pyx_t_12)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
        __Pyx_INCREF(__pyx_t_12);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_4, function);
        __pyx_t_14 = 1;
      }
    }
    __pyx_t_13 = PyTuple_New(2+__pyx_t_14); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 333; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_13);
    if (__pyx_t_12) {
      PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_t_12); __Pyx_GIVEREF(__pyx_t_12); __pyx_t_12 = NULL;
    }
    __Pyx_INCREF(__pyx_kp_u_fuse_read_fuse_reply__failed_wit);
    PyTuple_SET_ITEM(__pyx_t_13, 0+__pyx_t_14, __pyx_kp_u_fuse_read_fuse_reply__failed_wit);
    __Pyx_GIVEREF(__pyx_kp_u_fuse_read_fuse_reply__failed_wit);
    PyTuple_SET_ITEM(__pyx_t_13, 1+__pyx_t_14, __pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_6);
    __pyx_t_6 = 0;
    __pyx_t_15 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_13, NULL); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 333; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_15);
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
    goto __pyx_L47;
  }
  __pyx_L47:;

  /* "src/llfuse/handlers.pxi":316
 *         log.error('fuse_link(): fuse_reply_* failed with %s', strerror(-ret))
 * 
 * cdef void fuse_read (fuse_req_t req, fuse_ino_t ino, size_t size, off_t off,             # <<<<<<<<<<<<<<
 *                      fuse_file_info *fi) with gil:
 *     cdef int ret
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_XDECREF(__pyx_t_15);
  __Pyx_WriteUnraisable("llfuse.capi.fuse_read", __pyx_clineno, __pyx_lineno, __pyx_filename, 0);
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_buf);
  __Pyx_XDECREF(__pyx_v_e);
  __Pyx_RefNannyFinishContext();
  #ifdef WITH_THREAD
  PyGILState_Release(__pyx_gilstate_save);
  #endif
}

/* "src/llfuse/handlers.pxi":335
 *         log.error('fuse_read(): fuse_reply_* failed with %s', strerror(-ret))
 * 
 * cdef void fuse_write (fuse_req_t req, fuse_ino_t ino, const_char *buf,             # <<<<<<<<<<<<<<
 *                       size_t size, off_t off, fuse_file_info *fi) with gil:
 *     cdef int ret
 */

static void __pyx_f_6llfuse_4capi_fuse_write(fuse_req_t __pyx_v_req, CYTHON_UNUSED fuse_ino_t __pyx_v_ino, const char *__pyx_v_buf, size_t __pyx_v_size, off_t __pyx_v_off, struct fuse_file_info *__pyx_v_fi) {
  int __pyx_v_ret;
  size_t __pyx_v_len_;
  PyObject *__pyx_v_pbuf = NULL;
  PyObject *__pyx_v_e = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  Py_ssize_t __pyx_t_13;
  PyObject *__pyx_t_14 = NULL;
  size_t __pyx_t_15;
  PyObject *__pyx_t_16 = NULL;
  int __pyx_t_17;
  int __pyx_t_18;
  PyObject *__pyx_t_19 = NULL;
  int __pyx_t_20;
  PyObject *__pyx_t_21 = NULL;
  PyObject *__pyx_t_22 = NULL;
  PyObject *__pyx_t_23 = NULL;
  int __pyx_t_24;
  char const *__pyx_t_25;
  PyObject *__pyx_t_26 = NULL;
  char const *__pyx_t_27;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  #ifdef WITH_THREAD
  PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure();
  #endif
  __Pyx_RefNannySetupContext("fuse_write", 0);

  /* "src/llfuse/handlers.pxi":341
 * 
 *     # GCC thinks this may end up uninitialized
 *     len_ = 0             # <<<<<<<<<<<<<<
 * 
 *     try:
 */
  __pyx_v_len_ = 0;

  /* "src/llfuse/handlers.pxi":343
 *     len_ = 0
 * 
 *     try:             # <<<<<<<<<<<<<<
 *         pbuf = PyBytes_FromStringAndSize(buf, size)
 *         with lock:
 */
  {
    __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);
    __Pyx_XGOTREF(__pyx_t_1);
    __Pyx_XGOTREF(__pyx_t_2);
    __Pyx_XGOTREF(__pyx_t_3);
    /*try:*/ {

      /* "src/llfuse/handlers.pxi":344
 * 
 *     try:
 *         pbuf = PyBytes_FromStringAndSize(buf, size)             # <<<<<<<<<<<<<<
 *         with lock:
 *             len_ = operations.write(fi.fh, off, pbuf)
 */
      __pyx_t_4 = PyBytes_FromStringAndSize(__pyx_v_buf, __pyx_v_size); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 344; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_v_pbuf = ((PyObject*)__pyx_t_4);
      __pyx_t_4 = 0;

      /* "src/llfuse/handlers.pxi":345
 *     try:
 *         pbuf = PyBytes_FromStringAndSize(buf, size)
 *         with lock:             # <<<<<<<<<<<<<<
 *             len_ = operations.write(fi.fh, off, pbuf)
 *         ret = fuse_reply_write(req, len_)
 */
      /*with:*/ {
        __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_lock); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 345; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_5 = __Pyx_PyObject_LookupSpecial(__pyx_t_4, __pyx_n_s_exit); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 345; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_7 = __Pyx_PyObject_LookupSpecial(__pyx_t_4, __pyx_n_s_enter); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 345; __pyx_clineno = __LINE__; goto __pyx_L11_error;}
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_8 = NULL;
        if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_7))) {
          __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7);
          if (likely(__pyx_t_8)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
            __Pyx_INCREF(__pyx_t_8);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_7, function);
          }
        }
        if (__pyx_t_8) {
          __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_8); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 345; __pyx_clineno = __LINE__; goto __pyx_L11_error;}
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        } else {
          __pyx_t_6 = __Pyx_PyObject_CallNoArg(__pyx_t_7); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 345; __pyx_clineno = __LINE__; goto __pyx_L11_error;}
        }
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        /*try:*/ {
          {
            __Pyx_ExceptionSave(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
            __Pyx_XGOTREF(__pyx_t_9);
            __Pyx_XGOTREF(__pyx_t_10);
            __Pyx_XGOTREF(__pyx_t_11);
            /*try:*/ {

              /* "src/llfuse/handlers.pxi":346
 *         pbuf = PyBytes_FromStringAndSize(buf, size)
 *         with lock:
 *             len_ = operations.write(fi.fh, off, pbuf)             # <<<<<<<<<<<<<<
 *         ret = fuse_reply_write(req, len_)
 *         if ret != 0:
 */
              __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_6llfuse_4capi_operations, __pyx_n_s_write); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 346; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
              __Pyx_GOTREF(__pyx_t_6);
              __pyx_t_7 = __Pyx_PyInt_From_uint64_t(__pyx_v_fi->fh); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 346; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
              __Pyx_GOTREF(__pyx_t_7);
              __pyx_t_8 = __Pyx_PyInt_From_off_t(__pyx_v_off); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 346; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
              __Pyx_GOTREF(__pyx_t_8);
              __pyx_t_12 = NULL;
              __pyx_t_13 = 0;
              if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_6))) {
                __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_6);
                if (likely(__pyx_t_12)) {
                  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
                  __Pyx_INCREF(__pyx_t_12);
                  __Pyx_INCREF(function);
                  __Pyx_DECREF_SET(__pyx_t_6, function);
                  __pyx_t_13 = 1;
                }
              }
              __pyx_t_14 = PyTuple_New(3+__pyx_t_13); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 346; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
              __Pyx_GOTREF(__pyx_t_14);
              if (__pyx_t_12) {
                PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_12); __Pyx_GIVEREF(__pyx_t_12); __pyx_t_12 = NULL;
              }
              PyTuple_SET_ITEM(__pyx_t_14, 0+__pyx_t_13, __pyx_t_7);
              __Pyx_GIVEREF(__pyx_t_7);
              PyTuple_SET_ITEM(__pyx_t_14, 1+__pyx_t_13, __pyx_t_8);
              __Pyx_GIVEREF(__pyx_t_8);
              __Pyx_INCREF(__pyx_v_pbuf);
              PyTuple_SET_ITEM(__pyx_t_14, 2+__pyx_t_13, __pyx_v_pbuf);
              __Pyx_GIVEREF(__pyx_v_pbuf);
              __pyx_t_7 = 0;
              __pyx_t_8 = 0;
              __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_14, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 346; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
              __Pyx_GOTREF(__pyx_t_4);
              __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
              __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
              __pyx_t_15 = __Pyx_PyInt_As_size_t(__pyx_t_4); if (unlikely((__pyx_t_15 == (size_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 346; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
              __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
              __pyx_v_len_ = __pyx_t_15;
            }
            __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
            __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
            __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
            goto __pyx_L24_try_end;
            __pyx_L17_error:;
            __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
            __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
            __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
            __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
            __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
            __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;

            /* "src/llfuse/handlers.pxi":345
 *     try:
 *         pbuf = PyBytes_FromStringAndSize(buf, size)
 *         with lock:             # <<<<<<<<<<<<<<
 *             len_ = operations.write(fi.fh, off, pbuf)
 *         ret = fuse_reply_write(req, len_)
 */
            /*except:*/ {
              __Pyx_AddTraceback("llfuse.capi.fuse_write", __pyx_clineno, __pyx_lineno, __pyx_filename);
              if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_6, &__pyx_t_14) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 345; __pyx_clineno = __LINE__; goto __pyx_L19_except_error;}
              __Pyx_GOTREF(__pyx_t_4);
              __Pyx_GOTREF(__pyx_t_6);
              __Pyx_GOTREF(__pyx_t_14);
              __pyx_t_8 = PyTuple_Pack(3, __pyx_t_4, __pyx_t_6, __pyx_t_14); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 345; __pyx_clineno = __LINE__; goto __pyx_L19_except_error;}
              __Pyx_GOTREF(__pyx_t_8);
              __pyx_t_16 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_8, NULL);
              __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
              __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
              if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 345; __pyx_clineno = __LINE__; goto __pyx_L19_except_error;}
              __Pyx_GOTREF(__pyx_t_16);
              __pyx_t_17 = __Pyx_PyObject_IsTrue(__pyx_t_16);
              __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
              if (__pyx_t_17 < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 345; __pyx_clineno = __LINE__; goto __pyx_L19_except_error;}
              __pyx_t_18 = ((!(__pyx_t_17 != 0)) != 0);
              if (__pyx_t_18) {
                __Pyx_GIVEREF(__pyx_t_4);
                __Pyx_GIVEREF(__pyx_t_6);
                __Pyx_XGIVEREF(__pyx_t_14);
                __Pyx_ErrRestore(__pyx_t_4, __pyx_t_6, __pyx_t_14);
                __pyx_t_4 = 0; __pyx_t_6 = 0; __pyx_t_14 = 0; 
                {__pyx_filename = __pyx_f[0]; __pyx_lineno = 345; __pyx_clineno = __LINE__; goto __pyx_L19_except_error;}
              }
              __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
              __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
              __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
              goto __pyx_L18_exception_handled;
            }
            __pyx_L19_except_error:;
            __Pyx_XGIVEREF(__pyx_t_9);
            __Pyx_XGIVEREF(__pyx_t_10);
            __Pyx_XGIVEREF(__pyx_t_11);
            __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11);
            goto __pyx_L3_error;
            __pyx_L18_exception_handled:;
            __Pyx_XGIVEREF(__pyx_t_9);
            __Pyx_XGIVEREF(__pyx_t_10);
            __Pyx_XGIVEREF(__pyx_t_11);
            __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11);
            __pyx_L24_try_end:;
          }
        }
        /*finally:*/ {
          /*normal exit:*/{
            if (__pyx_t_5) {
              __pyx_t_11 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_tuple__17, NULL);
              __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
              if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 345; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
              __Pyx_GOTREF(__pyx_t_11);
              __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
            }
            goto __pyx_L16;
          }
          __pyx_L16:;
        }
        goto __pyx_L28;
        __pyx_L11_error:;
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        goto __pyx_L3_error;
        __pyx_L28:;
      }

      /* "src/llfuse/handlers.pxi":347
 *         with lock:
 *             len_ = operations.write(fi.fh, off, pbuf)
 *         ret = fuse_reply_write(req, len_)             # <<<<<<<<<<<<<<
 *         if ret != 0:
 *             log.error('fuse_write(): fuse_reply_write failed with %s', strerror(-ret))
 */
      __pyx_v_ret = fuse_reply_write(__pyx_v_req, __pyx_v_len_);

      /* "src/llfuse/handlers.pxi":348
 *             len_ = operations.write(fi.fh, off, pbuf)
 *         ret = fuse_reply_write(req, len_)
 *         if ret != 0:             # <<<<<<<<<<<<<<
 *             log.error('fuse_write(): fuse_reply_write failed with %s', strerror(-ret))
 *     except FUSEError as e:
 */
      __pyx_t_18 = ((__pyx_v_ret != 0) != 0);
      if (__pyx_t_18) {

        /* "src/llfuse/handlers.pxi":349
 *         ret = fuse_reply_write(req, len_)
 *         if ret != 0:
 *             log.error('fuse_write(): fuse_reply_write failed with %s', strerror(-ret))             # <<<<<<<<<<<<<<
 *     except FUSEError as e:
 *         ret = fuse_reply_err(req, e.errno)
 */
        __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s_log); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 349; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_error); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 349; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __pyx_t_8 = __Pyx_GetModuleGlobalName(__pyx_n_s_strerror); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 349; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_7 = __Pyx_PyInt_From_int((-__pyx_v_ret)); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 349; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_12 = NULL;
        if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_12)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_12);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
          }
        }
        if (!__pyx_t_12) {
          __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_7); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 349; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_GOTREF(__pyx_t_6);
        } else {
          __pyx_t_19 = PyTuple_New(1+1); if (unlikely(!__pyx_t_19)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 349; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
          __Pyx_GOTREF(__pyx_t_19);
          PyTuple_SET_ITEM(__pyx_t_19, 0, __pyx_t_12); __Pyx_GIVEREF(__pyx_t_12); __pyx_t_12 = NULL;
          PyTuple_SET_ITEM(__pyx_t_19, 0+1, __pyx_t_7);
          __Pyx_GIVEREF(__pyx_t_7);
          __pyx_t_7 = 0;
          __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_19, NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 349; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
          __Pyx_GOTREF(__pyx_t_6);
          __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
        }
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __pyx_t_8 = NULL;
        __pyx_t_13 = 0;
        if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_4))) {
          __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_4);
          if (likely(__pyx_t_8)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
            __Pyx_INCREF(__pyx_t_8);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_4, function);
            __pyx_t_13 = 1;
          }
        }
        __pyx_t_19 = PyTuple_New(2+__pyx_t_13); if (unlikely(!__pyx_t_19)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 349; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        __Pyx_GOTREF(__pyx_t_19);
        if (__pyx_t_8) {
          PyTuple_SET_ITEM(__pyx_t_19, 0, __pyx_t_8); __Pyx_GIVEREF(__pyx_t_8); __pyx_t_8 = NULL;
        }
        __Pyx_INCREF(__pyx_kp_u_fuse_write_fuse_reply_write_fail);
        PyTuple_SET_ITEM(__pyx_t_19, 0+__pyx_t_13, __pyx_kp_u_fuse_write_fuse_reply_write_fail);
        __Pyx_GIVEREF(__pyx_kp_u_fuse_write_fuse_reply_write_fail);
        PyTuple_SET_ITEM(__pyx_t_19, 1+__pyx_t_13, __pyx_t_6);
        __Pyx_GIVEREF(__pyx_t_6);
        __pyx_t_6 = 0;
        __pyx_t_14 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_19, NULL); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 349; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        __Pyx_GOTREF(__pyx_t_14);
        __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
        goto __pyx_L29;
      }
      __pyx_L29:;
    }
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    goto __pyx_L10_try_end;
    __pyx_L3_error:;
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 0;
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;

    /* "src/llfuse/handlers.pxi":350
 *         if ret != 0:
 *             log.error('fuse_write(): fuse_reply_write failed with %s', strerror(-ret))
 *     except FUSEError as e:             # <<<<<<<<<<<<<<
 *         ret = fuse_reply_err(req, e.errno)
 *         if ret != 0:
 */
    __pyx_t_14 = __Pyx_GetModuleGlobalName(__pyx_n_s_FUSEError); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 350; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
    __Pyx_GOTREF(__pyx_t_14);
    __pyx_t_20 = PyErr_ExceptionMatches(__pyx_t_14);
    __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
    if (__pyx_t_20) {
      __Pyx_AddTraceback("llfuse.capi.fuse_write", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_14, &__pyx_t_4, &__pyx_t_19) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 350; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
      __Pyx_GOTREF(__pyx_t_14);
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_GOTREF(__pyx_t_19);
      __Pyx_INCREF(__pyx_t_4);
      __pyx_v_e = __pyx_t_4;
      /*try:*/ {

        /* "src/llfuse/handlers.pxi":351
 *             log.error('fuse_write(): fuse_reply_write failed with %s', strerror(-ret))
 *     except FUSEError as e:
 *         ret = fuse_reply_err(req, e.errno)             # <<<<<<<<<<<<<<
 *         if ret != 0:
 *             log.error('fuse_write(): fuse_reply_err(%d) failed with %s', strerror(-ret), e.errno)
 */
        __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_e, __pyx_n_s_errno); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 351; __pyx_clineno = __LINE__; goto __pyx_L35_error;}
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_20 = __Pyx_PyInt_As_int(__pyx_t_6); if (unlikely((__pyx_t_20 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 351; __pyx_clineno = __LINE__; goto __pyx_L35_error;}
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __pyx_v_ret = fuse_reply_err(__pyx_v_req, __pyx_t_20);

        /* "src/llfuse/handlers.pxi":352
 *     except FUSEError as e:
 *         ret = fuse_reply_err(req, e.errno)
 *         if ret != 0:             # <<<<<<<<<<<<<<
 *             log.error('fuse_write(): fuse_reply_err(%d) failed with %s', strerror(-ret), e.errno)
 *     except BaseException as e:
 */
        __pyx_t_18 = ((__pyx_v_ret != 0) != 0);
        if (__pyx_t_18) {

          /* "src/llfuse/handlers.pxi":353
 *         ret = fuse_reply_err(req, e.errno)
 *         if ret != 0:
 *             log.error('fuse_write(): fuse_reply_err(%d) failed with %s', strerror(-ret), e.errno)             # <<<<<<<<<<<<<<
 *     except BaseException as e:
 *         ret = handle_exc('write', e, req)
 */
          __pyx_t_8 = __Pyx_GetModuleGlobalName(__pyx_n_s_log); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 353; __pyx_clineno = __LINE__; goto __pyx_L35_error;}
          __Pyx_GOTREF(__pyx_t_8);
          __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_error); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 353; __pyx_clineno = __LINE__; goto __pyx_L35_error;}
          __Pyx_GOTREF(__pyx_t_7);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
          __pyx_t_12 = __Pyx_GetModuleGlobalName(__pyx_n_s_strerror); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 353; __pyx_clineno = __LINE__; goto __pyx_L35_error;}
          __Pyx_GOTREF(__pyx_t_12);
          __pyx_t_21 = __Pyx_PyInt_From_int((-__pyx_v_ret)); if (unlikely(!__pyx_t_21)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 353; __pyx_clineno = __LINE__; goto __pyx_L35_error;}
          __Pyx_GOTREF(__pyx_t_21);
          __pyx_t_22 = NULL;
          if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_12))) {
            __pyx_t_22 = PyMethod_GET_SELF(__pyx_t_12);
            if (likely(__pyx_t_22)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_12);
              __Pyx_INCREF(__pyx_t_22);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_12, function);
            }
          }
          if (!__pyx_t_22) {
            __pyx_t_8 = __Pyx_PyObject_CallOneArg(__pyx_t_12, __pyx_t_21); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 353; __pyx_clineno = __LINE__; goto __pyx_L35_error;}
            __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
            __Pyx_GOTREF(__pyx_t_8);
          } else {
            __pyx_t_23 = PyTuple_New(1+1); if (unlikely(!__pyx_t_23)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 353; __pyx_clineno = __LINE__; goto __pyx_L35_error;}
            __Pyx_GOTREF(__pyx_t_23);
            PyTuple_SET_ITEM(__pyx_t_23, 0, __pyx_t_22); __Pyx_GIVEREF(__pyx_t_22); __pyx_t_22 = NULL;
            PyTuple_SET_ITEM(__pyx_t_23, 0+1, __pyx_t_21);
            __Pyx_GIVEREF(__pyx_t_21);
            __pyx_t_21 = 0;
            __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_12, __pyx_t_23, NULL); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 353; __pyx_clineno = __LINE__; goto __pyx_L35_error;}
            __Pyx_GOTREF(__pyx_t_8);
            __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
          }
          __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
          __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_v_e, __pyx_n_s_errno); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 353; __pyx_clineno = __LINE__; goto __pyx_L35_error;}
          __Pyx_GOTREF(__pyx_t_12);
          __pyx_t_23 = NULL;
          __pyx_t_13 = 0;
          if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_7))) {
            __pyx_t_23 = PyMethod_GET_SELF(__pyx_t_7);
            if (likely(__pyx_t_23)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
              __Pyx_INCREF(__pyx_t_23);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_7, function);
              __pyx_t_13 = 1;
            }
          }
          __pyx_t_21 = PyTuple_New(3+__pyx_t_13); if (unlikely(!__pyx_t_21)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 353; __pyx_clineno = __LINE__; goto __pyx_L35_error;}
          __Pyx_GOTREF(__pyx_t_21);
          if (__pyx_t_23) {
            PyTuple_SET_ITEM(__pyx_t_21, 0, __pyx_t_23); __Pyx_GIVEREF(__pyx_t_23); __pyx_t_23 = NULL;
          }
          __Pyx_INCREF(__pyx_kp_u_fuse_write_fuse_reply_err_d_fail);
          PyTuple_SET_ITEM(__pyx_t_21, 0+__pyx_t_13, __pyx_kp_u_fuse_write_fuse_reply_err_d_fail);
          __Pyx_GIVEREF(__pyx_kp_u_fuse_write_fuse_reply_err_d_fail);
          PyTuple_SET_ITEM(__pyx_t_21, 1+__pyx_t_13, __pyx_t_8);
          __Pyx_GIVEREF(__pyx_t_8);
          PyTuple_SET_ITEM(__pyx_t_21, 2+__pyx_t_13, __pyx_t_12);
          __Pyx_GIVEREF(__pyx_t_12);
          __pyx_t_8 = 0;
          __pyx_t_12 = 0;
          __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_21, NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 353; __pyx_clineno = __LINE__; goto __pyx_L35_error;}
          __Pyx_GOTREF(__pyx_t_6);
          __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          goto __pyx_L37;
        }
        __pyx_L37:;
      }

      /* "src/llfuse/handlers.pxi":350
 *         if ret != 0:
 *             log.error('fuse_write(): fuse_reply_write failed with %s', strerror(-ret))
 *     except FUSEError as e:             # <<<<<<<<<<<<<<
 *         ret = fuse_reply_err(req, e.errno)
 *         if ret != 0:
 */
      /*finally:*/ {
        /*normal exit:*/{
          __Pyx_DECREF(__pyx_v_e);
          __pyx_v_e = NULL;
          goto __pyx_L36;
        }
        /*exception exit:*/{
          __pyx_L35_error:;
          __pyx_t_5 = 0; __pyx_t_11 = 0; __pyx_t_10 = 0; __pyx_t_9 = 0; __pyx_t_16 = 0; __pyx_t_26 = 0;
          __Pyx_XDECREF(__pyx_t_22); __pyx_t_22 = 0;
          __Pyx_XDECREF(__pyx_t_23); __pyx_t_23 = 0;
          __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
          __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
          __Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0;
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_9, &__pyx_t_16, &__pyx_t_26);
          if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_5, &__pyx_t_11, &__pyx_t_10) < 0)) __Pyx_ErrFetch(&__pyx_t_5, &__pyx_t_11, &__pyx_t_10);
          __Pyx_XGOTREF(__pyx_t_5);
          __Pyx_XGOTREF(__pyx_t_11);
          __Pyx_XGOTREF(__pyx_t_10);
          __Pyx_XGOTREF(__pyx_t_9);
          __Pyx_XGOTREF(__pyx_t_16);
          __Pyx_XGOTREF(__pyx_t_26);
          __pyx_t_20 = __pyx_lineno; __pyx_t_24 = __pyx_clineno; __pyx_t_25 = __pyx_filename;
          {
            __Pyx_DECREF(__pyx_v_e);
            __pyx_v_e = NULL;
          }
          if (PY_MAJOR_VERSION >= 3) {
            __Pyx_XGIVEREF(__pyx_t_9);
            __Pyx_XGIVEREF(__pyx_t_16);
            __Pyx_XGIVEREF(__pyx_t_26);
            __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_16, __pyx_t_26);
          }
          __Pyx_XGIVEREF(__pyx_t_5);
          __Pyx_XGIVEREF(__pyx_t_11);
          __Pyx_XGIVEREF(__pyx_t_10);
          __Pyx_ErrRestore(__pyx_t_5, __pyx_t_11, __pyx_t_10);
          __pyx_t_5 = 0; __pyx_t_11 = 0; __pyx_t_10 = 0; __pyx_t_9 = 0; __pyx_t_16 = 0; __pyx_t_26 = 0;
          __pyx_lineno = __pyx_t_20; __pyx_clineno = __pyx_t_24; __pyx_filename = __pyx_t_25;
          goto __pyx_L5_except_error;
        }
        __pyx_L36:;
      }
      __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
      goto __pyx_L4_exception_handled;
    }

    /* "src/llfuse/handlers.pxi":354
 *         if ret != 0:
 *             log.error('fuse_write(): fuse_reply_err(%d) failed with %s', strerror(-ret), e.errno)
 *     except BaseException as e:             # <<<<<<<<<<<<<<
 *         ret = handle_exc('write', e, req)
 * 
 */
    __pyx_t_24 = PyErr_ExceptionMatches(__pyx_builtin_BaseException);
    if (__pyx_t_24) {
      __Pyx_AddTraceback("llfuse.capi.fuse_write", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_19, &__pyx_t_4, &__pyx_t_14) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 354; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
      __Pyx_GOTREF(__pyx_t_19);
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_GOTREF(__pyx_t_14);
      __Pyx_INCREF(__pyx_t_4);
      __pyx_v_e = __pyx_t_4;
      /*try:*/ {

        /* "src/llfuse/handlers.pxi":355
 *             log.error('fuse_write(): fuse_reply_err(%d) failed with %s', strerror(-ret), e.errno)
 *     except BaseException as e:
 *         ret = handle_exc('write', e, req)             # <<<<<<<<<<<<<<
 * 
 *         if ret != 0:
 */
        __pyx_v_ret = __pyx_f_6llfuse_4capi_handle_exc(__pyx_k_write, __pyx_v_e, __pyx_v_req);

        /* "src/llfuse/handlers.pxi":357
 *         ret = handle_exc('write', e, req)
 * 
 *         if ret != 0:             # <<<<<<<<<<<<<<
 *             log.error('fuse_write(): fuse_reply_err failed with %s after exception', strerror(-ret))
 * 
 */
        __pyx_t_18 = ((__pyx_v_ret != 0) != 0);
        if (__pyx_t_18) {

          /* "src/llfuse/handlers.pxi":358
 * 
 *         if ret != 0:
 *             log.error('fuse_write(): fuse_reply_err failed with %s after exception', strerror(-ret))             # <<<<<<<<<<<<<<
 * 
 * cdef void fuse_flush (fuse_req_t req, fuse_ino_t ino, fuse_file_info *fi) with gil:
 */
          __pyx_t_7 = __Pyx_GetModuleGlobalName(__pyx_n_s_log); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 358; __pyx_clineno = __LINE__; goto __pyx_L47_error;}
          __Pyx_GOTREF(__pyx_t_7);
          __pyx_t_21 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_error); if (unlikely(!__pyx_t_21)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 358; __pyx_clineno = __LINE__; goto __pyx_L47_error;}
          __Pyx_GOTREF(__pyx_t_21);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __pyx_t_12 = __Pyx_GetModuleGlobalName(__pyx_n_s_strerror); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 358; __pyx_clineno = __LINE__; goto __pyx_L47_error;}
          __Pyx_GOTREF(__pyx_t_12);
          __pyx_t_8 = __Pyx_PyInt_From_int((-__pyx_v_ret)); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 358; __pyx_clineno = __LINE__; goto __pyx_L47_error;}
          __Pyx_GOTREF(__pyx_t_8);
          __pyx_t_23 = NULL;
          if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_12))) {
            __pyx_t_23 = PyMethod_GET_SELF(__pyx_t_12);
            if (likely(__pyx_t_23)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_12);
              __Pyx_INCREF(__pyx_t_23);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_12, function);
            }
          }
          if (!__pyx_t_23) {
            __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_t_12, __pyx_t_8); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 358; __pyx_clineno = __LINE__; goto __pyx_L47_error;}
            __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
            __Pyx_GOTREF(__pyx_t_7);
          } else {
            __pyx_t_22 = PyTuple_New(1+1); if (unlikely(!__pyx_t_22)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 358; __pyx_clineno = __LINE__; goto __pyx_L47_error;}
            __Pyx_GOTREF(__pyx_t_22);
            PyTuple_SET_ITEM(__pyx_t_22, 0, __pyx_t_23); __Pyx_GIVEREF(__pyx_t_23); __pyx_t_23 = NULL;
            PyTuple_SET_ITEM(__pyx_t_22, 0+1, __pyx_t_8);
            __Pyx_GIVEREF(__pyx_t_8);
            __pyx_t_8 = 0;
            __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_12, __pyx_t_22, NULL); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 358; __pyx_clineno = __LINE__; goto __pyx_L47_error;}
            __Pyx_GOTREF(__pyx_t_7);
            __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
          }
          __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
          __pyx_t_12 = NULL;
          __pyx_t_13 = 0;
          if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_21))) {
            __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_21);
            if (likely(__pyx_t_12)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_21);
              __Pyx_INCREF(__pyx_t_12);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_21, function);
              __pyx_t_13 = 1;
            }
          }
          __pyx_t_22 = PyTuple_New(2+__pyx_t_13); if (unlikely(!__pyx_t_22)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 358; __pyx_clineno = __LINE__; goto __pyx_L47_error;}
          __Pyx_GOTREF(__pyx_t_22);
          if (__pyx_t_12) {
            PyTuple_SET_ITEM(__pyx_t_22, 0, __pyx_t_12); __Pyx_GIVEREF(__pyx_t_12); __pyx_t_12 = NULL;
          }
          __Pyx_INCREF(__pyx_kp_u_fuse_write_fuse_reply_err_failed);
          PyTuple_SET_ITEM(__pyx_t_22, 0+__pyx_t_13, __pyx_kp_u_fuse_write_fuse_reply_err_failed);
          __Pyx_GIVEREF(__pyx_kp_u_fuse_write_fuse_reply_err_failed);
          PyTuple_SET_ITEM(__pyx_t_22, 1+__pyx_t_13, __pyx_t_7);
          __Pyx_GIVEREF(__pyx_t_7);
          __pyx_t_7 = 0;
          __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_21, __pyx_t_22, NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 358; __pyx_clineno = __LINE__; goto __pyx_L47_error;}
          __Pyx_GOTREF(__pyx_t_6);
          __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
          __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          goto __pyx_L49;
        }
        __pyx_L49:;
      }

      /* "src/llfuse/handlers.pxi":354
 *         if ret != 0:
 *             log.error('fuse_write(): fuse_reply_err(%d) failed with %s', strerror(-ret), e.errno)
 *     except BaseException as e:             # <<<<<<<<<<<<<<
 *         ret = handle_exc('write', e, req)
 * 
 */
      /*finally:*/ {
        /*normal exit:*/{
          __Pyx_DECREF(__pyx_v_e);
          __pyx_v_e = NULL;
          goto __pyx_L48;
        }
        /*exception exit:*/{
          __pyx_L47_error:;
          __pyx_t_26 = 0; __pyx_t_16 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_5 = 0;
          __Pyx_XDECREF(__pyx_t_23); __pyx_t_23 = 0;
          __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
          __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_XDECREF(__pyx_t_22); __pyx_t_22 = 0;
          __Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0;
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_10, &__pyx_t_11, &__pyx_t_5);
          if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_26, &__pyx_t_16, &__pyx_t_9) < 0)) __Pyx_ErrFetch(&__pyx_t_26, &__pyx_t_16, &__pyx_t_9);
          __Pyx_XGOTREF(__pyx_t_26);
          __Pyx_XGOTREF(__pyx_t_16);
          __Pyx_XGOTREF(__pyx_t_9);
          __Pyx_XGOTREF(__pyx_t_10);
          __Pyx_XGOTREF(__pyx_t_11);
          __Pyx_XGOTREF(__pyx_t_5);
          __pyx_t_24 = __pyx_lineno; __pyx_t_20 = __pyx_clineno; __pyx_t_27 = __pyx_filename;
          {
            __Pyx_DECREF(__pyx_v_e);
            __pyx_v_e = NULL;
          }
          if (PY_MAJOR_VERSION >= 3) {
            __Pyx_XGIVEREF(__pyx_t_10);
            __Pyx_XGIVEREF(__pyx_t_11);
            __Pyx_XGIVEREF(__pyx_t_5);
            __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_5);
          }
          __Pyx_XGIVEREF(__pyx_t_26);
          __Pyx_XGIVEREF(__pyx_t_16);
          __Pyx_XGIVEREF(__pyx_t_9);
          __Pyx_ErrRestore(__pyx_t_26, __pyx_t_16, __pyx_t_9);
          __pyx_t_26 = 0; __pyx_t_16 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_5 = 0;
          __pyx_lineno = __pyx_t_24; __pyx_clineno = __pyx_t_20; __pyx_filename = __pyx_t_27;
          goto __pyx_L5_except_error;
        }
        __pyx_L48:;
      }
      __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
      goto __pyx_L4_exception_handled;
    }
    goto __pyx_L5_except_error;
    __pyx_L5_except_error:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L1_error;
    __pyx_L4_exception_handled:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    __pyx_L10_try_end:;
  }

  /* "src/llfuse/handlers.pxi":335
 *         log.error('fuse_read(): fuse_reply_* failed with %s', strerror(-ret))
 * 
 * cdef void fuse_write (fuse_req_t req, fuse_ino_t ino, const_char *buf,             # <<<<<<<<<<<<<<
 *                       size_t size, off_t off, fuse_file_info *fi) with gil:
 *     cdef int ret
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_XDECREF(__pyx_t_14);
  __Pyx_XDECREF(__pyx_t_19);
  __Pyx_XDECREF(__pyx_t_21);
  __Pyx_XDECREF(__pyx_t_22);
  __Pyx_XDECREF(__pyx_t_23);
  __Pyx_WriteUnraisable("llfuse.capi.fuse_write", __pyx_clineno, __pyx_lineno, __pyx_filename, 0);
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_pbuf);
  __Pyx_XDECREF(__pyx_v_e);
  __Pyx_RefNannyFinishContext();
  #ifdef WITH_THREAD
  PyGILState_Release(__pyx_gilstate_save);
  #endif
}

/* "src/llfuse/handlers.pxi":360
 *             log.error('fuse_write(): fuse_reply_err failed with %s after exception', strerror(-ret))
 * 
 * cdef void fuse_flush (fuse_req_t req, fuse_ino_t ino, fuse_file_info *fi) with gil:             # <<<<<<<<<<<<<<
 *     cdef int ret
 * 
 */

static void __pyx_f_6llfuse_4capi_fuse_flush(fuse_req_t __pyx_v_req, CYTHON_UNUSED fuse_ino_t __pyx_v_ino, struct fuse_file_info *__pyx_v_fi) {
  int __pyx_v_ret;
  PyObject *__pyx_v_e = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  PyObject *__pyx_t_13 = NULL;
  int __pyx_t_14;
  int __pyx_t_15;
  int __pyx_t_16;
  int __pyx_t_17;
  char const *__pyx_t_18;
  PyObject *__pyx_t_19 = NULL;
  PyObject *__pyx_t_20 = NULL;
  PyObject *__pyx_t_21 = NULL;
  Py_ssize_t __pyx_t_22;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  #ifdef WITH_THREAD
  PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure();
  #endif
  __Pyx_RefNannySetupContext("fuse_flush", 0);

  /* "src/llfuse/handlers.pxi":363
 *     cdef int ret
 * 
 *     try:             # <<<<<<<<<<<<<<
 *         with lock:
 *             operations.flush(fi.fh)
 */
  {
    __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);
    __Pyx_XGOTREF(__pyx_t_1);
    __Pyx_XGOTREF(__pyx_t_2);
    __Pyx_XGOTREF(__pyx_t_3);
    /*try:*/ {

      /* "src/llfuse/handlers.pxi":364
 * 
 *     try:
 *         with lock:             # <<<<<<<<<<<<<<
 *             operations.flush(fi.fh)
 *         ret = fuse_reply_err(req, 0)
 */
      /*with:*/ {
        __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_lock); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 364; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_5 = __Pyx_PyObject_LookupSpecial(__pyx_t_4, __pyx_n_s_exit); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 364; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_7 = __Pyx_PyObject_LookupSpecial(__pyx_t_4, __pyx_n_s_enter); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 364; __pyx_clineno = __LINE__; goto __pyx_L11_error;}
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_8 = NULL;
        if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_7))) {
          __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7);
          if (likely(__pyx_t_8)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
            __Pyx_INCREF(__pyx_t_8);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_7, function);
          }
        }
        if (__pyx_t_8) {
          __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_8); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 364; __pyx_clineno = __LINE__; goto __pyx_L11_error;}
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        } else {
          __pyx_t_6 = __Pyx_PyObject_CallNoArg(__pyx_t_7); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 364; __pyx_clineno = __LINE__; goto __pyx_L11_error;}
        }
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        /*try:*/ {
          {
            __Pyx_ExceptionSave(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
            __Pyx_XGOTREF(__pyx_t_9);
            __Pyx_XGOTREF(__pyx_t_10);
            __Pyx_XGOTREF(__pyx_t_11);
            /*try:*/ {

              /* "src/llfuse/handlers.pxi":365
 *     try:
 *         with lock:
 *             operations.flush(fi.fh)             # <<<<<<<<<<<<<<
 *         ret = fuse_reply_err(req, 0)
 *     except FUSEError as e:
 */
              __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_6llfuse_4capi_operations, __pyx_n_s_flush); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 365; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
              __Pyx_GOTREF(__pyx_t_6);
              __pyx_t_7 = __Pyx_PyInt_From_uint64_t(__pyx_v_fi->fh); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 365; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
              __Pyx_GOTREF(__pyx_t_7);
              __pyx_t_8 = NULL;
              if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_6))) {
                __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_6);
                if (likely(__pyx_t_8)) {
                  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
                  __Pyx_INCREF(__pyx_t_8);
                  __Pyx_INCREF(function);
                  __Pyx_DECREF_SET(__pyx_t_6, function);
                }
              }
              if (!__pyx_t_8) {
                __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_7); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 365; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
                __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
                __Pyx_GOTREF(__pyx_t_4);
              } else {
                __pyx_t_12 = PyTuple_New(1+1); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 365; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
                __Pyx_GOTREF(__pyx_t_12);
                PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_t_8); __Pyx_GIVEREF(__pyx_t_8); __pyx_t_8 = NULL;
                PyTuple_SET_ITEM(__pyx_t_12, 0+1, __pyx_t_7);
                __Pyx_GIVEREF(__pyx_t_7);
                __pyx_t_7 = 0;
                __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_12, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 365; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
                __Pyx_GOTREF(__pyx_t_4);
                __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
              }
              __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
              __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
            }
            __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
            __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
            __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
            goto __pyx_L24_try_end;
            __pyx_L17_error:;
            __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
            __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
            __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
            __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
            __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;

            /* "src/llfuse/handlers.pxi":364
 * 
 *     try:
 *         with lock:             # <<<<<<<<<<<<<<
 *             operations.flush(fi.fh)
 *         ret = fuse_reply_err(req, 0)
 */
            /*except:*/ {
              __Pyx_AddTraceback("llfuse.capi.fuse_flush", __pyx_clineno, __pyx_lineno, __pyx_filename);
              if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_6, &__pyx_t_12) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 364; __pyx_clineno = __LINE__; goto __pyx_L19_except_error;}
              __Pyx_GOTREF(__pyx_t_4);
              __Pyx_GOTREF(__pyx_t_6);
              __Pyx_GOTREF(__pyx_t_12);
              __pyx_t_7 = PyTuple_Pack(3, __pyx_t_4, __pyx_t_6, __pyx_t_12); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 364; __pyx_clineno = __LINE__; goto __pyx_L19_except_error;}
              __Pyx_GOTREF(__pyx_t_7);
              __pyx_t_13 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, NULL);
              __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
              __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
              if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 364; __pyx_clineno = __LINE__; goto __pyx_L19_except_error;}
              __Pyx_GOTREF(__pyx_t_13);
              __pyx_t_14 = __Pyx_PyObject_IsTrue(__pyx_t_13);
              __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
              if (__pyx_t_14 < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 364; __pyx_clineno = __LINE__; goto __pyx_L19_except_error;}
              __pyx_t_15 = ((!(__pyx_t_14 != 0)) != 0);
              if (__pyx_t_15) {
                __Pyx_GIVEREF(__pyx_t_4);
                __Pyx_GIVEREF(__pyx_t_6);
                __Pyx_XGIVEREF(__pyx_t_12);
                __Pyx_ErrRestore(__pyx_t_4, __pyx_t_6, __pyx_t_12);
                __pyx_t_4 = 0; __pyx_t_6 = 0; __pyx_t_12 = 0; 
                {__pyx_filename = __pyx_f[0]; __pyx_lineno = 364; __pyx_clineno = __LINE__; goto __pyx_L19_except_error;}
              }
              __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
              __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
              __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
              goto __pyx_L18_exception_handled;
            }
            __pyx_L19_except_error:;
            __Pyx_XGIVEREF(__pyx_t_9);
            __Pyx_XGIVEREF(__pyx_t_10);
            __Pyx_XGIVEREF(__pyx_t_11);
            __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11);
            goto __pyx_L3_error;
            __pyx_L18_exception_handled:;
            __Pyx_XGIVEREF(__pyx_t_9);
            __Pyx_XGIVEREF(__pyx_t_10);
            __Pyx_XGIVEREF(__pyx_t_11);
            __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11);
            __pyx_L24_try_end:;
          }
        }
        /*finally:*/ {
          /*normal exit:*/{
            if (__pyx_t_5) {
              __pyx_t_11 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_tuple__18, NULL);
              __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
              if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 364; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
              __Pyx_GOTREF(__pyx_t_11);
              __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
            }
            goto __pyx_L16;
          }
          __pyx_L16:;
        }
        goto __pyx_L28;
        __pyx_L11_error:;
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        goto __pyx_L3_error;
        __pyx_L28:;
      }

      /* "src/llfuse/handlers.pxi":366
 *         with lock:
 *             operations.flush(fi.fh)
 *         ret = fuse_reply_err(req, 0)             # <<<<<<<<<<<<<<
 *     except FUSEError as e:
 *         ret = fuse_reply_err(req, e.errno)
 */
      __pyx_v_ret = fuse_reply_err(__pyx_v_req, 0);
    }
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    goto __pyx_L10_try_end;
    __pyx_L3_error:;
    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;

    /* "src/llfuse/handlers.pxi":367
 *             operations.flush(fi.fh)
 *         ret = fuse_reply_err(req, 0)
 *     except FUSEError as e:             # <<<<<<<<<<<<<<
 *         ret = fuse_reply_err(req, e.errno)
 *     except BaseException as e:
 */
    __pyx_t_12 = __Pyx_GetModuleGlobalName(__pyx_n_s_FUSEError); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 367; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
    __Pyx_GOTREF(__pyx_t_12);
    __pyx_t_16 = PyErr_ExceptionMatches(__pyx_t_12);
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    if (__pyx_t_16) {
      __Pyx_AddTraceback("llfuse.capi.fuse_flush", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_12, &__pyx_t_6, &__pyx_t_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 367; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
      __Pyx_GOTREF(__pyx_t_12);
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_6);
      __pyx_v_e = __pyx_t_6;
      /*try:*/ {

        /* "src/llfuse/handlers.pxi":368
 *         ret = fuse_reply_err(req, 0)
 *     except FUSEError as e:
 *         ret = fuse_reply_err(req, e.errno)             # <<<<<<<<<<<<<<
 *     except BaseException as e:
 *         ret = handle_exc('flush', e, req)
 */
        __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_e, __pyx_n_s_errno); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 368; __pyx_clineno = __LINE__; goto __pyx_L34_error;}
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_16 = __Pyx_PyInt_As_int(__pyx_t_7); if (unlikely((__pyx_t_16 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 368; __pyx_clineno = __LINE__; goto __pyx_L34_error;}
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __pyx_v_ret = fuse_reply_err(__pyx_v_req, __pyx_t_16);
      }

      /* "src/llfuse/handlers.pxi":367
 *             operations.flush(fi.fh)
 *         ret = fuse_reply_err(req, 0)
 *     except FUSEError as e:             # <<<<<<<<<<<<<<
 *         ret = fuse_reply_err(req, e.errno)
 *     except BaseException as e:
 */
      /*finally:*/ {
        /*normal exit:*/{
          __Pyx_DECREF(__pyx_v_e);
          __pyx_v_e = NULL;
          goto __pyx_L35;
        }
        /*exception exit:*/{
          __pyx_L34_error:;
          __pyx_t_5 = 0; __pyx_t_11 = 0; __pyx_t_10 = 0; __pyx_t_9 = 0; __pyx_t_13 = 0; __pyx_t_19 = 0;
          __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_9, &__pyx_t_13, &__pyx_t_19);
          if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_5, &__pyx_t_11, &__pyx_t_10) < 0)) __Pyx_ErrFetch(&__pyx_t_5, &__pyx_t_11, &__pyx_t_10);
          __Pyx_XGOTREF(__pyx_t_5);
          __Pyx_XGOTREF(__pyx_t_11);
          __Pyx_XGOTREF(__pyx_t_10);
          __Pyx_XGOTREF(__pyx_t_9);
          __Pyx_XGOTREF(__pyx_t_13);
          __Pyx_XGOTREF(__pyx_t_19);
          __pyx_t_16 = __pyx_lineno; __pyx_t_17 = __pyx_clineno; __pyx_t_18 = __pyx_filename;
          {
            __Pyx_DECREF(__pyx_v_e);
            __pyx_v_e = NULL;
          }
          if (PY_MAJOR_VERSION >= 3) {
            __Pyx_XGIVEREF(__pyx_t_9);
            __Pyx_XGIVEREF(__pyx_t_13);
            __Pyx_XGIVEREF(__pyx_t_19);
            __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_13, __pyx_t_19);
          }
          __Pyx_XGIVEREF(__pyx_t_5);
          __Pyx_XGIVEREF(__pyx_t_11);
          __Pyx_XGIVEREF(__pyx_t_10);
          __Pyx_ErrRestore(__pyx_t_5, __pyx_t_11, __pyx_t_10);
          __pyx_t_5 = 0; __pyx_t_11 = 0; __pyx_t_10 = 0; __pyx_t_9 = 0; __pyx_t_13 = 0; __pyx_t_19 = 0;
          __pyx_lineno = __pyx_t_16; __pyx_clineno = __pyx_t_17; __pyx_filename = __pyx_t_18;
          goto __pyx_L5_except_error;
        }
        __pyx_L35:;
      }
      __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      goto __pyx_L4_exception_handled;
    }

    /* "src/llfuse/handlers.pxi":369
 *     except FUSEError as e:
 *         ret = fuse_reply_err(req, e.errno)
 *     except BaseException as e:             # <<<<<<<<<<<<<<
 *         ret = handle_exc('flush', e, req)
 * 
 */
    __pyx_t_17 = PyErr_ExceptionMatches(__pyx_builtin_BaseException);
    if (__pyx_t_17) {
      __Pyx_AddTraceback("llfuse.capi.fuse_flush", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_6, &__pyx_t_12) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 369; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_GOTREF(__pyx_t_12);
      __Pyx_INCREF(__pyx_t_6);
      __pyx_v_e = __pyx_t_6;
      /*try:*/ {

        /* "src/llfuse/handlers.pxi":370
 *         ret = fuse_reply_err(req, e.errno)
 *     except BaseException as e:
 *         ret = handle_exc('flush', e, req)             # <<<<<<<<<<<<<<
 * 
 *     if ret != 0:
 */
        __pyx_v_ret = __pyx_f_6llfuse_4capi_handle_exc(__pyx_k_flush, __pyx_v_e, __pyx_v_req);
      }

      /* "src/llfuse/handlers.pxi":369
 *     except FUSEError as e:
 *         ret = fuse_reply_err(req, e.errno)
 *     except BaseException as e:             # <<<<<<<<<<<<<<
 *         ret = handle_exc('flush', e, req)
 * 
 */
      /*finally:*/ {
        /*normal exit:*/{
          __Pyx_DECREF(__pyx_v_e);
          __pyx_v_e = NULL;
          goto __pyx_L46;
        }
        __pyx_L46:;
      }
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
      goto __pyx_L4_exception_handled;
    }
    goto __pyx_L5_except_error;
    __pyx_L5_except_error:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L1_error;
    __pyx_L4_exception_handled:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    __pyx_L10_try_end:;
  }

  /* "src/llfuse/handlers.pxi":372
 *         ret = handle_exc('flush', e, req)
 * 
 *     if ret != 0:             # <<<<<<<<<<<<<<
 *         log.error('fuse_flush(): fuse_reply_* failed with %s', strerror(-ret))
 * 
 */
  __pyx_t_15 = ((__pyx_v_ret != 0) != 0);
  if (__pyx_t_15) {

    /* "src/llfuse/handlers.pxi":373
 * 
 *     if ret != 0:
 *         log.error('fuse_flush(): fuse_reply_* failed with %s', strerror(-ret))             # <<<<<<<<<<<<<<
 * 
 * cdef void fuse_release (fuse_req_t req, fuse_ino_t ino, fuse_file_info *fi) with gil:
 */
    __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s_log); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 373; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_error); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 373; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_7 = __Pyx_GetModuleGlobalName(__pyx_n_s_strerror); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 373; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_8 = __Pyx_PyInt_From_int((-__pyx_v_ret)); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 373; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_20 = NULL;
    if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_7))) {
      __pyx_t_20 = PyMethod_GET_SELF(__pyx_t_7);
      if (likely(__pyx_t_20)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
        __Pyx_INCREF(__pyx_t_20);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_7, function);
      }
    }
    if (!__pyx_t_20) {
      __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_8); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 373; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_GOTREF(__pyx_t_6);
    } else {
      __pyx_t_21 = PyTuple_New(1+1); if (unlikely(!__pyx_t_21)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 373; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_21);
      PyTuple_SET_ITEM(__pyx_t_21, 0, __pyx_t_20); __Pyx_GIVEREF(__pyx_t_20); __pyx_t_20 = NULL;
      PyTuple_SET_ITEM(__pyx_t_21, 0+1, __pyx_t_8);
      __Pyx_GIVEREF(__pyx_t_8);
      __pyx_t_8 = 0;
      __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_21, NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 373; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
    }
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_t_7 = NULL;
    __pyx_t_22 = 0;
    if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_4);
      if (likely(__pyx_t_7)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
        __Pyx_INCREF(__pyx_t_7);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_4, function);
        __pyx_t_22 = 1;
      }
    }
    __pyx_t_21 = PyTuple_New(2+__pyx_t_22); if (unlikely(!__pyx_t_21)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 373; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_21);
    if (__pyx_t_7) {
      PyTuple_SET_ITEM(__pyx_t_21, 0, __pyx_t_7); __Pyx_GIVEREF(__pyx_t_7); __pyx_t_7 = NULL;
    }
    __Pyx_INCREF(__pyx_kp_u_fuse_flush_fuse_reply__failed_wi);
    PyTuple_SET_ITEM(__pyx_t_21, 0+__pyx_t_22, __pyx_kp_u_fuse_flush_fuse_reply__failed_wi);
    __Pyx_GIVEREF(__pyx_kp_u_fuse_flush_fuse_reply__failed_wi);
    PyTuple_SET_ITEM(__pyx_t_21, 1+__pyx_t_22, __pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_6);
    __pyx_t_6 = 0;
    __pyx_t_12 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_21, NULL); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 373; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_12);
    __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    goto __pyx_L47;
  }
  __pyx_L47:;

  /* "src/llfuse/handlers.pxi":360
 *             log.error('fuse_write(): fuse_reply_err failed with %s after exception', strerror(-ret))
 * 
 * cdef void fuse_flush (fuse_req_t req, fuse_ino_t ino, fuse_file_info *fi) with gil:             # <<<<<<<<<<<<<<
 *     cdef int ret
 * 
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_XDECREF(__pyx_t_20);
  __Pyx_XDECREF(__pyx_t_21);
  __Pyx_WriteUnraisable("llfuse.capi.fuse_flush", __pyx_clineno, __pyx_lineno, __pyx_filename, 0);
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_e);
  __Pyx_RefNannyFinishContext();
  #ifdef WITH_THREAD
  PyGILState_Release(__pyx_gilstate_save);
  #endif
}

/* "src/llfuse/handlers.pxi":375
 *         log.error('fuse_flush(): fuse_reply_* failed with %s', strerror(-ret))
 * 
 * cdef void fuse_release (fuse_req_t req, fuse_ino_t ino, fuse_file_info *fi) with gil:             # <<<<<<<<<<<<<<
 *     cdef int ret
 * 
 */

static void __pyx_f_6llfuse_4capi_fuse_release(fuse_req_t __pyx_v_req, CYTHON_UNUSED fuse_ino_t __pyx_v_ino, struct fuse_file_info *__pyx_v_fi) {
  int __pyx_v_ret;
  PyObject *__pyx_v_e = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  PyObject *__pyx_t_13 = NULL;
  int __pyx_t_14;
  int __pyx_t_15;
  int __pyx_t_16;
  int __pyx_t_17;
  char const *__pyx_t_18;
  PyObject *__pyx_t_19 = NULL;
  PyObject *__pyx_t_20 = NULL;
  PyObject *__pyx_t_21 = NULL;
  Py_ssize_t __pyx_t_22;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  #ifdef WITH_THREAD
  PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure();
  #endif
  __Pyx_RefNannySetupContext("fuse_release", 0);

  /* "src/llfuse/handlers.pxi":378
 *     cdef int ret
 * 
 *     try:             # <<<<<<<<<<<<<<
 *         with lock:
 *             operations.release(fi.fh)
 */
  {
    __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);
    __Pyx_XGOTREF(__pyx_t_1);
    __Pyx_XGOTREF(__pyx_t_2);
    __Pyx_XGOTREF(__pyx_t_3);
    /*try:*/ {

      /* "src/llfuse/handlers.pxi":379
 * 
 *     try:
 *         with lock:             # <<<<<<<<<<<<<<
 *             operations.release(fi.fh)
 *         ret = fuse_reply_err(req, 0)
 */
      /*with:*/ {
        __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_lock); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 379; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_5 = __Pyx_PyObject_LookupSpecial(__pyx_t_4, __pyx_n_s_exit); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 379; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_7 = __Pyx_PyObject_LookupSpecial(__pyx_t_4, __pyx_n_s_enter); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 379; __pyx_clineno = __LINE__; goto __pyx_L11_error;}
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_8 = NULL;
        if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_7))) {
          __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7);
          if (likely(__pyx_t_8)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
            __Pyx_INCREF(__pyx_t_8);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_7, function);
          }
        }
        if (__pyx_t_8) {
          __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_8); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 379; __pyx_clineno = __LINE__; goto __pyx_L11_error;}
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        } else {
          __pyx_t_6 = __Pyx_PyObject_CallNoArg(__pyx_t_7); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 379; __pyx_clineno = __LINE__; goto __pyx_L11_error;}
        }
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        /*try:*/ {
          {
            __Pyx_ExceptionSave(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
            __Pyx_XGOTREF(__pyx_t_9);
            __Pyx_XGOTREF(__pyx_t_10);
            __Pyx_XGOTREF(__pyx_t_11);
            /*try:*/ {

              /* "src/llfuse/handlers.pxi":380
 *     try:
 *         with lock:
 *             operations.release(fi.fh)             # <<<<<<<<<<<<<<
 *         ret = fuse_reply_err(req, 0)
 *     except FUSEError as e:
 */
              __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_6llfuse_4capi_operations, __pyx_n_s_release); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 380; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
              __Pyx_GOTREF(__pyx_t_6);
              __pyx_t_7 = __Pyx_PyInt_From_uint64_t(__pyx_v_fi->fh); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 380; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
              __Pyx_GOTREF(__pyx_t_7);
              __pyx_t_8 = NULL;
              if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_6))) {
                __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_6);
                if (likely(__pyx_t_8)) {
                  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
                  __Pyx_INCREF(__pyx_t_8);
                  __Pyx_INCREF(function);
                  __Pyx_DECREF_SET(__pyx_t_6, function);
                }
              }
              if (!__pyx_t_8) {
                __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_7); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 380; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
                __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
                __Pyx_GOTREF(__pyx_t_4);
              } else {
                __pyx_t_12 = PyTuple_New(1+1); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 380; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
                __Pyx_GOTREF(__pyx_t_12);
                PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_t_8); __Pyx_GIVEREF(__pyx_t_8); __pyx_t_8 = NULL;
                PyTuple_SET_ITEM(__pyx_t_12, 0+1, __pyx_t_7);
                __Pyx_GIVEREF(__pyx_t_7);
                __pyx_t_7 = 0;
                __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_12, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 380; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
                __Pyx_GOTREF(__pyx_t_4);
                __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
              }
              __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
              __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
            }
            __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
            __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
            __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
            goto __pyx_L24_try_end;
            __pyx_L17_error:;
            __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
            __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
            __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
            __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
            __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;

            /* "src/llfuse/handlers.pxi":379
 * 
 *     try:
 *         with lock:             # <<<<<<<<<<<<<<
 *             operations.release(fi.fh)
 *         ret = fuse_reply_err(req, 0)
 */
            /*except:*/ {
              __Pyx_AddTraceback("llfuse.capi.fuse_release", __pyx_clineno, __pyx_lineno, __pyx_filename);
              if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_6, &__pyx_t_12) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 379; __pyx_clineno = __LINE__; goto __pyx_L19_except_error;}
              __Pyx_GOTREF(__pyx_t_4);
              __Pyx_GOTREF(__pyx_t_6);
              __Pyx_GOTREF(__pyx_t_12);
              __pyx_t_7 = PyTuple_Pack(3, __pyx_t_4, __pyx_t_6, __pyx_t_12); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 379; __pyx_clineno = __LINE__; goto __pyx_L19_except_error;}
              __Pyx_GOTREF(__pyx_t_7);
              __pyx_t_13 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, NULL);
              __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
              __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
              if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 379; __pyx_clineno = __LINE__; goto __pyx_L19_except_error;}
              __Pyx_GOTREF(__pyx_t_13);
              __pyx_t_14 = __Pyx_PyObject_IsTrue(__pyx_t_13);
              __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
              if (__pyx_t_14 < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 379; __pyx_clineno = __LINE__; goto __pyx_L19_except_error;}
              __pyx_t_15 = ((!(__pyx_t_14 != 0)) != 0);
              if (__pyx_t_15) {
                __Pyx_GIVEREF(__pyx_t_4);
                __Pyx_GIVEREF(__pyx_t_6);
                __Pyx_XGIVEREF(__pyx_t_12);
                __Pyx_ErrRestore(__pyx_t_4, __pyx_t_6, __pyx_t_12);
                __pyx_t_4 = 0; __pyx_t_6 = 0; __pyx_t_12 = 0; 
                {__pyx_filename = __pyx_f[0]; __pyx_lineno = 379; __pyx_clineno = __LINE__; goto __pyx_L19_except_error;}
              }
              __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
              __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
              __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
              goto __pyx_L18_exception_handled;
            }
            __pyx_L19_except_error:;
            __Pyx_XGIVEREF(__pyx_t_9);
            __Pyx_XGIVEREF(__pyx_t_10);
            __Pyx_XGIVEREF(__pyx_t_11);
            __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11);
            goto __pyx_L3_error;
            __pyx_L18_exception_handled:;
            __Pyx_XGIVEREF(__pyx_t_9);
            __Pyx_XGIVEREF(__pyx_t_10);
            __Pyx_XGIVEREF(__pyx_t_11);
            __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11);
            __pyx_L24_try_end:;
          }
        }
        /*finally:*/ {
          /*normal exit:*/{
            if (__pyx_t_5) {
              __pyx_t_11 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_tuple__19, NULL);
              __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
              if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 379; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
              __Pyx_GOTREF(__pyx_t_11);
              __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
            }
            goto __pyx_L16;
          }
          __pyx_L16:;
        }
        goto __pyx_L28;
        __pyx_L11_error:;
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        goto __pyx_L3_error;
        __pyx_L28:;
      }

      /* "src/llfuse/handlers.pxi":381
 *         with lock:
 *             operations.release(fi.fh)
 *         ret = fuse_reply_err(req, 0)             # <<<<<<<<<<<<<<
 *     except FUSEError as e:
 *         ret = fuse_reply_err(req, e.errno)
 */
      __pyx_v_ret = fuse_reply_err(__pyx_v_req, 0);
    }
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    goto __pyx_L10_try_end;
    __pyx_L3_error:;
    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;

    /* "src/llfuse/handlers.pxi":382
 *             operations.release(fi.fh)
 *         ret = fuse_reply_err(req, 0)
 *     except FUSEError as e:             # <<<<<<<<<<<<<<
 *         ret = fuse_reply_err(req, e.errno)
 *     except BaseException as e:
 */
    __pyx_t_12 = __Pyx_GetModuleGlobalName(__pyx_n_s_FUSEError); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 382; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
    __Pyx_GOTREF(__pyx_t_12);
    __pyx_t_16 = PyErr_ExceptionMatches(__pyx_t_12);
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    if (__pyx_t_16) {
      __Pyx_AddTraceback("llfuse.capi.fuse_release", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_12, &__pyx_t_6, &__pyx_t_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 382; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
      __Pyx_GOTREF(__pyx_t_12);
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_6);
      __pyx_v_e = __pyx_t_6;
      /*try:*/ {

        /* "src/llfuse/handlers.pxi":383
 *         ret = fuse_reply_err(req, 0)
 *     except FUSEError as e:
 *         ret = fuse_reply_err(req, e.errno)             # <<<<<<<<<<<<<<
 *     except BaseException as e:
 *         ret = handle_exc('release', e, req)
 */
        __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_e, __pyx_n_s_errno); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 383; __pyx_clineno = __LINE__; goto __pyx_L34_error;}
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_16 = __Pyx_PyInt_As_int(__pyx_t_7); if (unlikely((__pyx_t_16 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 383; __pyx_clineno = __LINE__; goto __pyx_L34_error;}
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __pyx_v_ret = fuse_reply_err(__pyx_v_req, __pyx_t_16);
      }

      /* "src/llfuse/handlers.pxi":382
 *             operations.release(fi.fh)
 *         ret = fuse_reply_err(req, 0)
 *     except FUSEError as e:             # <<<<<<<<<<<<<<
 *         ret = fuse_reply_err(req, e.errno)
 *     except BaseException as e:
 */
      /*finally:*/ {
        /*normal exit:*/{
          __Pyx_DECREF(__pyx_v_e);
          __pyx_v_e = NULL;
          goto __pyx_L35;
        }
        /*exception exit:*/{
          __pyx_L34_error:;
          __pyx_t_5 = 0; __pyx_t_11 = 0; __pyx_t_10 = 0; __pyx_t_9 = 0; __pyx_t_13 = 0; __pyx_t_19 = 0;
          __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_9, &__pyx_t_13, &__pyx_t_19);
          if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_5, &__pyx_t_11, &__pyx_t_10) < 0)) __Pyx_ErrFetch(&__pyx_t_5, &__pyx_t_11, &__pyx_t_10);
          __Pyx_XGOTREF(__pyx_t_5);
          __Pyx_XGOTREF(__pyx_t_11);
          __Pyx_XGOTREF(__pyx_t_10);
          __Pyx_XGOTREF(__pyx_t_9);
          __Pyx_XGOTREF(__pyx_t_13);
          __Pyx_XGOTREF(__pyx_t_19);
          __pyx_t_16 = __pyx_lineno; __pyx_t_17 = __pyx_clineno; __pyx_t_18 = __pyx_filename;
          {
            __Pyx_DECREF(__pyx_v_e);
            __pyx_v_e = NULL;
          }
          if (PY_MAJOR_VERSION >= 3) {
            __Pyx_XGIVEREF(__pyx_t_9);
            __Pyx_XGIVEREF(__pyx_t_13);
            __Pyx_XGIVEREF(__pyx_t_19);
            __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_13, __pyx_t_19);
          }
          __Pyx_XGIVEREF(__pyx_t_5);
          __Pyx_XGIVEREF(__pyx_t_11);
          __Pyx_XGIVEREF(__pyx_t_10);
          __Pyx_ErrRestore(__pyx_t_5, __pyx_t_11, __pyx_t_10);
          __pyx_t_5 = 0; __pyx_t_11 = 0; __pyx_t_10 = 0; __pyx_t_9 = 0; __pyx_t_13 = 0; __pyx_t_19 = 0;
          __pyx_lineno = __pyx_t_16; __pyx_clineno = __pyx_t_17; __pyx_filename = __pyx_t_18;
          goto __pyx_L5_except_error;
        }
        __pyx_L35:;
      }
      __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      goto __pyx_L4_exception_handled;
    }

    /* "src/llfuse/handlers.pxi":384
 *     except FUSEError as e:
 *         ret = fuse_reply_err(req, e.errno)
 *     except BaseException as e:             # <<<<<<<<<<<<<<
 *         ret = handle_exc('release', e, req)
 * 
 */
    __pyx_t_17 = PyErr_ExceptionMatches(__pyx_builtin_BaseException);
    if (__pyx_t_17) {
      __Pyx_AddTraceback("llfuse.capi.fuse_release", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_6, &__pyx_t_12) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 384; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_GOTREF(__pyx_t_12);
      __Pyx_INCREF(__pyx_t_6);
      __pyx_v_e = __pyx_t_6;
      /*try:*/ {

        /* "src/llfuse/handlers.pxi":385
 *         ret = fuse_reply_err(req, e.errno)
 *     except BaseException as e:
 *         ret = handle_exc('release', e, req)             # <<<<<<<<<<<<<<
 * 
 *     if ret != 0:
 */
        __pyx_v_ret = __pyx_f_6llfuse_4capi_handle_exc(__pyx_k_release, __pyx_v_e, __pyx_v_req);
      }

      /* "src/llfuse/handlers.pxi":384
 *     except FUSEError as e:
 *         ret = fuse_reply_err(req, e.errno)
 *     except BaseException as e:             # <<<<<<<<<<<<<<
 *         ret = handle_exc('release', e, req)
 * 
 */
      /*finally:*/ {
        /*normal exit:*/{
          __Pyx_DECREF(__pyx_v_e);
          __pyx_v_e = NULL;
          goto __pyx_L46;
        }
        __pyx_L46:;
      }
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
      goto __pyx_L4_exception_handled;
    }
    goto __pyx_L5_except_error;
    __pyx_L5_except_error:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L1_error;
    __pyx_L4_exception_handled:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    __pyx_L10_try_end:;
  }

  /* "src/llfuse/handlers.pxi":387
 *         ret = handle_exc('release', e, req)
 * 
 *     if ret != 0:             # <<<<<<<<<<<<<<
 *         log.error('fuse_release(): fuse_reply_* failed with %s', strerror(-ret))
 * 
 */
  __pyx_t_15 = ((__pyx_v_ret != 0) != 0);
  if (__pyx_t_15) {

    /* "src/llfuse/handlers.pxi":388
 * 
 *     if ret != 0:
 *         log.error('fuse_release(): fuse_reply_* failed with %s', strerror(-ret))             # <<<<<<<<<<<<<<
 * 
 * cdef void fuse_fsync (fuse_req_t req, fuse_ino_t ino, int datasync,
 */
    __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s_log); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 388; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_error); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 388; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_7 = __Pyx_GetModuleGlobalName(__pyx_n_s_strerror); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 388; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_8 = __Pyx_PyInt_From_int((-__pyx_v_ret)); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 388; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_20 = NULL;
    if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_7))) {
      __pyx_t_20 = PyMethod_GET_SELF(__pyx_t_7);
      if (likely(__pyx_t_20)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
        __Pyx_INCREF(__pyx_t_20);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_7, function);
      }
    }
    if (!__pyx_t_20) {
      __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_8); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 388; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_GOTREF(__pyx_t_6);
    } else {
      __pyx_t_21 = PyTuple_New(1+1); if (unlikely(!__pyx_t_21)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 388; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_21);
      PyTuple_SET_ITEM(__pyx_t_21, 0, __pyx_t_20); __Pyx_GIVEREF(__pyx_t_20); __pyx_t_20 = NULL;
      PyTuple_SET_ITEM(__pyx_t_21, 0+1, __pyx_t_8);
      __Pyx_GIVEREF(__pyx_t_8);
      __pyx_t_8 = 0;
      __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_21, NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 388; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
    }
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_t_7 = NULL;
    __pyx_t_22 = 0;
    if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_4);
      if (likely(__pyx_t_7)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
        __Pyx_INCREF(__pyx_t_7);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_4, function);
        __pyx_t_22 = 1;
      }
    }
    __pyx_t_21 = PyTuple_New(2+__pyx_t_22); if (unlikely(!__pyx_t_21)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 388; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_21);
    if (__pyx_t_7) {
      PyTuple_SET_ITEM(__pyx_t_21, 0, __pyx_t_7); __Pyx_GIVEREF(__pyx_t_7); __pyx_t_7 = NULL;
    }
    __Pyx_INCREF(__pyx_kp_u_fuse_release_fuse_reply__failed);
    PyTuple_SET_ITEM(__pyx_t_21, 0+__pyx_t_22, __pyx_kp_u_fuse_release_fuse_reply__failed);
    __Pyx_GIVEREF(__pyx_kp_u_fuse_release_fuse_reply__failed);
    PyTuple_SET_ITEM(__pyx_t_21, 1+__pyx_t_22, __pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_6);
    __pyx_t_6 = 0;
    __pyx_t_12 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_21, NULL); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 388; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_12);
    __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    goto __pyx_L47;
  }
  __pyx_L47:;

  /* "src/llfuse/handlers.pxi":375
 *         log.error('fuse_flush(): fuse_reply_* failed with %s', strerror(-ret))
 * 
 * cdef void fuse_release (fuse_req_t req, fuse_ino_t ino, fuse_file_info *fi) with gil:             # <<<<<<<<<<<<<<
 *     cdef int ret
 * 
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_XDECREF(__pyx_t_20);
  __Pyx_XDECREF(__pyx_t_21);
  __Pyx_WriteUnraisable("llfuse.capi.fuse_release", __pyx_clineno, __pyx_lineno, __pyx_filename, 0);
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_e);
  __Pyx_RefNannyFinishContext();
  #ifdef WITH_THREAD
  PyGILState_Release(__pyx_gilstate_save);
  #endif
}

/* "src/llfuse/handlers.pxi":390
 *         log.error('fuse_release(): fuse_reply_* failed with %s', strerror(-ret))
 * 
 * cdef void fuse_fsync (fuse_req_t req, fuse_ino_t ino, int datasync,             # <<<<<<<<<<<<<<
 *                       fuse_file_info *fi) with gil:
 *     cdef int ret
 */

static void __pyx_f_6llfuse_4capi_fuse_fsync(fuse_req_t __pyx_v_req, CYTHON_UNUSED fuse_ino_t __pyx_v_ino, int __pyx_v_datasync, struct fuse_file_info *__pyx_v_fi) {
  int __pyx_v_ret;
  PyObject *__pyx_v_e = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  Py_ssize_t __pyx_t_13;
  PyObject *__pyx_t_14 = NULL;
  PyObject *__pyx_t_15 = NULL;
  int __pyx_t_16;
  int __pyx_t_17;
  int __pyx_t_18;
  int __pyx_t_19;
  char const *__pyx_t_20;
  PyObject *__pyx_t_21 = NULL;
  PyObject *__pyx_t_22 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  #ifdef WITH_THREAD
  PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure();
  #endif
  __Pyx_RefNannySetupContext("fuse_fsync", 0);

  /* "src/llfuse/handlers.pxi":394
 *     cdef int ret
 * 
 *     try:             # <<<<<<<<<<<<<<
 *         with lock:
 *             operations.fsync(fi.fh, datasync != 0)
 */
  {
    __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);
    __Pyx_XGOTREF(__pyx_t_1);
    __Pyx_XGOTREF(__pyx_t_2);
    __Pyx_XGOTREF(__pyx_t_3);
    /*try:*/ {

      /* "src/llfuse/handlers.pxi":395
 * 
 *     try:
 *         with lock:             # <<<<<<<<<<<<<<
 *             operations.fsync(fi.fh, datasync != 0)
 *         ret = fuse_reply_err(req, 0)
 */
      /*with:*/ {
        __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_lock); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 395; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_5 = __Pyx_PyObject_LookupSpecial(__pyx_t_4, __pyx_n_s_exit); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 395; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_7 = __Pyx_PyObject_LookupSpecial(__pyx_t_4, __pyx_n_s_enter); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 395; __pyx_clineno = __LINE__; goto __pyx_L11_error;}
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_8 = NULL;
        if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_7))) {
          __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7);
          if (likely(__pyx_t_8)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
            __Pyx_INCREF(__pyx_t_8);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_7, function);
          }
        }
        if (__pyx_t_8) {
          __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_8); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 395; __pyx_clineno = __LINE__; goto __pyx_L11_error;}
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        } else {
          __pyx_t_6 = __Pyx_PyObject_CallNoArg(__pyx_t_7); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 395; __pyx_clineno = __LINE__; goto __pyx_L11_error;}
        }
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        /*try:*/ {
          {
            __Pyx_ExceptionSave(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
            __Pyx_XGOTREF(__pyx_t_9);
            __Pyx_XGOTREF(__pyx_t_10);
            __Pyx_XGOTREF(__pyx_t_11);
            /*try:*/ {

              /* "src/llfuse/handlers.pxi":396
 *     try:
 *         with lock:
 *             operations.fsync(fi.fh, datasync != 0)             # <<<<<<<<<<<<<<
 *         ret = fuse_reply_err(req, 0)
 *     except FUSEError as e:
 */
              __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_6llfuse_4capi_operations, __pyx_n_s_fsync); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 396; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
              __Pyx_GOTREF(__pyx_t_6);
              __pyx_t_7 = __Pyx_PyInt_From_uint64_t(__pyx_v_fi->fh); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 396; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
              __Pyx_GOTREF(__pyx_t_7);
              __pyx_t_8 = __Pyx_PyBool_FromLong((__pyx_v_datasync != 0)); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 396; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
              __Pyx_GOTREF(__pyx_t_8);
              __pyx_t_12 = NULL;
              __pyx_t_13 = 0;
              if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_6))) {
                __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_6);
                if (likely(__pyx_t_12)) {
                  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
                  __Pyx_INCREF(__pyx_t_12);
                  __Pyx_INCREF(function);
                  __Pyx_DECREF_SET(__pyx_t_6, function);
                  __pyx_t_13 = 1;
                }
              }
              __pyx_t_14 = PyTuple_New(2+__pyx_t_13); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 396; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
              __Pyx_GOTREF(__pyx_t_14);
              if (__pyx_t_12) {
                PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_12); __Pyx_GIVEREF(__pyx_t_12); __pyx_t_12 = NULL;
              }
              PyTuple_SET_ITEM(__pyx_t_14, 0+__pyx_t_13, __pyx_t_7);
              __Pyx_GIVEREF(__pyx_t_7);
              PyTuple_SET_ITEM(__pyx_t_14, 1+__pyx_t_13, __pyx_t_8);
              __Pyx_GIVEREF(__pyx_t_8);
              __pyx_t_7 = 0;
              __pyx_t_8 = 0;
              __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_14, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 396; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
              __Pyx_GOTREF(__pyx_t_4);
              __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
              __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
              __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
            }
            __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
            __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
            __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
            goto __pyx_L24_try_end;
            __pyx_L17_error:;
            __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
            __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
            __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
            __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
            __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
            __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;

            /* "src/llfuse/handlers.pxi":395
 * 
 *     try:
 *         with lock:             # <<<<<<<<<<<<<<
 *             operations.fsync(fi.fh, datasync != 0)
 *         ret = fuse_reply_err(req, 0)
 */
            /*except:*/ {
              __Pyx_AddTraceback("llfuse.capi.fuse_fsync", __pyx_clineno, __pyx_lineno, __pyx_filename);
              if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_6, &__pyx_t_14) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 395; __pyx_clineno = __LINE__; goto __pyx_L19_except_error;}
              __Pyx_GOTREF(__pyx_t_4);
              __Pyx_GOTREF(__pyx_t_6);
              __Pyx_GOTREF(__pyx_t_14);
              __pyx_t_8 = PyTuple_Pack(3, __pyx_t_4, __pyx_t_6, __pyx_t_14); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 395; __pyx_clineno = __LINE__; goto __pyx_L19_except_error;}
              __Pyx_GOTREF(__pyx_t_8);
              __pyx_t_15 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_8, NULL);
              __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
              __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
              if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 395; __pyx_clineno = __LINE__; goto __pyx_L19_except_error;}
              __Pyx_GOTREF(__pyx_t_15);
              __pyx_t_16 = __Pyx_PyObject_IsTrue(__pyx_t_15);
              __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
              if (__pyx_t_16 < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 395; __pyx_clineno = __LINE__; goto __pyx_L19_except_error;}
              __pyx_t_17 = ((!(__pyx_t_16 != 0)) != 0);
              if (__pyx_t_17) {
                __Pyx_GIVEREF(__pyx_t_4);
                __Pyx_GIVEREF(__pyx_t_6);
                __Pyx_XGIVEREF(__pyx_t_14);
                __Pyx_ErrRestore(__pyx_t_4, __pyx_t_6, __pyx_t_14);
                __pyx_t_4 = 0; __pyx_t_6 = 0; __pyx_t_14 = 0; 
                {__pyx_filename = __pyx_f[0]; __pyx_lineno = 395; __pyx_clineno = __LINE__; goto __pyx_L19_except_error;}
              }
              __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
              __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
              __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
              goto __pyx_L18_exception_handled;
            }
            __pyx_L19_except_error:;
            __Pyx_XGIVEREF(__pyx_t_9);
            __Pyx_XGIVEREF(__pyx_t_10);
            __Pyx_XGIVEREF(__pyx_t_11);
            __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11);
            goto __pyx_L3_error;
            __pyx_L18_exception_handled:;
            __Pyx_XGIVEREF(__pyx_t_9);
            __Pyx_XGIVEREF(__pyx_t_10);
            __Pyx_XGIVEREF(__pyx_t_11);
            __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11);
            __pyx_L24_try_end:;
          }
        }
        /*finally:*/ {
          /*normal exit:*/{
            if (__pyx_t_5) {
              __pyx_t_11 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_tuple__20, NULL);
              __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
              if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 395; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
              __Pyx_GOTREF(__pyx_t_11);
              __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
            }
            goto __pyx_L16;
          }
          __pyx_L16:;
        }
        goto __pyx_L28;
        __pyx_L11_error:;
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        goto __pyx_L3_error;
        __pyx_L28:;
      }

      /* "src/llfuse/handlers.pxi":397
 *         with lock:
 *             operations.fsync(fi.fh, datasync != 0)
 *         ret = fuse_reply_err(req, 0)             # <<<<<<<<<<<<<<
 *     except FUSEError as e:
 *         ret = fuse_reply_err(req, e.errno)
 */
      __pyx_v_ret = fuse_reply_err(__pyx_v_req, 0);
    }
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    goto __pyx_L10_try_end;
    __pyx_L3_error:;
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;

    /* "src/llfuse/handlers.pxi":398
 *             operations.fsync(fi.fh, datasync != 0)
 *         ret = fuse_reply_err(req, 0)
 *     except FUSEError as e:             # <<<<<<<<<<<<<<
 *         ret = fuse_reply_err(req, e.errno)
 *     except BaseException as e:
 */
    __pyx_t_14 = __Pyx_GetModuleGlobalName(__pyx_n_s_FUSEError); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 398; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
    __Pyx_GOTREF(__pyx_t_14);
    __pyx_t_18 = PyErr_ExceptionMatches(__pyx_t_14);
    __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
    if (__pyx_t_18) {
      __Pyx_AddTraceback("llfuse.capi.fuse_fsync", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_14, &__pyx_t_6, &__pyx_t_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 398; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
      __Pyx_GOTREF(__pyx_t_14);
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_6);
      __pyx_v_e = __pyx_t_6;
      /*try:*/ {

        /* "src/llfuse/handlers.pxi":399
 *         ret = fuse_reply_err(req, 0)
 *     except FUSEError as e:
 *         ret = fuse_reply_err(req, e.errno)             # <<<<<<<<<<<<<<
 *     except BaseException as e:
 *         ret = handle_exc('fsync', e, req)
 */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_e, __pyx_n_s_errno); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 399; __pyx_clineno = __LINE__; goto __pyx_L34_error;}
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_18 = __Pyx_PyInt_As_int(__pyx_t_8); if (unlikely((__pyx_t_18 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 399; __pyx_clineno = __LINE__; goto __pyx_L34_error;}
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __pyx_v_ret = fuse_reply_err(__pyx_v_req, __pyx_t_18);
      }

      /* "src/llfuse/handlers.pxi":398
 *             operations.fsync(fi.fh, datasync != 0)
 *         ret = fuse_reply_err(req, 0)
 *     except FUSEError as e:             # <<<<<<<<<<<<<<
 *         ret = fuse_reply_err(req, e.errno)
 *     except BaseException as e:
 */
      /*finally:*/ {
        /*normal exit:*/{
          __Pyx_DECREF(__pyx_v_e);
          __pyx_v_e = NULL;
          goto __pyx_L35;
        }
        /*exception exit:*/{
          __pyx_L34_error:;
          __pyx_t_5 = 0; __pyx_t_11 = 0; __pyx_t_10 = 0; __pyx_t_9 = 0; __pyx_t_15 = 0; __pyx_t_21 = 0;
          __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
          if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_9, &__pyx_t_15, &__pyx_t_21);
          if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_5, &__pyx_t_11, &__pyx_t_10) < 0)) __Pyx_ErrFetch(&__pyx_t_5, &__pyx_t_11, &__pyx_t_10);
          __Pyx_XGOTREF(__pyx_t_5);
          __Pyx_XGOTREF(__pyx_t_11);
          __Pyx_XGOTREF(__pyx_t_10);
          __Pyx_XGOTREF(__pyx_t_9);
          __Pyx_XGOTREF(__pyx_t_15);
          __Pyx_XGOTREF(__pyx_t_21);
          __pyx_t_18 = __pyx_lineno; __pyx_t_19 = __pyx_clineno; __pyx_t_20 = __pyx_filename;
          {
            __Pyx_DECREF(__pyx_v_e);
            __pyx_v_e = NULL;
          }
          if (PY_MAJOR_VERSION >= 3) {
            __Pyx_XGIVEREF(__pyx_t_9);
            __Pyx_XGIVEREF(__pyx_t_15);
            __Pyx_XGIVEREF(__pyx_t_21);
            __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_15, __pyx_t_21);
          }
          __Pyx_XGIVEREF(__pyx_t_5);
          __Pyx_XGIVEREF(__pyx_t_11);
          __Pyx_XGIVEREF(__pyx_t_10);
          __Pyx_ErrRestore(__pyx_t_5, __pyx_t_11, __pyx_t_10);
          __pyx_t_5 = 0; __pyx_t_11 = 0; __pyx_t_10 = 0; __pyx_t_9 = 0; __pyx_t_15 = 0; __pyx_t_21 = 0;
          __pyx_lineno = __pyx_t_18; __pyx_clineno = __pyx_t_19; __pyx_filename = __pyx_t_20;
          goto __pyx_L5_except_error;
        }
        __pyx_L35:;
      }
      __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      goto __pyx_L4_exception_handled;
    }

    /* "src/llfuse/handlers.pxi":400
 *     except FUSEError as e:
 *         ret = fuse_reply_err(req, e.errno)
 *     except BaseException as e:             # <<<<<<<<<<<<<<
 *         ret = handle_exc('fsync', e, req)
 * 
 */
    __pyx_t_19 = PyErr_ExceptionMatches(__pyx_builtin_BaseException);
    if (__pyx_t_19) {
      __Pyx_AddTraceback("llfuse.capi.fuse_fsync", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_6, &__pyx_t_14) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 400; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_GOTREF(__pyx_t_14);
      __Pyx_INCREF(__pyx_t_6);
      __pyx_v_e = __pyx_t_6;
      /*try:*/ {

        /* "src/llfuse/handlers.pxi":401
 *         ret = fuse_reply_err(req, e.errno)
 *     except BaseException as e:
 *         ret = handle_exc('fsync', e, req)             # <<<<<<<<<<<<<<
 * 
 *     if ret != 0:
 */
        __pyx_v_ret = __pyx_f_6llfuse_4capi_handle_exc(__pyx_k_fsync, __pyx_v_e, __pyx_v_req);
      }

      /* "src/llfuse/handlers.pxi":400
 *     except FUSEError as e:
 *         ret = fuse_reply_err(req, e.errno)
 *     except BaseException as e:             # <<<<<<<<<<<<<<
 *         ret = handle_exc('fsync', e, req)
 * 
 */
      /*finally:*/ {
        /*normal exit:*/{
          __Pyx_DECREF(__pyx_v_e);
          __pyx_v_e = NULL;
          goto __pyx_L46;
        }
        __pyx_L46:;
      }
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
      goto __pyx_L4_exception_handled;
    }
    goto __pyx_L5_except_error;
    __pyx_L5_except_error:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L1_error;
    __pyx_L4_exception_handled:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    __pyx_L10_try_end:;
  }

  /* "src/llfuse/handlers.pxi":403
 *         ret = handle_exc('fsync', e, req)
 * 
 *     if ret != 0:             # <<<<<<<<<<<<<<
 *         log.error('fuse_fsync(): fuse_reply_* failed with %s', strerror(-ret))
 * 
 */
  __pyx_t_17 = ((__pyx_v_ret != 0) != 0);
  if (__pyx_t_17) {

    /* "src/llfuse/handlers.pxi":404
 * 
 *     if ret != 0:
 *         log.error('fuse_fsync(): fuse_reply_* failed with %s', strerror(-ret))             # <<<<<<<<<<<<<<
 * 
 * cdef void fuse_opendir (fuse_req_t req, fuse_ino_t ino, fuse_file_info *fi) with gil:
 */
    __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s_log); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 404; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_error); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 404; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_8 = __Pyx_GetModuleGlobalName(__pyx_n_s_strerror); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 404; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_7 = __Pyx_PyInt_From_int((-__pyx_v_ret)); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 404; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_12 = NULL;
    if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_8))) {
      __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_8);
      if (likely(__pyx_t_12)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
        __Pyx_INCREF(__pyx_t_12);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_8, function);
      }
    }
    if (!__pyx_t_12) {
      __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_7); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 404; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_GOTREF(__pyx_t_6);
    } else {
      __pyx_t_22 = PyTuple_New(1+1); if (unlikely(!__pyx_t_22)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 404; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_22);
      PyTuple_SET_ITEM(__pyx_t_22, 0, __pyx_t_12); __Pyx_GIVEREF(__pyx_t_12); __pyx_t_12 = NULL;
      PyTuple_SET_ITEM(__pyx_t_22, 0+1, __pyx_t_7);
      __Pyx_GIVEREF(__pyx_t_7);
      __pyx_t_7 = 0;
      __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_22, NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 404; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
    }
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __pyx_t_8 = NULL;
    __pyx_t_13 = 0;
    if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_4);
      if (likely(__pyx_t_8)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
        __Pyx_INCREF(__pyx_t_8);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_4, function);
        __pyx_t_13 = 1;
      }
    }
    __pyx_t_22 = PyTuple_New(2+__pyx_t_13); if (unlikely(!__pyx_t_22)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 404; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_22);
    if (__pyx_t_8) {
      PyTuple_SET_ITEM(__pyx_t_22, 0, __pyx_t_8); __Pyx_GIVEREF(__pyx_t_8); __pyx_t_8 = NULL;
    }
    __Pyx_INCREF(__pyx_kp_u_fuse_fsync_fuse_reply__failed_wi);
    PyTuple_SET_ITEM(__pyx_t_22, 0+__pyx_t_13, __pyx_kp_u_fuse_fsync_fuse_reply__failed_wi);
    __Pyx_GIVEREF(__pyx_kp_u_fuse_fsync_fuse_reply__failed_wi);
    PyTuple_SET_ITEM(__pyx_t_22, 1+__pyx_t_13, __pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_6);
    __pyx_t_6 = 0;
    __pyx_t_14 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_22, NULL); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 404; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_14);
    __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
    goto __pyx_L47;
  }
  __pyx_L47:;

  /* "src/llfuse/handlers.pxi":390
 *         log.error('fuse_release(): fuse_reply_* failed with %s', strerror(-ret))
 * 
 * cdef void fuse_fsync (fuse_req_t req, fuse_ino_t ino, int datasync,             # <<<<<<<<<<<<<<
 *                       fuse_file_info *fi) with gil:
 *     cdef int ret
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_XDECREF(__pyx_t_14);
  __Pyx_XDECREF(__pyx_t_22);
  __Pyx_WriteUnraisable("llfuse.capi.fuse_fsync", __pyx_clineno, __pyx_lineno, __pyx_filename, 0);
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_e);
  __Pyx_RefNannyFinishContext();
  #ifdef WITH_THREAD
  PyGILState_Release(__pyx_gilstate_save);
  #endif
}

/* "src/llfuse/handlers.pxi":406
 *         log.error('fuse_fsync(): fuse_reply_* failed with %s', strerror(-ret))
 * 
 * cdef void fuse_opendir (fuse_req_t req, fuse_ino_t ino, fuse_file_info *fi) with gil:             # <<<<<<<<<<<<<<
 *     cdef int ret
 * 
 */

static void __pyx_f_6llfuse_4capi_fuse_opendir(fuse_req_t __pyx_v_req, fuse_ino_t __pyx_v_ino, struct fuse_file_info *__pyx_v_fi) {
  int __pyx_v_ret;
  PyObject *__pyx_v_e = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  uint64_t __pyx_t_13;
  PyObject *__pyx_t_14 = NULL;
  int __pyx_t_15;
  int __pyx_t_16;
  int __pyx_t_17;
  int __pyx_t_18;
  char const *__pyx_t_19;
  PyObject *__pyx_t_20 = NULL;
  PyObject *__pyx_t_21 = NULL;
  PyObject *__pyx_t_22 = NULL;
  Py_ssize_t __pyx_t_23;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  #ifdef WITH_THREAD
  PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure();
  #endif
  __Pyx_RefNannySetupContext("fuse_opendir", 0);

  /* "src/llfuse/handlers.pxi":409
 *     cdef int ret
 * 
 *     try:             # <<<<<<<<<<<<<<
 *         with lock:
 *             fi.fh = operations.opendir(ino)
 */
  {
    __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);
    __Pyx_XGOTREF(__pyx_t_1);
    __Pyx_XGOTREF(__pyx_t_2);
    __Pyx_XGOTREF(__pyx_t_3);
    /*try:*/ {

      /* "src/llfuse/handlers.pxi":410
 * 
 *     try:
 *         with lock:             # <<<<<<<<<<<<<<
 *             fi.fh = operations.opendir(ino)
 * 
 */
      /*with:*/ {
        __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_lock); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 410; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_5 = __Pyx_PyObject_LookupSpecial(__pyx_t_4, __pyx_n_s_exit); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 410; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_7 = __Pyx_PyObject_LookupSpecial(__pyx_t_4, __pyx_n_s_enter); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 410; __pyx_clineno = __LINE__; goto __pyx_L11_error;}
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_8 = NULL;
        if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_7))) {
          __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7);
          if (likely(__pyx_t_8)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
            __Pyx_INCREF(__pyx_t_8);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_7, function);
          }
        }
        if (__pyx_t_8) {
          __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_8); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 410; __pyx_clineno = __LINE__; goto __pyx_L11_error;}
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        } else {
          __pyx_t_6 = __Pyx_PyObject_CallNoArg(__pyx_t_7); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 410; __pyx_clineno = __LINE__; goto __pyx_L11_error;}
        }
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        /*try:*/ {
          {
            __Pyx_ExceptionSave(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
            __Pyx_XGOTREF(__pyx_t_9);
            __Pyx_XGOTREF(__pyx_t_10);
            __Pyx_XGOTREF(__pyx_t_11);
            /*try:*/ {

              /* "src/llfuse/handlers.pxi":411
 *     try:
 *         with lock:
 *             fi.fh = operations.opendir(ino)             # <<<<<<<<<<<<<<
 * 
 *         ret = fuse_reply_open(req, fi)
 */
              __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_6llfuse_4capi_operations, __pyx_n_s_opendir); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 411; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
              __Pyx_GOTREF(__pyx_t_6);
              __pyx_t_7 = __Pyx_PyInt_From_fuse_ino_t(__pyx_v_ino); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 411; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
              __Pyx_GOTREF(__pyx_t_7);
              __pyx_t_8 = NULL;
              if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_6))) {
                __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_6);
                if (likely(__pyx_t_8)) {
                  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
                  __Pyx_INCREF(__pyx_t_8);
                  __Pyx_INCREF(function);
                  __Pyx_DECREF_SET(__pyx_t_6, function);
                }
              }
              if (!__pyx_t_8) {
                __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_7); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 411; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
                __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
                __Pyx_GOTREF(__pyx_t_4);
              } else {
                __pyx_t_12 = PyTuple_New(1+1); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 411; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
                __Pyx_GOTREF(__pyx_t_12);
                PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_t_8); __Pyx_GIVEREF(__pyx_t_8); __pyx_t_8 = NULL;
                PyTuple_SET_ITEM(__pyx_t_12, 0+1, __pyx_t_7);
                __Pyx_GIVEREF(__pyx_t_7);
                __pyx_t_7 = 0;
                __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_12, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 411; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
                __Pyx_GOTREF(__pyx_t_4);
                __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
              }
              __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
              __pyx_t_13 = __Pyx_PyInt_As_uint64_t(__pyx_t_4); if (unlikely((__pyx_t_13 == (uint64_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 411; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
              __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
              __pyx_v_fi->fh = __pyx_t_13;
            }
            __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
            __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
            __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
            goto __pyx_L24_try_end;
            __pyx_L17_error:;
            __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
            __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
            __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
            __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
            __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;

            /* "src/llfuse/handlers.pxi":410
 * 
 *     try:
 *         with lock:             # <<<<<<<<<<<<<<
 *             fi.fh = operations.opendir(ino)
 * 
 */
            /*except:*/ {
              __Pyx_AddTraceback("llfuse.capi.fuse_opendir", __pyx_clineno, __pyx_lineno, __pyx_filename);
              if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_6, &__pyx_t_12) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 410; __pyx_clineno = __LINE__; goto __pyx_L19_except_error;}
              __Pyx_GOTREF(__pyx_t_4);
              __Pyx_GOTREF(__pyx_t_6);
              __Pyx_GOTREF(__pyx_t_12);
              __pyx_t_7 = PyTuple_Pack(3, __pyx_t_4, __pyx_t_6, __pyx_t_12); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 410; __pyx_clineno = __LINE__; goto __pyx_L19_except_error;}
              __Pyx_GOTREF(__pyx_t_7);
              __pyx_t_14 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, NULL);
              __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
              __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
              if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 410; __pyx_clineno = __LINE__; goto __pyx_L19_except_error;}
              __Pyx_GOTREF(__pyx_t_14);
              __pyx_t_15 = __Pyx_PyObject_IsTrue(__pyx_t_14);
              __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
              if (__pyx_t_15 < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 410; __pyx_clineno = __LINE__; goto __pyx_L19_except_error;}
              __pyx_t_16 = ((!(__pyx_t_15 != 0)) != 0);
              if (__pyx_t_16) {
                __Pyx_GIVEREF(__pyx_t_4);
                __Pyx_GIVEREF(__pyx_t_6);
                __Pyx_XGIVEREF(__pyx_t_12);
                __Pyx_ErrRestore(__pyx_t_4, __pyx_t_6, __pyx_t_12);
                __pyx_t_4 = 0; __pyx_t_6 = 0; __pyx_t_12 = 0; 
                {__pyx_filename = __pyx_f[0]; __pyx_lineno = 410; __pyx_clineno = __LINE__; goto __pyx_L19_except_error;}
              }
              __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
              __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
              __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
              goto __pyx_L18_exception_handled;
            }
            __pyx_L19_except_error:;
            __Pyx_XGIVEREF(__pyx_t_9);
            __Pyx_XGIVEREF(__pyx_t_10);
            __Pyx_XGIVEREF(__pyx_t_11);
            __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11);
            goto __pyx_L3_error;
            __pyx_L18_exception_handled:;
            __Pyx_XGIVEREF(__pyx_t_9);
            __Pyx_XGIVEREF(__pyx_t_10);
            __Pyx_XGIVEREF(__pyx_t_11);
            __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11);
            __pyx_L24_try_end:;
          }
        }
        /*finally:*/ {
          /*normal exit:*/{
            if (__pyx_t_5) {
              __pyx_t_11 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_tuple__21, NULL);
              __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
              if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 410; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
              __Pyx_GOTREF(__pyx_t_11);
              __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
            }
            goto __pyx_L16;
          }
          __pyx_L16:;
        }
        goto __pyx_L28;
        __pyx_L11_error:;
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        goto __pyx_L3_error;
        __pyx_L28:;
      }

      /* "src/llfuse/handlers.pxi":413
 *             fi.fh = operations.opendir(ino)
 * 
 *         ret = fuse_reply_open(req, fi)             # <<<<<<<<<<<<<<
 *     except FUSEError as e:
 *         ret = fuse_reply_err(req, e.errno)
 */
      __pyx_v_ret = fuse_reply_open(__pyx_v_req, __pyx_v_fi);
    }
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    goto __pyx_L10_try_end;
    __pyx_L3_error:;
    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;

    /* "src/llfuse/handlers.pxi":414
 * 
 *         ret = fuse_reply_open(req, fi)
 *     except FUSEError as e:             # <<<<<<<<<<<<<<
 *         ret = fuse_reply_err(req, e.errno)
 *     except BaseException as e:
 */
    __pyx_t_12 = __Pyx_GetModuleGlobalName(__pyx_n_s_FUSEError); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 414; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
    __Pyx_GOTREF(__pyx_t_12);
    __pyx_t_17 = PyErr_ExceptionMatches(__pyx_t_12);
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    if (__pyx_t_17) {
      __Pyx_AddTraceback("llfuse.capi.fuse_opendir", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_12, &__pyx_t_6, &__pyx_t_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 414; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
      __Pyx_GOTREF(__pyx_t_12);
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_6);
      __pyx_v_e = __pyx_t_6;
      /*try:*/ {

        /* "src/llfuse/handlers.pxi":415
 *         ret = fuse_reply_open(req, fi)
 *     except FUSEError as e:
 *         ret = fuse_reply_err(req, e.errno)             # <<<<<<<<<<<<<<
 *     except BaseException as e:
 *         ret = handle_exc('opendir', e, req)
 */
        __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_e, __pyx_n_s_errno); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 415; __pyx_clineno = __LINE__; goto __pyx_L34_error;}
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_17 = __Pyx_PyInt_As_int(__pyx_t_7); if (unlikely((__pyx_t_17 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 415; __pyx_clineno = __LINE__; goto __pyx_L34_error;}
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __pyx_v_ret = fuse_reply_err(__pyx_v_req, __pyx_t_17);
      }

      /* "src/llfuse/handlers.pxi":414
 * 
 *         ret = fuse_reply_open(req, fi)
 *     except FUSEError as e:             # <<<<<<<<<<<<<<
 *         ret = fuse_reply_err(req, e.errno)
 *     except BaseException as e:
 */
      /*finally:*/ {
        /*normal exit:*/{
          __Pyx_DECREF(__pyx_v_e);
          __pyx_v_e = NULL;
          goto __pyx_L35;
        }
        /*exception exit:*/{
          __pyx_L34_error:;
          __pyx_t_5 = 0; __pyx_t_11 = 0; __pyx_t_10 = 0; __pyx_t_9 = 0; __pyx_t_14 = 0; __pyx_t_20 = 0;
          __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_9, &__pyx_t_14, &__pyx_t_20);
          if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_5, &__pyx_t_11, &__pyx_t_10) < 0)) __Pyx_ErrFetch(&__pyx_t_5, &__pyx_t_11, &__pyx_t_10);
          __Pyx_XGOTREF(__pyx_t_5);
          __Pyx_XGOTREF(__pyx_t_11);
          __Pyx_XGOTREF(__pyx_t_10);
          __Pyx_XGOTREF(__pyx_t_9);
          __Pyx_XGOTREF(__pyx_t_14);
          __Pyx_XGOTREF(__pyx_t_20);
          __pyx_t_17 = __pyx_lineno; __pyx_t_18 = __pyx_clineno; __pyx_t_19 = __pyx_filename;
          {
            __Pyx_DECREF(__pyx_v_e);
            __pyx_v_e = NULL;
          }
          if (PY_MAJOR_VERSION >= 3) {
            __Pyx_XGIVEREF(__pyx_t_9);
            __Pyx_XGIVEREF(__pyx_t_14);
            __Pyx_XGIVEREF(__pyx_t_20);
            __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_14, __pyx_t_20);
          }
          __Pyx_XGIVEREF(__pyx_t_5);
          __Pyx_XGIVEREF(__pyx_t_11);
          __Pyx_XGIVEREF(__pyx_t_10);
          __Pyx_ErrRestore(__pyx_t_5, __pyx_t_11, __pyx_t_10);
          __pyx_t_5 = 0; __pyx_t_11 = 0; __pyx_t_10 = 0; __pyx_t_9 = 0; __pyx_t_14 = 0; __pyx_t_20 = 0;
          __pyx_lineno = __pyx_t_17; __pyx_clineno = __pyx_t_18; __pyx_filename = __pyx_t_19;
          goto __pyx_L5_except_error;
        }
        __pyx_L35:;
      }
      __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      goto __pyx_L4_exception_handled;
    }

    /* "src/llfuse/handlers.pxi":416
 *     except FUSEError as e:
 *         ret = fuse_reply_err(req, e.errno)
 *     except BaseException as e:             # <<<<<<<<<<<<<<
 *         ret = handle_exc('opendir', e, req)
 * 
 */
    __pyx_t_18 = PyErr_ExceptionMatches(__pyx_builtin_BaseException);
    if (__pyx_t_18) {
      __Pyx_AddTraceback("llfuse.capi.fuse_opendir", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_6, &__pyx_t_12) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 416; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_GOTREF(__pyx_t_12);
      __Pyx_INCREF(__pyx_t_6);
      __pyx_v_e = __pyx_t_6;
      /*try:*/ {

        /* "src/llfuse/handlers.pxi":417
 *         ret = fuse_reply_err(req, e.errno)
 *     except BaseException as e:
 *         ret = handle_exc('opendir', e, req)             # <<<<<<<<<<<<<<
 * 
 *     if ret != 0:
 */
        __pyx_v_ret = __pyx_f_6llfuse_4capi_handle_exc(__pyx_k_opendir, __pyx_v_e, __pyx_v_req);
      }

      /* "src/llfuse/handlers.pxi":416
 *     except FUSEError as e:
 *         ret = fuse_reply_err(req, e.errno)
 *     except BaseException as e:             # <<<<<<<<<<<<<<
 *         ret = handle_exc('opendir', e, req)
 * 
 */
      /*finally:*/ {
        /*normal exit:*/{
          __Pyx_DECREF(__pyx_v_e);
          __pyx_v_e = NULL;
          goto __pyx_L46;
        }
        __pyx_L46:;
      }
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
      goto __pyx_L4_exception_handled;
    }
    goto __pyx_L5_except_error;
    __pyx_L5_except_error:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L1_error;
    __pyx_L4_exception_handled:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    __pyx_L10_try_end:;
  }

  /* "src/llfuse/handlers.pxi":419
 *         ret = handle_exc('opendir', e, req)
 * 
 *     if ret != 0:             # <<<<<<<<<<<<<<
 *         log.error('fuse_opendir(): fuse_reply_* failed with %s', strerror(-ret))
 * 
 */
  __pyx_t_16 = ((__pyx_v_ret != 0) != 0);
  if (__pyx_t_16) {

    /* "src/llfuse/handlers.pxi":420
 * 
 *     if ret != 0:
 *         log.error('fuse_opendir(): fuse_reply_* failed with %s', strerror(-ret))             # <<<<<<<<<<<<<<
 * 
 * cdef void fuse_readdir (fuse_req_t req, fuse_ino_t ino, size_t size, off_t off,
 */
    __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s_log); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 420; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_error); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 420; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_7 = __Pyx_GetModuleGlobalName(__pyx_n_s_strerror); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 420; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_8 = __Pyx_PyInt_From_int((-__pyx_v_ret)); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 420; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_21 = NULL;
    if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_7))) {
      __pyx_t_21 = PyMethod_GET_SELF(__pyx_t_7);
      if (likely(__pyx_t_21)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
        __Pyx_INCREF(__pyx_t_21);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_7, function);
      }
    }
    if (!__pyx_t_21) {
      __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_8); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 420; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_GOTREF(__pyx_t_6);
    } else {
      __pyx_t_22 = PyTuple_New(1+1); if (unlikely(!__pyx_t_22)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 420; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_22);
      PyTuple_SET_ITEM(__pyx_t_22, 0, __pyx_t_21); __Pyx_GIVEREF(__pyx_t_21); __pyx_t_21 = NULL;
      PyTuple_SET_ITEM(__pyx_t_22, 0+1, __pyx_t_8);
      __Pyx_GIVEREF(__pyx_t_8);
      __pyx_t_8 = 0;
      __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_22, NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 420; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
    }
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_t_7 = NULL;
    __pyx_t_23 = 0;
    if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_4);
      if (likely(__pyx_t_7)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
        __Pyx_INCREF(__pyx_t_7);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_4, function);
        __pyx_t_23 = 1;
      }
    }
    __pyx_t_22 = PyTuple_New(2+__pyx_t_23); if (unlikely(!__pyx_t_22)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 420; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_22);
    if (__pyx_t_7) {
      PyTuple_SET_ITEM(__pyx_t_22, 0, __pyx_t_7); __Pyx_GIVEREF(__pyx_t_7); __pyx_t_7 = NULL;
    }
    __Pyx_INCREF(__pyx_kp_u_fuse_opendir_fuse_reply__failed);
    PyTuple_SET_ITEM(__pyx_t_22, 0+__pyx_t_23, __pyx_kp_u_fuse_opendir_fuse_reply__failed);
    __Pyx_GIVEREF(__pyx_kp_u_fuse_opendir_fuse_reply__failed);
    PyTuple_SET_ITEM(__pyx_t_22, 1+__pyx_t_23, __pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_6);
    __pyx_t_6 = 0;
    __pyx_t_12 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_22, NULL); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 420; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_12);
    __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    goto __pyx_L47;
  }
  __pyx_L47:;

  /* "src/llfuse/handlers.pxi":406
 *         log.error('fuse_fsync(): fuse_reply_* failed with %s', strerror(-ret))
 * 
 * cdef void fuse_opendir (fuse_req_t req, fuse_ino_t ino, fuse_file_info *fi) with gil:             # <<<<<<<<<<<<<<
 *     cdef int ret
 * 
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_XDECREF(__pyx_t_21);
  __Pyx_XDECREF(__pyx_t_22);
  __Pyx_WriteUnraisable("llfuse.capi.fuse_opendir", __pyx_clineno, __pyx_lineno, __pyx_filename, 0);
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_e);
  __Pyx_RefNannyFinishContext();
  #ifdef WITH_THREAD
  PyGILState_Release(__pyx_gilstate_save);
  #endif
}

/* "src/llfuse/handlers.pxi":422
 *         log.error('fuse_opendir(): fuse_reply_* failed with %s', strerror(-ret))
 * 
 * cdef void fuse_readdir (fuse_req_t req, fuse_ino_t ino, size_t size, off_t off,             # <<<<<<<<<<<<<<
 *                         fuse_file_info *fi) with gil:
 *     cdef int ret
 */

static void __pyx_f_6llfuse_4capi_fuse_readdir(fuse_req_t __pyx_v_req, CYTHON_UNUSED fuse_ino_t __pyx_v_ino, size_t __pyx_v_size, off_t __pyx_v_off, struct fuse_file_info *__pyx_v_fi) {
  int __pyx_v_ret;
  char *__pyx_v_cname;
  char *__pyx_v_buf;
  size_t __pyx_v_len_;
  size_t __pyx_v_acc_size;
  struct stat __pyx_v_stat;
  PyObject *__pyx_v_name = NULL;
  PyObject *__pyx_v_attr = NULL;
  PyObject *__pyx_v_next_ = NULL;
  PyObject *__pyx_v_e = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  Py_ssize_t __pyx_t_13;
  PyObject *__pyx_t_14 = NULL;
  PyObject *(*__pyx_t_15)(PyObject *);
  PyObject *(*__pyx_t_16)(PyObject *);
  int __pyx_t_17;
  char *__pyx_t_18;
  off_t __pyx_t_19;
  PyObject *__pyx_t_20 = NULL;
  int __pyx_t_21;
  int __pyx_t_22;
  int __pyx_t_23;
  char const *__pyx_t_24;
  PyObject *__pyx_t_25 = NULL;
  char const *__pyx_t_26;
  PyObject *__pyx_t_27 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  #ifdef WITH_THREAD
  PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure();
  #endif
  __Pyx_RefNannySetupContext("fuse_readdir", 0);

  /* "src/llfuse/handlers.pxi":431
 * 
 *     # GCC thinks this may end up uninitialized
 *     ret = 0             # <<<<<<<<<<<<<<
 * 
 *     try:
 */
  __pyx_v_ret = 0;

  /* "src/llfuse/handlers.pxi":433
 *     ret = 0
 * 
 *     try:             # <<<<<<<<<<<<<<
 *         acc_size = 0
 *         buf = NULL
 */
  /*try:*/ {
    {
      __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);
      __Pyx_XGOTREF(__pyx_t_1);
      __Pyx_XGOTREF(__pyx_t_2);
      __Pyx_XGOTREF(__pyx_t_3);
      /*try:*/ {

        /* "src/llfuse/handlers.pxi":434
 * 
 *     try:
 *         acc_size = 0             # <<<<<<<<<<<<<<
 *         buf = NULL
 *         with lock:
 */
        __pyx_v_acc_size = 0;

        /* "src/llfuse/handlers.pxi":435
 *     try:
 *         acc_size = 0
 *         buf = NULL             # <<<<<<<<<<<<<<
 *         with lock:
 *             for (name, attr, next_) in operations.readdir(fi.fh, off):
 */
        __pyx_v_buf = NULL;

        /* "src/llfuse/handlers.pxi":436
 *         acc_size = 0
 *         buf = NULL
 *         with lock:             # <<<<<<<<<<<<<<
 *             for (name, attr, next_) in operations.readdir(fi.fh, off):
 *                 if buf == NULL:
 */
        /*with:*/ {
          __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_lock); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 436; __pyx_clineno = __LINE__; goto __pyx_L6_error;}
          __Pyx_GOTREF(__pyx_t_4);
          __pyx_t_5 = __Pyx_PyObject_LookupSpecial(__pyx_t_4, __pyx_n_s_exit); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 436; __pyx_clineno = __LINE__; goto __pyx_L6_error;}
          __Pyx_GOTREF(__pyx_t_5);
          __pyx_t_7 = __Pyx_PyObject_LookupSpecial(__pyx_t_4, __pyx_n_s_enter); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 436; __pyx_clineno = __LINE__; goto __pyx_L14_error;}
          __Pyx_GOTREF(__pyx_t_7);
          __pyx_t_8 = NULL;
          if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_7))) {
            __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7);
            if (likely(__pyx_t_8)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
              __Pyx_INCREF(__pyx_t_8);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_7, function);
            }
          }
          if (__pyx_t_8) {
            __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_8); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 436; __pyx_clineno = __LINE__; goto __pyx_L14_error;}
            __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
          } else {
            __pyx_t_6 = __Pyx_PyObject_CallNoArg(__pyx_t_7); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 436; __pyx_clineno = __LINE__; goto __pyx_L14_error;}
          }
          __Pyx_GOTREF(__pyx_t_6);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          /*try:*/ {
            {
              __Pyx_ExceptionSave(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
              __Pyx_XGOTREF(__pyx_t_9);
              __Pyx_XGOTREF(__pyx_t_10);
              __Pyx_XGOTREF(__pyx_t_11);
              /*try:*/ {

                /* "src/llfuse/handlers.pxi":437
 *         buf = NULL
 *         with lock:
 *             for (name, attr, next_) in operations.readdir(fi.fh, off):             # <<<<<<<<<<<<<<
 *                 if buf == NULL:
 *                     buf = <char*> stdlib.malloc(size * sizeof(char))
 */
                __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_6llfuse_4capi_operations, __pyx_n_s_readdir); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 437; __pyx_clineno = __LINE__; goto __pyx_L20_error;}
                __Pyx_GOTREF(__pyx_t_6);
                __pyx_t_7 = __Pyx_PyInt_From_uint64_t(__pyx_v_fi->fh); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 437; __pyx_clineno = __LINE__; goto __pyx_L20_error;}
                __Pyx_GOTREF(__pyx_t_7);
                __pyx_t_8 = __Pyx_PyInt_From_off_t(__pyx_v_off); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 437; __pyx_clineno = __LINE__; goto __pyx_L20_error;}
                __Pyx_GOTREF(__pyx_t_8);
                __pyx_t_12 = NULL;
                __pyx_t_13 = 0;
                if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_6))) {
                  __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_6);
                  if (likely(__pyx_t_12)) {
                    PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
                    __Pyx_INCREF(__pyx_t_12);
                    __Pyx_INCREF(function);
                    __Pyx_DECREF_SET(__pyx_t_6, function);
                    __pyx_t_13 = 1;
                  }
                }
                __pyx_t_14 = PyTuple_New(2+__pyx_t_13); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 437; __pyx_clineno = __LINE__; goto __pyx_L20_error;}
                __Pyx_GOTREF(__pyx_t_14);
                if (__pyx_t_12) {
                  PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_12); __Pyx_GIVEREF(__pyx_t_12); __pyx_t_12 = NULL;
                }
                PyTuple_SET_ITEM(__pyx_t_14, 0+__pyx_t_13, __pyx_t_7);
                __Pyx_GIVEREF(__pyx_t_7);
                PyTuple_SET_ITEM(__pyx_t_14, 1+__pyx_t_13, __pyx_t_8);
                __Pyx_GIVEREF(__pyx_t_8);
                __pyx_t_7 = 0;
                __pyx_t_8 = 0;
                __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_14, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 437; __pyx_clineno = __LINE__; goto __pyx_L20_error;}
                __Pyx_GOTREF(__pyx_t_4);
                __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
                __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
                if (likely(PyList_CheckExact(__pyx_t_4)) || PyTuple_CheckExact(__pyx_t_4)) {
                  __pyx_t_6 = __pyx_t_4; __Pyx_INCREF(__pyx_t_6); __pyx_t_13 = 0;
                  __pyx_t_15 = NULL;
                } else {
                  __pyx_t_13 = -1; __pyx_t_6 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 437; __pyx_clineno = __LINE__; goto __pyx_L20_error;}
                  __Pyx_GOTREF(__pyx_t_6);
                  __pyx_t_15 = Py_TYPE(__pyx_t_6)->tp_iternext; if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 437; __pyx_clineno = __LINE__; goto __pyx_L20_error;}
                }
                __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
                for (;;) {
                  if (likely(!__pyx_t_15)) {
                    if (likely(PyList_CheckExact(__pyx_t_6))) {
                      if (__pyx_t_13 >= PyList_GET_SIZE(__pyx_t_6)) break;
                      #if CYTHON_COMPILING_IN_CPYTHON
                      __pyx_t_4 = PyList_GET_ITEM(__pyx_t_6, __pyx_t_13); __Pyx_INCREF(__pyx_t_4); __pyx_t_13++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 437; __pyx_clineno = __LINE__; goto __pyx_L20_error;}
                      #else
                      __pyx_t_4 = PySequence_ITEM(__pyx_t_6, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 437; __pyx_clineno = __LINE__; goto __pyx_L20_error;}
                      #endif
                    } else {
                      if (__pyx_t_13 >= PyTuple_GET_SIZE(__pyx_t_6)) break;
                      #if CYTHON_COMPILING_IN_CPYTHON
                      __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_6, __pyx_t_13); __Pyx_INCREF(__pyx_t_4); __pyx_t_13++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 437; __pyx_clineno = __LINE__; goto __pyx_L20_error;}
                      #else
                      __pyx_t_4 = PySequence_ITEM(__pyx_t_6, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 437; __pyx_clineno = __LINE__; goto __pyx_L20_error;}
                      #endif
                    }
                  } else {
                    __pyx_t_4 = __pyx_t_15(__pyx_t_6);
                    if (unlikely(!__pyx_t_4)) {
                      PyObject* exc_type = PyErr_Occurred();
                      if (exc_type) {
                        if (likely(exc_type == PyExc_StopIteration || PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                        else {__pyx_filename = __pyx_f[0]; __pyx_lineno = 437; __pyx_clineno = __LINE__; goto __pyx_L20_error;}
                      }
                      break;
                    }
                    __Pyx_GOTREF(__pyx_t_4);
                  }
                  if ((likely(PyTuple_CheckExact(__pyx_t_4))) || (PyList_CheckExact(__pyx_t_4))) {
                    PyObject* sequence = __pyx_t_4;
                    #if CYTHON_COMPILING_IN_CPYTHON
                    Py_ssize_t size = Py_SIZE(sequence);
                    #else
                    Py_ssize_t size = PySequence_Size(sequence);
                    #endif
                    if (unlikely(size != 3)) {
                      if (size > 3) __Pyx_RaiseTooManyValuesError(3);
                      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
                      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 437; __pyx_clineno = __LINE__; goto __pyx_L20_error;}
                    }
                    #if CYTHON_COMPILING_IN_CPYTHON
                    if (likely(PyTuple_CheckExact(sequence))) {
                      __pyx_t_14 = PyTuple_GET_ITEM(sequence, 0); 
                      __pyx_t_8 = PyTuple_GET_ITEM(sequence, 1); 
                      __pyx_t_7 = PyTuple_GET_ITEM(sequence, 2); 
                    } else {
                      __pyx_t_14 = PyList_GET_ITEM(sequence, 0); 
                      __pyx_t_8 = PyList_GET_ITEM(sequence, 1); 
                      __pyx_t_7 = PyList_GET_ITEM(sequence, 2); 
                    }
                    __Pyx_INCREF(__pyx_t_14);
                    __Pyx_INCREF(__pyx_t_8);
                    __Pyx_INCREF(__pyx_t_7);
                    #else
                    __pyx_t_14 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 437; __pyx_clineno = __LINE__; goto __pyx_L20_error;}
                    __Pyx_GOTREF(__pyx_t_14);
                    __pyx_t_8 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 437; __pyx_clineno = __LINE__; goto __pyx_L20_error;}
                    __Pyx_GOTREF(__pyx_t_8);
                    __pyx_t_7 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 437; __pyx_clineno = __LINE__; goto __pyx_L20_error;}
                    __Pyx_GOTREF(__pyx_t_7);
                    #endif
                    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
                  } else {
                    Py_ssize_t index = -1;
                    __pyx_t_12 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 437; __pyx_clineno = __LINE__; goto __pyx_L20_error;}
                    __Pyx_GOTREF(__pyx_t_12);
                    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
                    __pyx_t_16 = Py_TYPE(__pyx_t_12)->tp_iternext;
                    index = 0; __pyx_t_14 = __pyx_t_16(__pyx_t_12); if (unlikely(!__pyx_t_14)) goto __pyx_L30_unpacking_failed;
                    __Pyx_GOTREF(__pyx_t_14);
                    index = 1; __pyx_t_8 = __pyx_t_16(__pyx_t_12); if (unlikely(!__pyx_t_8)) goto __pyx_L30_unpacking_failed;
                    __Pyx_GOTREF(__pyx_t_8);
                    index = 2; __pyx_t_7 = __pyx_t_16(__pyx_t_12); if (unlikely(!__pyx_t_7)) goto __pyx_L30_unpacking_failed;
                    __Pyx_GOTREF(__pyx_t_7);
                    if (__Pyx_IternextUnpackEndCheck(__pyx_t_16(__pyx_t_12), 3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 437; __pyx_clineno = __LINE__; goto __pyx_L20_error;}
                    __pyx_t_16 = NULL;
                    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
                    goto __pyx_L31_unpacking_done;
                    __pyx_L30_unpacking_failed:;
                    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
                    __pyx_t_16 = NULL;
                    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
                    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 437; __pyx_clineno = __LINE__; goto __pyx_L20_error;}
                    __pyx_L31_unpacking_done:;
                  }
                  __Pyx_XDECREF_SET(__pyx_v_name, __pyx_t_14);
                  __pyx_t_14 = 0;
                  __Pyx_XDECREF_SET(__pyx_v_attr, __pyx_t_8);
                  __pyx_t_8 = 0;
                  __Pyx_XDECREF_SET(__pyx_v_next_, __pyx_t_7);
                  __pyx_t_7 = 0;

                  /* "src/llfuse/handlers.pxi":438
 *         with lock:
 *             for (name, attr, next_) in operations.readdir(fi.fh, off):
 *                 if buf == NULL:             # <<<<<<<<<<<<<<
 *                     buf = <char*> stdlib.malloc(size * sizeof(char))
 *                 cname = PyBytes_AsString(name)
 */
                  __pyx_t_17 = ((__pyx_v_buf == NULL) != 0);
                  if (__pyx_t_17) {

                    /* "src/llfuse/handlers.pxi":439
 *             for (name, attr, next_) in operations.readdir(fi.fh, off):
 *                 if buf == NULL:
 *                     buf = <char*> stdlib.malloc(size * sizeof(char))             # <<<<<<<<<<<<<<
 *                 cname = PyBytes_AsString(name)
 *                 fill_c_stat(attr, &stat)
 */
                    __pyx_v_buf = ((char *)malloc((__pyx_v_size * (sizeof(char)))));
                    goto __pyx_L32;
                  }
                  __pyx_L32:;

                  /* "src/llfuse/handlers.pxi":440
 *                 if buf == NULL:
 *                     buf = <char*> stdlib.malloc(size * sizeof(char))
 *                 cname = PyBytes_AsString(name)             # <<<<<<<<<<<<<<
 *                 fill_c_stat(attr, &stat)
 *                 len_ = fuse_add_direntry(req, buf + acc_size, size - acc_size,
 */
                  __pyx_t_18 = PyBytes_AsString(__pyx_v_name); if (unlikely(__pyx_t_18 == NULL)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 440; __pyx_clineno = __LINE__; goto __pyx_L20_error;}
                  __pyx_v_cname = __pyx_t_18;

                  /* "src/llfuse/handlers.pxi":441
 *                     buf = <char*> stdlib.malloc(size * sizeof(char))
 *                 cname = PyBytes_AsString(name)
 *                 fill_c_stat(attr, &stat)             # <<<<<<<<<<<<<<
 *                 len_ = fuse_add_direntry(req, buf + acc_size, size - acc_size,
 *                                          cname, &stat, next_)
 */
                  __pyx_t_4 = __pyx_f_6llfuse_4capi_fill_c_stat(__pyx_v_attr, (&__pyx_v_stat)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 441; __pyx_clineno = __LINE__; goto __pyx_L20_error;}
                  __Pyx_GOTREF(__pyx_t_4);
                  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

                  /* "src/llfuse/handlers.pxi":443
 *                 fill_c_stat(attr, &stat)
 *                 len_ = fuse_add_direntry(req, buf + acc_size, size - acc_size,
 *                                          cname, &stat, next_)             # <<<<<<<<<<<<<<
 *                 if len_ > (size - acc_size):
 *                     break
 */
                  __pyx_t_19 = __Pyx_PyInt_As_off_t(__pyx_v_next_); if (unlikely((__pyx_t_19 == (off_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 443; __pyx_clineno = __LINE__; goto __pyx_L20_error;}

                  /* "src/llfuse/handlers.pxi":442
 *                 cname = PyBytes_AsString(name)
 *                 fill_c_stat(attr, &stat)
 *                 len_ = fuse_add_direntry(req, buf + acc_size, size - acc_size,             # <<<<<<<<<<<<<<
 *                                          cname, &stat, next_)
 *                 if len_ > (size - acc_size):
 */
                  __pyx_v_len_ = fuse_add_direntry(__pyx_v_req, (__pyx_v_buf + __pyx_v_acc_size), (__pyx_v_size - __pyx_v_acc_size), __pyx_v_cname, (&__pyx_v_stat), __pyx_t_19);

                  /* "src/llfuse/handlers.pxi":444
 *                 len_ = fuse_add_direntry(req, buf + acc_size, size - acc_size,
 *                                          cname, &stat, next_)
 *                 if len_ > (size - acc_size):             # <<<<<<<<<<<<<<
 *                     break
 *                 acc_size += len_
 */
                  __pyx_t_17 = ((__pyx_v_len_ > (__pyx_v_size - __pyx_v_acc_size)) != 0);
                  if (__pyx_t_17) {

                    /* "src/llfuse/handlers.pxi":445
 *                                          cname, &stat, next_)
 *                 if len_ > (size - acc_size):
 *                     break             # <<<<<<<<<<<<<<
 *                 acc_size += len_
 *         ret = fuse_reply_buf(req, buf, acc_size)
 */
                    goto __pyx_L29_break;
                  }

                  /* "src/llfuse/handlers.pxi":446
 *                 if len_ > (size - acc_size):
 *                     break
 *                 acc_size += len_             # <<<<<<<<<<<<<<
 *         ret = fuse_reply_buf(req, buf, acc_size)
 *     except FUSEError as e:
 */
                  __pyx_v_acc_size = (__pyx_v_acc_size + __pyx_v_len_);

                  /* "src/llfuse/handlers.pxi":437
 *         buf = NULL
 *         with lock:
 *             for (name, attr, next_) in operations.readdir(fi.fh, off):             # <<<<<<<<<<<<<<
 *                 if buf == NULL:
 *                     buf = <char*> stdlib.malloc(size * sizeof(char))
 */
                }
                __pyx_L29_break:;
                __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
              }
              __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
              __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
              __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
              goto __pyx_L27_try_end;
              __pyx_L20_error:;
              __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
              __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
              __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
              __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
              __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
              __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;

              /* "src/llfuse/handlers.pxi":436
 *         acc_size = 0
 *         buf = NULL
 *         with lock:             # <<<<<<<<<<<<<<
 *             for (name, attr, next_) in operations.readdir(fi.fh, off):
 *                 if buf == NULL:
 */
              /*except:*/ {
                __Pyx_AddTraceback("llfuse.capi.fuse_readdir", __pyx_clineno, __pyx_lineno, __pyx_filename);
                if (__Pyx_GetException(&__pyx_t_6, &__pyx_t_4, &__pyx_t_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 436; __pyx_clineno = __LINE__; goto __pyx_L22_except_error;}
                __Pyx_GOTREF(__pyx_t_6);
                __Pyx_GOTREF(__pyx_t_4);
                __Pyx_GOTREF(__pyx_t_7);
                __pyx_t_8 = PyTuple_Pack(3, __pyx_t_6, __pyx_t_4, __pyx_t_7); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 436; __pyx_clineno = __LINE__; goto __pyx_L22_except_error;}
                __Pyx_GOTREF(__pyx_t_8);
                __pyx_t_20 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_8, NULL);
                __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
                __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
                if (unlikely(!__pyx_t_20)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 436; __pyx_clineno = __LINE__; goto __pyx_L22_except_error;}
                __Pyx_GOTREF(__pyx_t_20);
                __pyx_t_17 = __Pyx_PyObject_IsTrue(__pyx_t_20);
                __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
                if (__pyx_t_17 < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 436; __pyx_clineno = __LINE__; goto __pyx_L22_except_error;}
                __pyx_t_21 = ((!(__pyx_t_17 != 0)) != 0);
                if (__pyx_t_21) {
                  __Pyx_GIVEREF(__pyx_t_6);
                  __Pyx_GIVEREF(__pyx_t_4);
                  __Pyx_XGIVEREF(__pyx_t_7);
                  __Pyx_ErrRestore(__pyx_t_6, __pyx_t_4, __pyx_t_7);
                  __pyx_t_6 = 0; __pyx_t_4 = 0; __pyx_t_7 = 0; 
                  {__pyx_filename = __pyx_f[0]; __pyx_lineno = 436; __pyx_clineno = __LINE__; goto __pyx_L22_except_error;}
                }
                __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
                __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
                __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
                goto __pyx_L21_exception_handled;
              }
              __pyx_L22_except_error:;
              __Pyx_XGIVEREF(__pyx_t_9);
              __Pyx_XGIVEREF(__pyx_t_10);
              __Pyx_XGIVEREF(__pyx_t_11);
              __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11);
              goto __pyx_L6_error;
              __pyx_L21_exception_handled:;
              __Pyx_XGIVEREF(__pyx_t_9);
              __Pyx_XGIVEREF(__pyx_t_10);
              __Pyx_XGIVEREF(__pyx_t_11);
              __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11);
              __pyx_L27_try_end:;
            }
          }
          /*finally:*/ {
            /*normal exit:*/{
              if (__pyx_t_5) {
                __pyx_t_11 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_tuple__22, NULL);
                __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
                if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 436; __pyx_clineno = __LINE__; goto __pyx_L6_error;}
                __Pyx_GOTREF(__pyx_t_11);
                __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
              }
              goto __pyx_L19;
            }
            __pyx_L19:;
          }
          goto __pyx_L37;
          __pyx_L14_error:;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          goto __pyx_L6_error;
          __pyx_L37:;
        }

        /* "src/llfuse/handlers.pxi":447
 *                     break
 *                 acc_size += len_
 *         ret = fuse_reply_buf(req, buf, acc_size)             # <<<<<<<<<<<<<<
 *     except FUSEError as e:
 *         ret = fuse_reply_err(req, e.errno)
 */
        __pyx_v_ret = fuse_reply_buf(__pyx_v_req, __pyx_v_buf, __pyx_v_acc_size);
      }
      __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      goto __pyx_L13_try_end;
      __pyx_L6_error:;
      __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
      __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;

      /* "src/llfuse/handlers.pxi":448
 *                 acc_size += len_
 *         ret = fuse_reply_buf(req, buf, acc_size)
 *     except FUSEError as e:             # <<<<<<<<<<<<<<
 *         ret = fuse_reply_err(req, e.errno)
 *     except BaseException as e:
 */
      __pyx_t_7 = __Pyx_GetModuleGlobalName(__pyx_n_s_FUSEError); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 448; __pyx_clineno = __LINE__; goto __pyx_L8_except_error;}
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_22 = PyErr_ExceptionMatches(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      if (__pyx_t_22) {
        __Pyx_AddTraceback("llfuse.capi.fuse_readdir", __pyx_clineno, __pyx_lineno, __pyx_filename);
        if (__Pyx_GetException(&__pyx_t_7, &__pyx_t_4, &__pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 448; __pyx_clineno = __LINE__; goto __pyx_L8_except_error;}
        __Pyx_GOTREF(__pyx_t_7);
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_INCREF(__pyx_t_4);
        __pyx_v_e = __pyx_t_4;
        /*try:*/ {

          /* "src/llfuse/handlers.pxi":449
 *         ret = fuse_reply_buf(req, buf, acc_size)
 *     except FUSEError as e:
 *         ret = fuse_reply_err(req, e.errno)             # <<<<<<<<<<<<<<
 *     except BaseException as e:
 *         ret = handle_exc('readdir', e, req)
 */
          __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_e, __pyx_n_s_errno); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 449; __pyx_clineno = __LINE__; goto __pyx_L43_error;}
          __Pyx_GOTREF(__pyx_t_8);
          __pyx_t_22 = __Pyx_PyInt_As_int(__pyx_t_8); if (unlikely((__pyx_t_22 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 449; __pyx_clineno = __LINE__; goto __pyx_L43_error;}
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
          __pyx_v_ret = fuse_reply_err(__pyx_v_req, __pyx_t_22);
        }

        /* "src/llfuse/handlers.pxi":448
 *                 acc_size += len_
 *         ret = fuse_reply_buf(req, buf, acc_size)
 *     except FUSEError as e:             # <<<<<<<<<<<<<<
 *         ret = fuse_reply_err(req, e.errno)
 *     except BaseException as e:
 */
        /*finally:*/ {
          /*normal exit:*/{
            __Pyx_DECREF(__pyx_v_e);
            __pyx_v_e = NULL;
            goto __pyx_L44;
          }
          /*exception exit:*/{
            __pyx_L43_error:;
            __pyx_t_5 = 0; __pyx_t_11 = 0; __pyx_t_10 = 0; __pyx_t_9 = 0; __pyx_t_20 = 0; __pyx_t_25 = 0;
            __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
            __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
            __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
            if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_9, &__pyx_t_20, &__pyx_t_25);
            if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_5, &__pyx_t_11, &__pyx_t_10) < 0)) __Pyx_ErrFetch(&__pyx_t_5, &__pyx_t_11, &__pyx_t_10);
            __Pyx_XGOTREF(__pyx_t_5);
            __Pyx_XGOTREF(__pyx_t_11);
            __Pyx_XGOTREF(__pyx_t_10);
            __Pyx_XGOTREF(__pyx_t_9);
            __Pyx_XGOTREF(__pyx_t_20);
            __Pyx_XGOTREF(__pyx_t_25);
            __pyx_t_22 = __pyx_lineno; __pyx_t_23 = __pyx_clineno; __pyx_t_24 = __pyx_filename;
            {
              __Pyx_DECREF(__pyx_v_e);
              __pyx_v_e = NULL;
            }
            if (PY_MAJOR_VERSION >= 3) {
              __Pyx_XGIVEREF(__pyx_t_9);
              __Pyx_XGIVEREF(__pyx_t_20);
              __Pyx_XGIVEREF(__pyx_t_25);
              __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_20, __pyx_t_25);
            }
            __Pyx_XGIVEREF(__pyx_t_5);
            __Pyx_XGIVEREF(__pyx_t_11);
            __Pyx_XGIVEREF(__pyx_t_10);
            __Pyx_ErrRestore(__pyx_t_5, __pyx_t_11, __pyx_t_10);
            __pyx_t_5 = 0; __pyx_t_11 = 0; __pyx_t_10 = 0; __pyx_t_9 = 0; __pyx_t_20 = 0; __pyx_t_25 = 0;
            __pyx_lineno = __pyx_t_22; __pyx_clineno = __pyx_t_23; __pyx_filename = __pyx_t_24;
            goto __pyx_L8_except_error;
          }
          __pyx_L44:;
        }
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        goto __pyx_L7_exception_handled;
      }

      /* "src/llfuse/handlers.pxi":450
 *     except FUSEError as e:
 *         ret = fuse_reply_err(req, e.errno)
 *     except BaseException as e:             # <<<<<<<<<<<<<<
 *         ret = handle_exc('readdir', e, req)
 *     finally:
 */
      __pyx_t_23 = PyErr_ExceptionMatches(__pyx_builtin_BaseException);
      if (__pyx_t_23) {
        __Pyx_AddTraceback("llfuse.capi.fuse_readdir", __pyx_clineno, __pyx_lineno, __pyx_filename);
        if (__Pyx_GetException(&__pyx_t_6, &__pyx_t_4, &__pyx_t_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 450; __pyx_clineno = __LINE__; goto __pyx_L8_except_error;}
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_GOTREF(__pyx_t_7);
        __Pyx_INCREF(__pyx_t_4);
        __pyx_v_e = __pyx_t_4;
        /*try:*/ {

          /* "src/llfuse/handlers.pxi":451
 *         ret = fuse_reply_err(req, e.errno)
 *     except BaseException as e:
 *         ret = handle_exc('readdir', e, req)             # <<<<<<<<<<<<<<
 *     finally:
 *         if buf != NULL:
 */
          __pyx_v_ret = __pyx_f_6llfuse_4capi_handle_exc(__pyx_k_readdir, __pyx_v_e, __pyx_v_req);
        }

        /* "src/llfuse/handlers.pxi":450
 *     except FUSEError as e:
 *         ret = fuse_reply_err(req, e.errno)
 *     except BaseException as e:             # <<<<<<<<<<<<<<
 *         ret = handle_exc('readdir', e, req)
 *     finally:
 */
        /*finally:*/ {
          /*normal exit:*/{
            __Pyx_DECREF(__pyx_v_e);
            __pyx_v_e = NULL;
            goto __pyx_L55;
          }
          __pyx_L55:;
        }
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        goto __pyx_L7_exception_handled;
      }
      goto __pyx_L8_except_error;
      __pyx_L8_except_error:;
      __Pyx_XGIVEREF(__pyx_t_1);
      __Pyx_XGIVEREF(__pyx_t_2);
      __Pyx_XGIVEREF(__pyx_t_3);
      __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
      goto __pyx_L4_error;
      __pyx_L7_exception_handled:;
      __Pyx_XGIVEREF(__pyx_t_1);
      __Pyx_XGIVEREF(__pyx_t_2);
      __Pyx_XGIVEREF(__pyx_t_3);
      __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
      __pyx_L13_try_end:;
    }
  }

  /* "src/llfuse/handlers.pxi":453
 *         ret = handle_exc('readdir', e, req)
 *     finally:
 *         if buf != NULL:             # <<<<<<<<<<<<<<
 *             stdlib.free(buf)
 * 
 */
  /*finally:*/ {
    /*normal exit:*/{
      __pyx_t_21 = ((__pyx_v_buf != NULL) != 0);
      if (__pyx_t_21) {

        /* "src/llfuse/handlers.pxi":454
 *     finally:
 *         if buf != NULL:
 *             stdlib.free(buf)             # <<<<<<<<<<<<<<
 * 
 *     if ret != 0:
 */
        free(__pyx_v_buf);
        goto __pyx_L56;
      }
      __pyx_L56:;
      goto __pyx_L5;
    }
    /*exception exit:*/{
      __pyx_L4_error:;
      __pyx_t_3 = 0; __pyx_t_2 = 0; __pyx_t_1 = 0; __pyx_t_25 = 0; __pyx_t_20 = 0; __pyx_t_9 = 0;
      __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
      __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
      if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_25, &__pyx_t_20, &__pyx_t_9);
      if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_3, &__pyx_t_2, &__pyx_t_1) < 0)) __Pyx_ErrFetch(&__pyx_t_3, &__pyx_t_2, &__pyx_t_1);
      __Pyx_XGOTREF(__pyx_t_3);
      __Pyx_XGOTREF(__pyx_t_2);
      __Pyx_XGOTREF(__pyx_t_1);
      __Pyx_XGOTREF(__pyx_t_25);
      __Pyx_XGOTREF(__pyx_t_20);
      __Pyx_XGOTREF(__pyx_t_9);
      __pyx_t_23 = __pyx_lineno; __pyx_t_22 = __pyx_clineno; __pyx_t_26 = __pyx_filename;
      {

        /* "src/llfuse/handlers.pxi":453
 *         ret = handle_exc('readdir', e, req)
 *     finally:
 *         if buf != NULL:             # <<<<<<<<<<<<<<
 *             stdlib.free(buf)
 * 
 */
        __pyx_t_21 = ((__pyx_v_buf != NULL) != 0);
        if (__pyx_t_21) {

          /* "src/llfuse/handlers.pxi":454
 *     finally:
 *         if buf != NULL:
 *             stdlib.free(buf)             # <<<<<<<<<<<<<<
 * 
 *     if ret != 0:
 */
          free(__pyx_v_buf);
          goto __pyx_L59;
        }
        __pyx_L59:;
      }
      if (PY_MAJOR_VERSION >= 3) {
        __Pyx_XGIVEREF(__pyx_t_25);
        __Pyx_XGIVEREF(__pyx_t_20);
        __Pyx_XGIVEREF(__pyx_t_9);
        __Pyx_ExceptionReset(__pyx_t_25, __pyx_t_20, __pyx_t_9);
      }
      __Pyx_XGIVEREF(__pyx_t_3);
      __Pyx_XGIVEREF(__pyx_t_2);
      __Pyx_XGIVEREF(__pyx_t_1);
      __Pyx_ErrRestore(__pyx_t_3, __pyx_t_2, __pyx_t_1);
      __pyx_t_3 = 0; __pyx_t_2 = 0; __pyx_t_1 = 0; __pyx_t_25 = 0; __pyx_t_20 = 0; __pyx_t_9 = 0;
      __pyx_lineno = __pyx_t_23; __pyx_clineno = __pyx_t_22; __pyx_filename = __pyx_t_26;
      goto __pyx_L1_error;
    }
    __pyx_L5:;
  }

  /* "src/llfuse/handlers.pxi":456
 *             stdlib.free(buf)
 * 
 *     if ret != 0:             # <<<<<<<<<<<<<<
 *         log.error('fuse_readdir(): fuse_reply_* failed with %s', strerror(-ret))
 * 
 */
  __pyx_t_21 = ((__pyx_v_ret != 0) != 0);
  if (__pyx_t_21) {

    /* "src/llfuse/handlers.pxi":457
 * 
 *     if ret != 0:
 *         log.error('fuse_readdir(): fuse_reply_* failed with %s', strerror(-ret))             # <<<<<<<<<<<<<<
 * 
 * cdef void fuse_releasedir (fuse_req_t req, fuse_ino_t ino, fuse_file_info *fi) with gil:
 */
    __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_log); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 457; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_error); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 457; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_8 = __Pyx_GetModuleGlobalName(__pyx_n_s_strerror); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 457; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_14 = __Pyx_PyInt_From_int((-__pyx_v_ret)); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 457; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_14);
    __pyx_t_12 = NULL;
    if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_8))) {
      __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_8);
      if (likely(__pyx_t_12)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
        __Pyx_INCREF(__pyx_t_12);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_8, function);
      }
    }
    if (!__pyx_t_12) {
      __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_14); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 457; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
      __Pyx_GOTREF(__pyx_t_4);
    } else {
      __pyx_t_27 = PyTuple_New(1+1); if (unlikely(!__pyx_t_27)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 457; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_27);
      PyTuple_SET_ITEM(__pyx_t_27, 0, __pyx_t_12); __Pyx_GIVEREF(__pyx_t_12); __pyx_t_12 = NULL;
      PyTuple_SET_ITEM(__pyx_t_27, 0+1, __pyx_t_14);
      __Pyx_GIVEREF(__pyx_t_14);
      __pyx_t_14 = 0;
      __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_27, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 457; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
    }
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __pyx_t_8 = NULL;
    __pyx_t_13 = 0;
    if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_6))) {
      __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_6);
      if (likely(__pyx_t_8)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
        __Pyx_INCREF(__pyx_t_8);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_6, function);
        __pyx_t_13 = 1;
      }
    }
    __pyx_t_27 = PyTuple_New(2+__pyx_t_13); if (unlikely(!__pyx_t_27)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 457; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_27);
    if (__pyx_t_8) {
      PyTuple_SET_ITEM(__pyx_t_27, 0, __pyx_t_8); __Pyx_GIVEREF(__pyx_t_8); __pyx_t_8 = NULL;
    }
    __Pyx_INCREF(__pyx_kp_u_fuse_readdir_fuse_reply__failed);
    PyTuple_SET_ITEM(__pyx_t_27, 0+__pyx_t_13, __pyx_kp_u_fuse_readdir_fuse_reply__failed);
    __Pyx_GIVEREF(__pyx_kp_u_fuse_readdir_fuse_reply__failed);
    PyTuple_SET_ITEM(__pyx_t_27, 1+__pyx_t_13, __pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_4);
    __pyx_t_4 = 0;
    __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_27, NULL); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 457; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    goto __pyx_L60;
  }
  __pyx_L60:;

  /* "src/llfuse/handlers.pxi":422
 *         log.error('fuse_opendir(): fuse_reply_* failed with %s', strerror(-ret))
 * 
 * cdef void fuse_readdir (fuse_req_t req, fuse_ino_t ino, size_t size, off_t off,             # <<<<<<<<<<<<<<
 *                         fuse_file_info *fi) with gil:
 *     cdef int ret
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_XDECREF(__pyx_t_14);
  __Pyx_XDECREF(__pyx_t_27);
  __Pyx_WriteUnraisable("llfuse.capi.fuse_readdir", __pyx_clineno, __pyx_lineno, __pyx_filename, 0);
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_name);
  __Pyx_XDECREF(__pyx_v_attr);
  __Pyx_XDECREF(__pyx_v_next_);
  __Pyx_XDECREF(__pyx_v_e);
  __Pyx_RefNannyFinishContext();
  #ifdef WITH_THREAD
  PyGILState_Release(__pyx_gilstate_save);
  #endif
}

/* "src/llfuse/handlers.pxi":459
 *         log.error('fuse_readdir(): fuse_reply_* failed with %s', strerror(-ret))
 * 
 * cdef void fuse_releasedir (fuse_req_t req, fuse_ino_t ino, fuse_file_info *fi) with gil:             # <<<<<<<<<<<<<<
 *     cdef int ret
 * 
 */

static void __pyx_f_6llfuse_4capi_fuse_releasedir(fuse_req_t __pyx_v_req, CYTHON_UNUSED fuse_ino_t __pyx_v_ino, struct fuse_file_info *__pyx_v_fi) {
  int __pyx_v_ret;
  PyObject *__pyx_v_e = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  PyObject *__pyx_t_13 = NULL;
  int __pyx_t_14;
  int __pyx_t_15;
  int __pyx_t_16;
  int __pyx_t_17;
  char const *__pyx_t_18;
  PyObject *__pyx_t_19 = NULL;
  PyObject *__pyx_t_20 = NULL;
  PyObject *__pyx_t_21 = NULL;
  Py_ssize_t __pyx_t_22;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  #ifdef WITH_THREAD
  PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure();
  #endif
  __Pyx_RefNannySetupContext("fuse_releasedir", 0);

  /* "src/llfuse/handlers.pxi":462
 *     cdef int ret
 * 
 *     try:             # <<<<<<<<<<<<<<
 *         with lock:
 *             operations.releasedir(fi.fh)
 */
  {
    __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);
    __Pyx_XGOTREF(__pyx_t_1);
    __Pyx_XGOTREF(__pyx_t_2);
    __Pyx_XGOTREF(__pyx_t_3);
    /*try:*/ {

      /* "src/llfuse/handlers.pxi":463
 * 
 *     try:
 *         with lock:             # <<<<<<<<<<<<<<
 *             operations.releasedir(fi.fh)
 *         ret = fuse_reply_err(req, 0)
 */
      /*with:*/ {
        __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_lock); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 463; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_5 = __Pyx_PyObject_LookupSpecial(__pyx_t_4, __pyx_n_s_exit); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 463; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_7 = __Pyx_PyObject_LookupSpecial(__pyx_t_4, __pyx_n_s_enter); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 463; __pyx_clineno = __LINE__; goto __pyx_L11_error;}
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_8 = NULL;
        if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_7))) {
          __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7);
          if (likely(__pyx_t_8)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
            __Pyx_INCREF(__pyx_t_8);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_7, function);
          }
        }
        if (__pyx_t_8) {
          __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_8); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 463; __pyx_clineno = __LINE__; goto __pyx_L11_error;}
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        } else {
          __pyx_t_6 = __Pyx_PyObject_CallNoArg(__pyx_t_7); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 463; __pyx_clineno = __LINE__; goto __pyx_L11_error;}
        }
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        /*try:*/ {
          {
            __Pyx_ExceptionSave(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
            __Pyx_XGOTREF(__pyx_t_9);
            __Pyx_XGOTREF(__pyx_t_10);
            __Pyx_XGOTREF(__pyx_t_11);
            /*try:*/ {

              /* "src/llfuse/handlers.pxi":464
 *     try:
 *         with lock:
 *             operations.releasedir(fi.fh)             # <<<<<<<<<<<<<<
 *         ret = fuse_reply_err(req, 0)
 *     except FUSEError as e:
 */
              __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_6llfuse_4capi_operations, __pyx_n_s_releasedir); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 464; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
              __Pyx_GOTREF(__pyx_t_6);
              __pyx_t_7 = __Pyx_PyInt_From_uint64_t(__pyx_v_fi->fh); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 464; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
              __Pyx_GOTREF(__pyx_t_7);
              __pyx_t_8 = NULL;
              if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_6))) {
                __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_6);
                if (likely(__pyx_t_8)) {
                  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
                  __Pyx_INCREF(__pyx_t_8);
                  __Pyx_INCREF(function);
                  __Pyx_DECREF_SET(__pyx_t_6, function);
                }
              }
              if (!__pyx_t_8) {
                __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_7); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 464; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
                __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
                __Pyx_GOTREF(__pyx_t_4);
              } else {
                __pyx_t_12 = PyTuple_New(1+1); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 464; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
                __Pyx_GOTREF(__pyx_t_12);
                PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_t_8); __Pyx_GIVEREF(__pyx_t_8); __pyx_t_8 = NULL;
                PyTuple_SET_ITEM(__pyx_t_12, 0+1, __pyx_t_7);
                __Pyx_GIVEREF(__pyx_t_7);
                __pyx_t_7 = 0;
                __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_12, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 464; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
                __Pyx_GOTREF(__pyx_t_4);
                __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
              }
              __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
              __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
            }
            __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
            __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
            __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
            goto __pyx_L24_try_end;
            __pyx_L17_error:;
            __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
            __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
            __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
            __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
            __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;

            /* "src/llfuse/handlers.pxi":463
 * 
 *     try:
 *         with lock:             # <<<<<<<<<<<<<<
 *             operations.releasedir(fi.fh)
 *         ret = fuse_reply_err(req, 0)
 */
            /*except:*/ {
              __Pyx_AddTraceback("llfuse.capi.fuse_releasedir", __pyx_clineno, __pyx_lineno, __pyx_filename);
              if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_6, &__pyx_t_12) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 463; __pyx_clineno = __LINE__; goto __pyx_L19_except_error;}
              __Pyx_GOTREF(__pyx_t_4);
              __Pyx_GOTREF(__pyx_t_6);
              __Pyx_GOTREF(__pyx_t_12);
              __pyx_t_7 = PyTuple_Pack(3, __pyx_t_4, __pyx_t_6, __pyx_t_12); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 463; __pyx_clineno = __LINE__; goto __pyx_L19_except_error;}
              __Pyx_GOTREF(__pyx_t_7);
              __pyx_t_13 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, NULL);
              __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
              __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
              if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 463; __pyx_clineno = __LINE__; goto __pyx_L19_except_error;}
              __Pyx_GOTREF(__pyx_t_13);
              __pyx_t_14 = __Pyx_PyObject_IsTrue(__pyx_t_13);
              __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
              if (__pyx_t_14 < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 463; __pyx_clineno = __LINE__; goto __pyx_L19_except_error;}
              __pyx_t_15 = ((!(__pyx_t_14 != 0)) != 0);
              if (__pyx_t_15) {
                __Pyx_GIVEREF(__pyx_t_4);
                __Pyx_GIVEREF(__pyx_t_6);
                __Pyx_XGIVEREF(__pyx_t_12);
                __Pyx_ErrRestore(__pyx_t_4, __pyx_t_6, __pyx_t_12);
                __pyx_t_4 = 0; __pyx_t_6 = 0; __pyx_t_12 = 0; 
                {__pyx_filename = __pyx_f[0]; __pyx_lineno = 463; __pyx_clineno = __LINE__; goto __pyx_L19_except_error;}
              }
              __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
              __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
              __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
              goto __pyx_L18_exception_handled;
            }
            __pyx_L19_except_error:;
            __Pyx_XGIVEREF(__pyx_t_9);
            __Pyx_XGIVEREF(__pyx_t_10);
            __Pyx_XGIVEREF(__pyx_t_11);
            __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11);
            goto __pyx_L3_error;
            __pyx_L18_exception_handled:;
            __Pyx_XGIVEREF(__pyx_t_9);
            __Pyx_XGIVEREF(__pyx_t_10);
            __Pyx_XGIVEREF(__pyx_t_11);
            __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11);
            __pyx_L24_try_end:;
          }
        }
        /*finally:*/ {
          /*normal exit:*/{
            if (__pyx_t_5) {
              __pyx_t_11 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_tuple__23, NULL);
              __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
              if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 463; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
              __Pyx_GOTREF(__pyx_t_11);
              __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
            }
            goto __pyx_L16;
          }
          __pyx_L16:;
        }
        goto __pyx_L28;
        __pyx_L11_error:;
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        goto __pyx_L3_error;
        __pyx_L28:;
      }

      /* "src/llfuse/handlers.pxi":465
 *         with lock:
 *             operations.releasedir(fi.fh)
 *         ret = fuse_reply_err(req, 0)             # <<<<<<<<<<<<<<
 *     except FUSEError as e:
 *         ret = fuse_reply_err(req, e.errno)
 */
      __pyx_v_ret = fuse_reply_err(__pyx_v_req, 0);
    }
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    goto __pyx_L10_try_end;
    __pyx_L3_error:;
    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;

    /* "src/llfuse/handlers.pxi":466
 *             operations.releasedir(fi.fh)
 *         ret = fuse_reply_err(req, 0)
 *     except FUSEError as e:             # <<<<<<<<<<<<<<
 *         ret = fuse_reply_err(req, e.errno)
 *     except BaseException as e:
 */
    __pyx_t_12 = __Pyx_GetModuleGlobalName(__pyx_n_s_FUSEError); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 466; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
    __Pyx_GOTREF(__pyx_t_12);
    __pyx_t_16 = PyErr_ExceptionMatches(__pyx_t_12);
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    if (__pyx_t_16) {
      __Pyx_AddTraceback("llfuse.capi.fuse_releasedir", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_12, &__pyx_t_6, &__pyx_t_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 466; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
      __Pyx_GOTREF(__pyx_t_12);
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_6);
      __pyx_v_e = __pyx_t_6;
      /*try:*/ {

        /* "src/llfuse/handlers.pxi":467
 *         ret = fuse_reply_err(req, 0)
 *     except FUSEError as e:
 *         ret = fuse_reply_err(req, e.errno)             # <<<<<<<<<<<<<<
 *     except BaseException as e:
 *         ret = handle_exc('releasedir', e, req)
 */
        __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_e, __pyx_n_s_errno); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 467; __pyx_clineno = __LINE__; goto __pyx_L34_error;}
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_16 = __Pyx_PyInt_As_int(__pyx_t_7); if (unlikely((__pyx_t_16 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 467; __pyx_clineno = __LINE__; goto __pyx_L34_error;}
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __pyx_v_ret = fuse_reply_err(__pyx_v_req, __pyx_t_16);
      }

      /* "src/llfuse/handlers.pxi":466
 *             operations.releasedir(fi.fh)
 *         ret = fuse_reply_err(req, 0)
 *     except FUSEError as e:             # <<<<<<<<<<<<<<
 *         ret = fuse_reply_err(req, e.errno)
 *     except BaseException as e:
 */
      /*finally:*/ {
        /*normal exit:*/{
          __Pyx_DECREF(__pyx_v_e);
          __pyx_v_e = NULL;
          goto __pyx_L35;
        }
        /*exception exit:*/{
          __pyx_L34_error:;
          __pyx_t_5 = 0; __pyx_t_11 = 0; __pyx_t_10 = 0; __pyx_t_9 = 0; __pyx_t_13 = 0; __pyx_t_19 = 0;
          __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_9, &__pyx_t_13, &__pyx_t_19);
          if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_5, &__pyx_t_11, &__pyx_t_10) < 0)) __Pyx_ErrFetch(&__pyx_t_5, &__pyx_t_11, &__pyx_t_10);
          __Pyx_XGOTREF(__pyx_t_5);
          __Pyx_XGOTREF(__pyx_t_11);
          __Pyx_XGOTREF(__pyx_t_10);
          __Pyx_XGOTREF(__pyx_t_9);
          __Pyx_XGOTREF(__pyx_t_13);
          __Pyx_XGOTREF(__pyx_t_19);
          __pyx_t_16 = __pyx_lineno; __pyx_t_17 = __pyx_clineno; __pyx_t_18 = __pyx_filename;
          {
            __Pyx_DECREF(__pyx_v_e);
            __pyx_v_e = NULL;
          }
          if (PY_MAJOR_VERSION >= 3) {
            __Pyx_XGIVEREF(__pyx_t_9);
            __Pyx_XGIVEREF(__pyx_t_13);
            __Pyx_XGIVEREF(__pyx_t_19);
            __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_13, __pyx_t_19);
          }
          __Pyx_XGIVEREF(__pyx_t_5);
          __Pyx_XGIVEREF(__pyx_t_11);
          __Pyx_XGIVEREF(__pyx_t_10);
          __Pyx_ErrRestore(__pyx_t_5, __pyx_t_11, __pyx_t_10);
          __pyx_t_5 = 0; __pyx_t_11 = 0; __pyx_t_10 = 0; __pyx_t_9 = 0; __pyx_t_13 = 0; __pyx_t_19 = 0;
          __pyx_lineno = __pyx_t_16; __pyx_clineno = __pyx_t_17; __pyx_filename = __pyx_t_18;
          goto __pyx_L5_except_error;
        }
        __pyx_L35:;
      }
      __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      goto __pyx_L4_exception_handled;
    }

    /* "src/llfuse/handlers.pxi":468
 *     except FUSEError as e:
 *         ret = fuse_reply_err(req, e.errno)
 *     except BaseException as e:             # <<<<<<<<<<<<<<
 *         ret = handle_exc('releasedir', e, req)
 * 
 */
    __pyx_t_17 = PyErr_ExceptionMatches(__pyx_builtin_BaseException);
    if (__pyx_t_17) {
      __Pyx_AddTraceback("llfuse.capi.fuse_releasedir", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_6, &__pyx_t_12) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 468; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_GOTREF(__pyx_t_12);
      __Pyx_INCREF(__pyx_t_6);
      __pyx_v_e = __pyx_t_6;
      /*try:*/ {

        /* "src/llfuse/handlers.pxi":469
 *         ret = fuse_reply_err(req, e.errno)
 *     except BaseException as e:
 *         ret = handle_exc('releasedir', e, req)             # <<<<<<<<<<<<<<
 * 
 *     if ret != 0:
 */
        __pyx_v_ret = __pyx_f_6llfuse_4capi_handle_exc(__pyx_k_releasedir, __pyx_v_e, __pyx_v_req);
      }

      /* "src/llfuse/handlers.pxi":468
 *     except FUSEError as e:
 *         ret = fuse_reply_err(req, e.errno)
 *     except BaseException as e:             # <<<<<<<<<<<<<<
 *         ret = handle_exc('releasedir', e, req)
 * 
 */
      /*finally:*/ {
        /*normal exit:*/{
          __Pyx_DECREF(__pyx_v_e);
          __pyx_v_e = NULL;
          goto __pyx_L46;
        }
        __pyx_L46:;
      }
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
      goto __pyx_L4_exception_handled;
    }
    goto __pyx_L5_except_error;
    __pyx_L5_except_error:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L1_error;
    __pyx_L4_exception_handled:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    __pyx_L10_try_end:;
  }

  /* "src/llfuse/handlers.pxi":471
 *         ret = handle_exc('releasedir', e, req)
 * 
 *     if ret != 0:             # <<<<<<<<<<<<<<
 *         log.error('fuse_releasedir(): fuse_reply_* failed with %s', strerror(-ret))
 * 
 */
  __pyx_t_15 = ((__pyx_v_ret != 0) != 0);
  if (__pyx_t_15) {

    /* "src/llfuse/handlers.pxi":472
 * 
 *     if ret != 0:
 *         log.error('fuse_releasedir(): fuse_reply_* failed with %s', strerror(-ret))             # <<<<<<<<<<<<<<
 * 
 * 
 */
    __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s_log); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 472; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_error); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 472; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_7 = __Pyx_GetModuleGlobalName(__pyx_n_s_strerror); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 472; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_8 = __Pyx_PyInt_From_int((-__pyx_v_ret)); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 472; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_20 = NULL;
    if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_7))) {
      __pyx_t_20 = PyMethod_GET_SELF(__pyx_t_7);
      if (likely(__pyx_t_20)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
        __Pyx_INCREF(__pyx_t_20);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_7, function);
      }
    }
    if (!__pyx_t_20) {
      __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_8); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 472; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_GOTREF(__pyx_t_6);
    } else {
      __pyx_t_21 = PyTuple_New(1+1); if (unlikely(!__pyx_t_21)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 472; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_21);
      PyTuple_SET_ITEM(__pyx_t_21, 0, __pyx_t_20); __Pyx_GIVEREF(__pyx_t_20); __pyx_t_20 = NULL;
      PyTuple_SET_ITEM(__pyx_t_21, 0+1, __pyx_t_8);
      __Pyx_GIVEREF(__pyx_t_8);
      __pyx_t_8 = 0;
      __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_21, NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 472; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
    }
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_t_7 = NULL;
    __pyx_t_22 = 0;
    if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_4);
      if (likely(__pyx_t_7)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
        __Pyx_INCREF(__pyx_t_7);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_4, function);
        __pyx_t_22 = 1;
      }
    }
    __pyx_t_21 = PyTuple_New(2+__pyx_t_22); if (unlikely(!__pyx_t_21)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 472; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_21);
    if (__pyx_t_7) {
      PyTuple_SET_ITEM(__pyx_t_21, 0, __pyx_t_7); __Pyx_GIVEREF(__pyx_t_7); __pyx_t_7 = NULL;
    }
    __Pyx_INCREF(__pyx_kp_u_fuse_releasedir_fuse_reply__fail);
    PyTuple_SET_ITEM(__pyx_t_21, 0+__pyx_t_22, __pyx_kp_u_fuse_releasedir_fuse_reply__fail);
    __Pyx_GIVEREF(__pyx_kp_u_fuse_releasedir_fuse_reply__fail);
    PyTuple_SET_ITEM(__pyx_t_21, 1+__pyx_t_22, __pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_6);
    __pyx_t_6 = 0;
    __pyx_t_12 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_21, NULL); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 472; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_12);
    __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    goto __pyx_L47;
  }
  __pyx_L47:;

  /* "src/llfuse/handlers.pxi":459
 *         log.error('fuse_readdir(): fuse_reply_* failed with %s', strerror(-ret))
 * 
 * cdef void fuse_releasedir (fuse_req_t req, fuse_ino_t ino, fuse_file_info *fi) with gil:             # <<<<<<<<<<<<<<
 *     cdef int ret
 * 
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_XDECREF(__pyx_t_20);
  __Pyx_XDECREF(__pyx_t_21);
  __Pyx_WriteUnraisable("llfuse.capi.fuse_releasedir", __pyx_clineno, __pyx_lineno, __pyx_filename, 0);
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_e);
  __Pyx_RefNannyFinishContext();
  #ifdef WITH_THREAD
  PyGILState_Release(__pyx_gilstate_save);
  #endif
}

/* "src/llfuse/handlers.pxi":475
 * 
 * 
 * cdef void fuse_fsyncdir (fuse_req_t req, fuse_ino_t ino, int datasync,             # <<<<<<<<<<<<<<
 *                          fuse_file_info *fi) with gil:
 *     cdef int ret
 */

static void __pyx_f_6llfuse_4capi_fuse_fsyncdir(fuse_req_t __pyx_v_req, CYTHON_UNUSED fuse_ino_t __pyx_v_ino, int __pyx_v_datasync, struct fuse_file_info *__pyx_v_fi) {
  int __pyx_v_ret;
  PyObject *__pyx_v_e = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  Py_ssize_t __pyx_t_13;
  PyObject *__pyx_t_14 = NULL;
  PyObject *__pyx_t_15 = NULL;
  int __pyx_t_16;
  int __pyx_t_17;
  int __pyx_t_18;
  int __pyx_t_19;
  char const *__pyx_t_20;
  PyObject *__pyx_t_21 = NULL;
  PyObject *__pyx_t_22 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  #ifdef WITH_THREAD
  PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure();
  #endif
  __Pyx_RefNannySetupContext("fuse_fsyncdir", 0);

  /* "src/llfuse/handlers.pxi":479
 *     cdef int ret
 * 
 *     try:             # <<<<<<<<<<<<<<
 *         with lock:
 *             operations.fsyncdir(fi.fh, datasync != 0)
 */
  {
    __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);
    __Pyx_XGOTREF(__pyx_t_1);
    __Pyx_XGOTREF(__pyx_t_2);
    __Pyx_XGOTREF(__pyx_t_3);
    /*try:*/ {

      /* "src/llfuse/handlers.pxi":480
 * 
 *     try:
 *         with lock:             # <<<<<<<<<<<<<<
 *             operations.fsyncdir(fi.fh, datasync != 0)
 *         ret = fuse_reply_err(req, 0)
 */
      /*with:*/ {
        __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_lock); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 480; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_5 = __Pyx_PyObject_LookupSpecial(__pyx_t_4, __pyx_n_s_exit); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 480; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_7 = __Pyx_PyObject_LookupSpecial(__pyx_t_4, __pyx_n_s_enter); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 480; __pyx_clineno = __LINE__; goto __pyx_L11_error;}
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_8 = NULL;
        if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_7))) {
          __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7);
          if (likely(__pyx_t_8)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
            __Pyx_INCREF(__pyx_t_8);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_7, function);
          }
        }
        if (__pyx_t_8) {
          __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_8); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 480; __pyx_clineno = __LINE__; goto __pyx_L11_error;}
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        } else {
          __pyx_t_6 = __Pyx_PyObject_CallNoArg(__pyx_t_7); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 480; __pyx_clineno = __LINE__; goto __pyx_L11_error;}
        }
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        /*try:*/ {
          {
            __Pyx_ExceptionSave(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
            __Pyx_XGOTREF(__pyx_t_9);
            __Pyx_XGOTREF(__pyx_t_10);
            __Pyx_XGOTREF(__pyx_t_11);
            /*try:*/ {

              /* "src/llfuse/handlers.pxi":481
 *     try:
 *         with lock:
 *             operations.fsyncdir(fi.fh, datasync != 0)             # <<<<<<<<<<<<<<
 *         ret = fuse_reply_err(req, 0)
 *     except FUSEError as e:
 */
              __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_6llfuse_4capi_operations, __pyx_n_s_fsyncdir); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 481; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
              __Pyx_GOTREF(__pyx_t_6);
              __pyx_t_7 = __Pyx_PyInt_From_uint64_t(__pyx_v_fi->fh); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 481; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
              __Pyx_GOTREF(__pyx_t_7);
              __pyx_t_8 = __Pyx_PyBool_FromLong((__pyx_v_datasync != 0)); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 481; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
              __Pyx_GOTREF(__pyx_t_8);
              __pyx_t_12 = NULL;
              __pyx_t_13 = 0;
              if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_6))) {
                __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_6);
                if (likely(__pyx_t_12)) {
                  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
                  __Pyx_INCREF(__pyx_t_12);
                  __Pyx_INCREF(function);
                  __Pyx_DECREF_SET(__pyx_t_6, function);
                  __pyx_t_13 = 1;
                }
              }
              __pyx_t_14 = PyTuple_New(2+__pyx_t_13); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 481; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
              __Pyx_GOTREF(__pyx_t_14);
              if (__pyx_t_12) {
                PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_12); __Pyx_GIVEREF(__pyx_t_12); __pyx_t_12 = NULL;
              }
              PyTuple_SET_ITEM(__pyx_t_14, 0+__pyx_t_13, __pyx_t_7);
              __Pyx_GIVEREF(__pyx_t_7);
              PyTuple_SET_ITEM(__pyx_t_14, 1+__pyx_t_13, __pyx_t_8);
              __Pyx_GIVEREF(__pyx_t_8);
              __pyx_t_7 = 0;
              __pyx_t_8 = 0;
              __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_14, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 481; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
              __Pyx_GOTREF(__pyx_t_4);
              __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
              __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
              __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
            }
            __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
            __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
            __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
            goto __pyx_L24_try_end;
            __pyx_L17_error:;
            __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
            __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
            __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
            __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
            __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
            __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;

            /* "src/llfuse/handlers.pxi":480
 * 
 *     try:
 *         with lock:             # <<<<<<<<<<<<<<
 *             operations.fsyncdir(fi.fh, datasync != 0)
 *         ret = fuse_reply_err(req, 0)
 */
            /*except:*/ {
              __Pyx_AddTraceback("llfuse.capi.fuse_fsyncdir", __pyx_clineno, __pyx_lineno, __pyx_filename);
              if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_6, &__pyx_t_14) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 480; __pyx_clineno = __LINE__; goto __pyx_L19_except_error;}
              __Pyx_GOTREF(__pyx_t_4);
              __Pyx_GOTREF(__pyx_t_6);
              __Pyx_GOTREF(__pyx_t_14);
              __pyx_t_8 = PyTuple_Pack(3, __pyx_t_4, __pyx_t_6, __pyx_t_14); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 480; __pyx_clineno = __LINE__; goto __pyx_L19_except_error;}
              __Pyx_GOTREF(__pyx_t_8);
              __pyx_t_15 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_8, NULL);
              __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
              __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
              if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 480; __pyx_clineno = __LINE__; goto __pyx_L19_except_error;}
              __Pyx_GOTREF(__pyx_t_15);
              __pyx_t_16 = __Pyx_PyObject_IsTrue(__pyx_t_15);
              __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
              if (__pyx_t_16 < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 480; __pyx_clineno = __LINE__; goto __pyx_L19_except_error;}
              __pyx_t_17 = ((!(__pyx_t_16 != 0)) != 0);
              if (__pyx_t_17) {
                __Pyx_GIVEREF(__pyx_t_4);
                __Pyx_GIVEREF(__pyx_t_6);
                __Pyx_XGIVEREF(__pyx_t_14);
                __Pyx_ErrRestore(__pyx_t_4, __pyx_t_6, __pyx_t_14);
                __pyx_t_4 = 0; __pyx_t_6 = 0; __pyx_t_14 = 0; 
                {__pyx_filename = __pyx_f[0]; __pyx_lineno = 480; __pyx_clineno = __LINE__; goto __pyx_L19_except_error;}
              }
              __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
              __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
              __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
              goto __pyx_L18_exception_handled;
            }
            __pyx_L19_except_error:;
            __Pyx_XGIVEREF(__pyx_t_9);
            __Pyx_XGIVEREF(__pyx_t_10);
            __Pyx_XGIVEREF(__pyx_t_11);
            __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11);
            goto __pyx_L3_error;
            __pyx_L18_exception_handled:;
            __Pyx_XGIVEREF(__pyx_t_9);
            __Pyx_XGIVEREF(__pyx_t_10);
            __Pyx_XGIVEREF(__pyx_t_11);
            __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11);
            __pyx_L24_try_end:;
          }
        }
        /*finally:*/ {
          /*normal exit:*/{
            if (__pyx_t_5) {
              __pyx_t_11 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_tuple__24, NULL);
              __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
              if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 480; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
              __Pyx_GOTREF(__pyx_t_11);
              __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
            }
            goto __pyx_L16;
          }
          __pyx_L16:;
        }
        goto __pyx_L28;
        __pyx_L11_error:;
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        goto __pyx_L3_error;
        __pyx_L28:;
      }

      /* "src/llfuse/handlers.pxi":482
 *         with lock:
 *             operations.fsyncdir(fi.fh, datasync != 0)
 *         ret = fuse_reply_err(req, 0)             # <<<<<<<<<<<<<<
 *     except FUSEError as e:
 *         ret = fuse_reply_err(req, e.errno)
 */
      __pyx_v_ret = fuse_reply_err(__pyx_v_req, 0);
    }
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    goto __pyx_L10_try_end;
    __pyx_L3_error:;
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;

    /* "src/llfuse/handlers.pxi":483
 *             operations.fsyncdir(fi.fh, datasync != 0)
 *         ret = fuse_reply_err(req, 0)
 *     except FUSEError as e:             # <<<<<<<<<<<<<<
 *         ret = fuse_reply_err(req, e.errno)
 *     except BaseException as e:
 */
    __pyx_t_14 = __Pyx_GetModuleGlobalName(__pyx_n_s_FUSEError); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 483; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
    __Pyx_GOTREF(__pyx_t_14);
    __pyx_t_18 = PyErr_ExceptionMatches(__pyx_t_14);
    __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
    if (__pyx_t_18) {
      __Pyx_AddTraceback("llfuse.capi.fuse_fsyncdir", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_14, &__pyx_t_6, &__pyx_t_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 483; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
      __Pyx_GOTREF(__pyx_t_14);
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_6);
      __pyx_v_e = __pyx_t_6;
      /*try:*/ {

        /* "src/llfuse/handlers.pxi":484
 *         ret = fuse_reply_err(req, 0)
 *     except FUSEError as e:
 *         ret = fuse_reply_err(req, e.errno)             # <<<<<<<<<<<<<<
 *     except BaseException as e:
 *         ret = handle_exc('fsyncdir', e, req)
 */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_e, __pyx_n_s_errno); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 484; __pyx_clineno = __LINE__; goto __pyx_L34_error;}
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_18 = __Pyx_PyInt_As_int(__pyx_t_8); if (unlikely((__pyx_t_18 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 484; __pyx_clineno = __LINE__; goto __pyx_L34_error;}
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __pyx_v_ret = fuse_reply_err(__pyx_v_req, __pyx_t_18);
      }

      /* "src/llfuse/handlers.pxi":483
 *             operations.fsyncdir(fi.fh, datasync != 0)
 *         ret = fuse_reply_err(req, 0)
 *     except FUSEError as e:             # <<<<<<<<<<<<<<
 *         ret = fuse_reply_err(req, e.errno)
 *     except BaseException as e:
 */
      /*finally:*/ {
        /*normal exit:*/{
          __Pyx_DECREF(__pyx_v_e);
          __pyx_v_e = NULL;
          goto __pyx_L35;
        }
        /*exception exit:*/{
          __pyx_L34_error:;
          __pyx_t_5 = 0; __pyx_t_11 = 0; __pyx_t_10 = 0; __pyx_t_9 = 0; __pyx_t_15 = 0; __pyx_t_21 = 0;
          __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
          if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_9, &__pyx_t_15, &__pyx_t_21);
          if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_5, &__pyx_t_11, &__pyx_t_10) < 0)) __Pyx_ErrFetch(&__pyx_t_5, &__pyx_t_11, &__pyx_t_10);
          __Pyx_XGOTREF(__pyx_t_5);
          __Pyx_XGOTREF(__pyx_t_11);
          __Pyx_XGOTREF(__pyx_t_10);
          __Pyx_XGOTREF(__pyx_t_9);
          __Pyx_XGOTREF(__pyx_t_15);
          __Pyx_XGOTREF(__pyx_t_21);
          __pyx_t_18 = __pyx_lineno; __pyx_t_19 = __pyx_clineno; __pyx_t_20 = __pyx_filename;
          {
            __Pyx_DECREF(__pyx_v_e);
            __pyx_v_e = NULL;
          }
          if (PY_MAJOR_VERSION >= 3) {
            __Pyx_XGIVEREF(__pyx_t_9);
            __Pyx_XGIVEREF(__pyx_t_15);
            __Pyx_XGIVEREF(__pyx_t_21);
            __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_15, __pyx_t_21);
          }
          __Pyx_XGIVEREF(__pyx_t_5);
          __Pyx_XGIVEREF(__pyx_t_11);
          __Pyx_XGIVEREF(__pyx_t_10);
          __Pyx_ErrRestore(__pyx_t_5, __pyx_t_11, __pyx_t_10);
          __pyx_t_5 = 0; __pyx_t_11 = 0; __pyx_t_10 = 0; __pyx_t_9 = 0; __pyx_t_15 = 0; __pyx_t_21 = 0;
          __pyx_lineno = __pyx_t_18; __pyx_clineno = __pyx_t_19; __pyx_filename = __pyx_t_20;
          goto __pyx_L5_except_error;
        }
        __pyx_L35:;
      }
      __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      goto __pyx_L4_exception_handled;
    }

    /* "src/llfuse/handlers.pxi":485
 *     except FUSEError as e:
 *         ret = fuse_reply_err(req, e.errno)
 *     except BaseException as e:             # <<<<<<<<<<<<<<
 *         ret = handle_exc('fsyncdir', e, req)
 * 
 */
    __pyx_t_19 = PyErr_ExceptionMatches(__pyx_builtin_BaseException);
    if (__pyx_t_19) {
      __Pyx_AddTraceback("llfuse.capi.fuse_fsyncdir", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_6, &__pyx_t_14) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 485; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_GOTREF(__pyx_t_14);
      __Pyx_INCREF(__pyx_t_6);
      __pyx_v_e = __pyx_t_6;
      /*try:*/ {

        /* "src/llfuse/handlers.pxi":486
 *         ret = fuse_reply_err(req, e.errno)
 *     except BaseException as e:
 *         ret = handle_exc('fsyncdir', e, req)             # <<<<<<<<<<<<<<
 * 
 *     if ret != 0:
 */
        __pyx_v_ret = __pyx_f_6llfuse_4capi_handle_exc(__pyx_k_fsyncdir, __pyx_v_e, __pyx_v_req);
      }

      /* "src/llfuse/handlers.pxi":485
 *     except FUSEError as e:
 *         ret = fuse_reply_err(req, e.errno)
 *     except BaseException as e:             # <<<<<<<<<<<<<<
 *         ret = handle_exc('fsyncdir', e, req)
 * 
 */
      /*finally:*/ {
        /*normal exit:*/{
          __Pyx_DECREF(__pyx_v_e);
          __pyx_v_e = NULL;
          goto __pyx_L46;
        }
        __pyx_L46:;
      }
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
      goto __pyx_L4_exception_handled;
    }
    goto __pyx_L5_except_error;
    __pyx_L5_except_error:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L1_error;
    __pyx_L4_exception_handled:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    __pyx_L10_try_end:;
  }

  /* "src/llfuse/handlers.pxi":488
 *         ret = handle_exc('fsyncdir', e, req)
 * 
 *     if ret != 0:             # <<<<<<<<<<<<<<
 *         log.error('fuse_fsyncdir(): fuse_reply_* failed with %s', strerror(-ret))
 * 
 */
  __pyx_t_17 = ((__pyx_v_ret != 0) != 0);
  if (__pyx_t_17) {

    /* "src/llfuse/handlers.pxi":489
 * 
 *     if ret != 0:
 *         log.error('fuse_fsyncdir(): fuse_reply_* failed with %s', strerror(-ret))             # <<<<<<<<<<<<<<
 * 
 * 
 */
    __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s_log); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 489; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_error); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 489; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_8 = __Pyx_GetModuleGlobalName(__pyx_n_s_strerror); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 489; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_7 = __Pyx_PyInt_From_int((-__pyx_v_ret)); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 489; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_12 = NULL;
    if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_8))) {
      __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_8);
      if (likely(__pyx_t_12)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
        __Pyx_INCREF(__pyx_t_12);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_8, function);
      }
    }
    if (!__pyx_t_12) {
      __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_7); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 489; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_GOTREF(__pyx_t_6);
    } else {
      __pyx_t_22 = PyTuple_New(1+1); if (unlikely(!__pyx_t_22)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 489; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_22);
      PyTuple_SET_ITEM(__pyx_t_22, 0, __pyx_t_12); __Pyx_GIVEREF(__pyx_t_12); __pyx_t_12 = NULL;
      PyTuple_SET_ITEM(__pyx_t_22, 0+1, __pyx_t_7);
      __Pyx_GIVEREF(__pyx_t_7);
      __pyx_t_7 = 0;
      __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_22, NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 489; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
    }
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __pyx_t_8 = NULL;
    __pyx_t_13 = 0;
    if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_4);
      if (likely(__pyx_t_8)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
        __Pyx_INCREF(__pyx_t_8);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_4, function);
        __pyx_t_13 = 1;
      }
    }
    __pyx_t_22 = PyTuple_New(2+__pyx_t_13); if (unlikely(!__pyx_t_22)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 489; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_22);
    if (__pyx_t_8) {
      PyTuple_SET_ITEM(__pyx_t_22, 0, __pyx_t_8); __Pyx_GIVEREF(__pyx_t_8); __pyx_t_8 = NULL;
    }
    __Pyx_INCREF(__pyx_kp_u_fuse_fsyncdir_fuse_reply__failed);
    PyTuple_SET_ITEM(__pyx_t_22, 0+__pyx_t_13, __pyx_kp_u_fuse_fsyncdir_fuse_reply__failed);
    __Pyx_GIVEREF(__pyx_kp_u_fuse_fsyncdir_fuse_reply__failed);
    PyTuple_SET_ITEM(__pyx_t_22, 1+__pyx_t_13, __pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_6);
    __pyx_t_6 = 0;
    __pyx_t_14 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_22, NULL); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 489; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_14);
    __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
    goto __pyx_L47;
  }
  __pyx_L47:;

  /* "src/llfuse/handlers.pxi":475
 * 
 * 
 * cdef void fuse_fsyncdir (fuse_req_t req, fuse_ino_t ino, int datasync,             # <<<<<<<<<<<<<<
 *                          fuse_file_info *fi) with gil:
 *     cdef int ret
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_XDECREF(__pyx_t_14);
  __Pyx_XDECREF(__pyx_t_22);
  __Pyx_WriteUnraisable("llfuse.capi.fuse_fsyncdir", __pyx_clineno, __pyx_lineno, __pyx_filename, 0);
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_e);
  __Pyx_RefNannyFinishContext();
  #ifdef WITH_THREAD
  PyGILState_Release(__pyx_gilstate_save);
  #endif
}

/* "src/llfuse/handlers.pxi":492
 * 
 * 
 * cdef void fuse_statfs (fuse_req_t req, fuse_ino_t ino) with gil:             # <<<<<<<<<<<<<<
 *     cdef int ret
 *     cdef statvfs cstats
 */

static void __pyx_f_6llfuse_4capi_fuse_statfs(fuse_req_t __pyx_v_req, CYTHON_UNUSED fuse_ino_t __pyx_v_ino) {
  int __pyx_v_ret;
  struct statvfs __pyx_v_cstats;
  PyObject *__pyx_v_stats = NULL;
  PyObject *__pyx_v_e = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  int __pyx_t_13;
  int __pyx_t_14;
  int __pyx_t_15;
  int __pyx_t_16;
  char const *__pyx_t_17;
  PyObject *__pyx_t_18 = NULL;
  PyObject *__pyx_t_19 = NULL;
  PyObject *__pyx_t_20 = NULL;
  PyObject *__pyx_t_21 = NULL;
  Py_ssize_t __pyx_t_22;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  #ifdef WITH_THREAD
  PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure();
  #endif
  __Pyx_RefNannySetupContext("fuse_statfs", 0);

  /* "src/llfuse/handlers.pxi":497
 * 
 *     # We don't set all the components
 *     string.memset(&cstats, 0, sizeof(cstats))             # <<<<<<<<<<<<<<
 *     try:
 *         with lock:
 */
  memset((&__pyx_v_cstats), 0, (sizeof(__pyx_v_cstats)));

  /* "src/llfuse/handlers.pxi":498
 *     # We don't set all the components
 *     string.memset(&cstats, 0, sizeof(cstats))
 *     try:             # <<<<<<<<<<<<<<
 *         with lock:
 *             stats = operations.statfs()
 */
  {
    __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);
    __Pyx_XGOTREF(__pyx_t_1);
    __Pyx_XGOTREF(__pyx_t_2);
    __Pyx_XGOTREF(__pyx_t_3);
    /*try:*/ {

      /* "src/llfuse/handlers.pxi":499
 *     string.memset(&cstats, 0, sizeof(cstats))
 *     try:
 *         with lock:             # <<<<<<<<<<<<<<
 *             stats = operations.statfs()
 * 
 */
      /*with:*/ {
        __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_lock); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 499; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_5 = __Pyx_PyObject_LookupSpecial(__pyx_t_4, __pyx_n_s_exit); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 499; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_7 = __Pyx_PyObject_LookupSpecial(__pyx_t_4, __pyx_n_s_enter); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 499; __pyx_clineno = __LINE__; goto __pyx_L11_error;}
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_8 = NULL;
        if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_7))) {
          __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7);
          if (likely(__pyx_t_8)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
            __Pyx_INCREF(__pyx_t_8);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_7, function);
          }
        }
        if (__pyx_t_8) {
          __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_8); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 499; __pyx_clineno = __LINE__; goto __pyx_L11_error;}
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        } else {
          __pyx_t_6 = __Pyx_PyObject_CallNoArg(__pyx_t_7); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 499; __pyx_clineno = __LINE__; goto __pyx_L11_error;}
        }
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        /*try:*/ {
          {
            __Pyx_ExceptionSave(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
            __Pyx_XGOTREF(__pyx_t_9);
            __Pyx_XGOTREF(__pyx_t_10);
            __Pyx_XGOTREF(__pyx_t_11);
            /*try:*/ {

              /* "src/llfuse/handlers.pxi":500
 *     try:
 *         with lock:
 *             stats = operations.statfs()             # <<<<<<<<<<<<<<
 * 
 *         fill_statvfs(stats, &cstats)
 */
              __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_6llfuse_4capi_operations, __pyx_n_s_statfs); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 500; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
              __Pyx_GOTREF(__pyx_t_6);
              __pyx_t_7 = NULL;
              if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_6))) {
                __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6);
                if (likely(__pyx_t_7)) {
                  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
                  __Pyx_INCREF(__pyx_t_7);
                  __Pyx_INCREF(function);
                  __Pyx_DECREF_SET(__pyx_t_6, function);
                }
              }
              if (__pyx_t_7) {
                __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_7); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 500; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
                __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
              } else {
                __pyx_t_4 = __Pyx_PyObject_CallNoArg(__pyx_t_6); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 500; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
              }
              __Pyx_GOTREF(__pyx_t_4);
              __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
              __pyx_v_stats = __pyx_t_4;
              __pyx_t_4 = 0;
            }
            __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
            __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
            __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
            goto __pyx_L24_try_end;
            __pyx_L17_error:;
            __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
            __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
            __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
            __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;

            /* "src/llfuse/handlers.pxi":499
 *     string.memset(&cstats, 0, sizeof(cstats))
 *     try:
 *         with lock:             # <<<<<<<<<<<<<<
 *             stats = operations.statfs()
 * 
 */
            /*except:*/ {
              __Pyx_AddTraceback("llfuse.capi.fuse_statfs", __pyx_clineno, __pyx_lineno, __pyx_filename);
              if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_6, &__pyx_t_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 499; __pyx_clineno = __LINE__; goto __pyx_L19_except_error;}
              __Pyx_GOTREF(__pyx_t_4);
              __Pyx_GOTREF(__pyx_t_6);
              __Pyx_GOTREF(__pyx_t_7);
              __pyx_t_8 = PyTuple_Pack(3, __pyx_t_4, __pyx_t_6, __pyx_t_7); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 499; __pyx_clineno = __LINE__; goto __pyx_L19_except_error;}
              __Pyx_GOTREF(__pyx_t_8);
              __pyx_t_12 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_8, NULL);
              __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
              __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
              if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 499; __pyx_clineno = __LINE__; goto __pyx_L19_except_error;}
              __Pyx_GOTREF(__pyx_t_12);
              __pyx_t_13 = __Pyx_PyObject_IsTrue(__pyx_t_12);
              __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
              if (__pyx_t_13 < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 499; __pyx_clineno = __LINE__; goto __pyx_L19_except_error;}
              __pyx_t_14 = ((!(__pyx_t_13 != 0)) != 0);
              if (__pyx_t_14) {
                __Pyx_GIVEREF(__pyx_t_4);
                __Pyx_GIVEREF(__pyx_t_6);
                __Pyx_XGIVEREF(__pyx_t_7);
                __Pyx_ErrRestore(__pyx_t_4, __pyx_t_6, __pyx_t_7);
                __pyx_t_4 = 0; __pyx_t_6 = 0; __pyx_t_7 = 0; 
                {__pyx_filename = __pyx_f[0]; __pyx_lineno = 499; __pyx_clineno = __LINE__; goto __pyx_L19_except_error;}
              }
              __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
              __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
              __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
              goto __pyx_L18_exception_handled;
            }
            __pyx_L19_except_error:;
            __Pyx_XGIVEREF(__pyx_t_9);
            __Pyx_XGIVEREF(__pyx_t_10);
            __Pyx_XGIVEREF(__pyx_t_11);
            __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11);
            goto __pyx_L3_error;
            __pyx_L18_exception_handled:;
            __Pyx_XGIVEREF(__pyx_t_9);
            __Pyx_XGIVEREF(__pyx_t_10);
            __Pyx_XGIVEREF(__pyx_t_11);
            __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11);
            __pyx_L24_try_end:;
          }
        }
        /*finally:*/ {
          /*normal exit:*/{
            if (__pyx_t_5) {
              __pyx_t_11 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_tuple__25, NULL);
              __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
              if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 499; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
              __Pyx_GOTREF(__pyx_t_11);
              __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
            }
            goto __pyx_L16;
          }
          __pyx_L16:;
        }
        goto __pyx_L28;
        __pyx_L11_error:;
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        goto __pyx_L3_error;
        __pyx_L28:;
      }

      /* "src/llfuse/handlers.pxi":502
 *             stats = operations.statfs()
 * 
 *         fill_statvfs(stats, &cstats)             # <<<<<<<<<<<<<<
 *         ret = fuse_reply_statfs(req, &cstats)
 *     except FUSEError as e:
 */
      if (unlikely(!__pyx_v_stats)) { __Pyx_RaiseUnboundLocalError("stats"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 502; __pyx_clineno = __LINE__; goto __pyx_L3_error;} }
      __pyx_t_7 = __pyx_f_6llfuse_4capi_fill_statvfs(__pyx_v_stats, (&__pyx_v_cstats)); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 502; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

      /* "src/llfuse/handlers.pxi":503
 * 
 *         fill_statvfs(stats, &cstats)
 *         ret = fuse_reply_statfs(req, &cstats)             # <<<<<<<<<<<<<<
 *     except FUSEError as e:
 *         ret = fuse_reply_err(req, e.errno)
 */
      __pyx_v_ret = fuse_reply_statfs(__pyx_v_req, (&__pyx_v_cstats));
    }
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    goto __pyx_L10_try_end;
    __pyx_L3_error:;
    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;

    /* "src/llfuse/handlers.pxi":504
 *         fill_statvfs(stats, &cstats)
 *         ret = fuse_reply_statfs(req, &cstats)
 *     except FUSEError as e:             # <<<<<<<<<<<<<<
 *         ret = fuse_reply_err(req, e.errno)
 *     except BaseException as e:
 */
    __pyx_t_7 = __Pyx_GetModuleGlobalName(__pyx_n_s_FUSEError); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 504; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_15 = PyErr_ExceptionMatches(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (__pyx_t_15) {
      __Pyx_AddTraceback("llfuse.capi.fuse_statfs", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_7, &__pyx_t_6, &__pyx_t_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 504; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_6);
      __pyx_v_e = __pyx_t_6;
      /*try:*/ {

        /* "src/llfuse/handlers.pxi":505
 *         ret = fuse_reply_statfs(req, &cstats)
 *     except FUSEError as e:
 *         ret = fuse_reply_err(req, e.errno)             # <<<<<<<<<<<<<<
 *     except BaseException as e:
 *         ret = handle_exc('statfs', e, req)
 */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_e, __pyx_n_s_errno); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 505; __pyx_clineno = __LINE__; goto __pyx_L34_error;}
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_15 = __Pyx_PyInt_As_int(__pyx_t_8); if (unlikely((__pyx_t_15 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 505; __pyx_clineno = __LINE__; goto __pyx_L34_error;}
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __pyx_v_ret = fuse_reply_err(__pyx_v_req, __pyx_t_15);
      }

      /* "src/llfuse/handlers.pxi":504
 *         fill_statvfs(stats, &cstats)
 *         ret = fuse_reply_statfs(req, &cstats)
 *     except FUSEError as e:             # <<<<<<<<<<<<<<
 *         ret = fuse_reply_err(req, e.errno)
 *     except BaseException as e:
 */
      /*finally:*/ {
        /*normal exit:*/{
          __Pyx_DECREF(__pyx_v_e);
          __pyx_v_e = NULL;
          goto __pyx_L35;
        }
        /*exception exit:*/{
          __pyx_L34_error:;
          __pyx_t_5 = 0; __pyx_t_11 = 0; __pyx_t_10 = 0; __pyx_t_9 = 0; __pyx_t_12 = 0; __pyx_t_18 = 0;
          __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
          if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_9, &__pyx_t_12, &__pyx_t_18);
          if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_5, &__pyx_t_11, &__pyx_t_10) < 0)) __Pyx_ErrFetch(&__pyx_t_5, &__pyx_t_11, &__pyx_t_10);
          __Pyx_XGOTREF(__pyx_t_5);
          __Pyx_XGOTREF(__pyx_t_11);
          __Pyx_XGOTREF(__pyx_t_10);
          __Pyx_XGOTREF(__pyx_t_9);
          __Pyx_XGOTREF(__pyx_t_12);
          __Pyx_XGOTREF(__pyx_t_18);
          __pyx_t_15 = __pyx_lineno; __pyx_t_16 = __pyx_clineno; __pyx_t_17 = __pyx_filename;
          {
            __Pyx_DECREF(__pyx_v_e);
            __pyx_v_e = NULL;
          }
          if (PY_MAJOR_VERSION >= 3) {
            __Pyx_XGIVEREF(__pyx_t_9);
            __Pyx_XGIVEREF(__pyx_t_12);
            __Pyx_XGIVEREF(__pyx_t_18);
            __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_12, __pyx_t_18);
          }
          __Pyx_XGIVEREF(__pyx_t_5);
          __Pyx_XGIVEREF(__pyx_t_11);
          __Pyx_XGIVEREF(__pyx_t_10);
          __Pyx_ErrRestore(__pyx_t_5, __pyx_t_11, __pyx_t_10);
          __pyx_t_5 = 0; __pyx_t_11 = 0; __pyx_t_10 = 0; __pyx_t_9 = 0; __pyx_t_12 = 0; __pyx_t_18 = 0;
          __pyx_lineno = __pyx_t_15; __pyx_clineno = __pyx_t_16; __pyx_filename = __pyx_t_17;
          goto __pyx_L5_except_error;
        }
        __pyx_L35:;
      }
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      goto __pyx_L4_exception_handled;
    }

    /* "src/llfuse/handlers.pxi":506
 *     except FUSEError as e:
 *         ret = fuse_reply_err(req, e.errno)
 *     except BaseException as e:             # <<<<<<<<<<<<<<
 *         ret = handle_exc('statfs', e, req)
 * 
 */
    __pyx_t_16 = PyErr_ExceptionMatches(__pyx_builtin_BaseException);
    if (__pyx_t_16) {
      __Pyx_AddTraceback("llfuse.capi.fuse_statfs", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_6, &__pyx_t_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 506; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_INCREF(__pyx_t_6);
      __pyx_v_e = __pyx_t_6;
      /*try:*/ {

        /* "src/llfuse/handlers.pxi":507
 *         ret = fuse_reply_err(req, e.errno)
 *     except BaseException as e:
 *         ret = handle_exc('statfs', e, req)             # <<<<<<<<<<<<<<
 * 
 *     if ret != 0:
 */
        __pyx_v_ret = __pyx_f_6llfuse_4capi_handle_exc(__pyx_k_statfs, __pyx_v_e, __pyx_v_req);
      }

      /* "src/llfuse/handlers.pxi":506
 *     except FUSEError as e:
 *         ret = fuse_reply_err(req, e.errno)
 *     except BaseException as e:             # <<<<<<<<<<<<<<
 *         ret = handle_exc('statfs', e, req)
 * 
 */
      /*finally:*/ {
        /*normal exit:*/{
          __Pyx_DECREF(__pyx_v_e);
          __pyx_v_e = NULL;
          goto __pyx_L46;
        }
        __pyx_L46:;
      }
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      goto __pyx_L4_exception_handled;
    }
    goto __pyx_L5_except_error;
    __pyx_L5_except_error:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L1_error;
    __pyx_L4_exception_handled:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    __pyx_L10_try_end:;
  }

  /* "src/llfuse/handlers.pxi":509
 *         ret = handle_exc('statfs', e, req)
 * 
 *     if ret != 0:             # <<<<<<<<<<<<<<
 *         log.error('fuse_statfs(): fuse_reply_* failed with %s', strerror(-ret))
 * 
 */
  __pyx_t_14 = ((__pyx_v_ret != 0) != 0);
  if (__pyx_t_14) {

    /* "src/llfuse/handlers.pxi":510
 * 
 *     if ret != 0:
 *         log.error('fuse_statfs(): fuse_reply_* failed with %s', strerror(-ret))             # <<<<<<<<<<<<<<
 * 
 * IF TARGET_PLATFORM == 'darwin':
 */
    __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s_log); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 510; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_error); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 510; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_8 = __Pyx_GetModuleGlobalName(__pyx_n_s_strerror); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 510; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_19 = __Pyx_PyInt_From_int((-__pyx_v_ret)); if (unlikely(!__pyx_t_19)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 510; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_19);
    __pyx_t_20 = NULL;
    if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_8))) {
      __pyx_t_20 = PyMethod_GET_SELF(__pyx_t_8);
      if (likely(__pyx_t_20)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
        __Pyx_INCREF(__pyx_t_20);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_8, function);
      }
    }
    if (!__pyx_t_20) {
      __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_19); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 510; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
      __Pyx_GOTREF(__pyx_t_6);
    } else {
      __pyx_t_21 = PyTuple_New(1+1); if (unlikely(!__pyx_t_21)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 510; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_21);
      PyTuple_SET_ITEM(__pyx_t_21, 0, __pyx_t_20); __Pyx_GIVEREF(__pyx_t_20); __pyx_t_20 = NULL;
      PyTuple_SET_ITEM(__pyx_t_21, 0+1, __pyx_t_19);
      __Pyx_GIVEREF(__pyx_t_19);
      __pyx_t_19 = 0;
      __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_21, NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 510; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
    }
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __pyx_t_8 = NULL;
    __pyx_t_22 = 0;
    if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_4);
      if (likely(__pyx_t_8)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
        __Pyx_INCREF(__pyx_t_8);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_4, function);
        __pyx_t_22 = 1;
      }
    }
    __pyx_t_21 = PyTuple_New(2+__pyx_t_22); if (unlikely(!__pyx_t_21)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 510; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_21);
    if (__pyx_t_8) {
      PyTuple_SET_ITEM(__pyx_t_21, 0, __pyx_t_8); __Pyx_GIVEREF(__pyx_t_8); __pyx_t_8 = NULL;
    }
    __Pyx_INCREF(__pyx_kp_u_fuse_statfs_fuse_reply__failed_w);
    PyTuple_SET_ITEM(__pyx_t_21, 0+__pyx_t_22, __pyx_kp_u_fuse_statfs_fuse_reply__failed_w);
    __Pyx_GIVEREF(__pyx_kp_u_fuse_statfs_fuse_reply__failed_w);
    PyTuple_SET_ITEM(__pyx_t_21, 1+__pyx_t_22, __pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_6);
    __pyx_t_6 = 0;
    __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_21, NULL); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 510; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    goto __pyx_L47;
  }
  __pyx_L47:;

  /* "src/llfuse/handlers.pxi":492
 * 
 * 
 * cdef void fuse_statfs (fuse_req_t req, fuse_ino_t ino) with gil:             # <<<<<<<<<<<<<<
 *     cdef int ret
 *     cdef statvfs cstats
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_19);
  __Pyx_XDECREF(__pyx_t_20);
  __Pyx_XDECREF(__pyx_t_21);
  __Pyx_WriteUnraisable("llfuse.capi.fuse_statfs", __pyx_clineno, __pyx_lineno, __pyx_filename, 0);
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_stats);
  __Pyx_XDECREF(__pyx_v_e);
  __Pyx_RefNannyFinishContext();
  #ifdef WITH_THREAD
  PyGILState_Release(__pyx_gilstate_save);
  #endif
}

/* "src/llfuse/handlers.pxi":534
 * 
 * 
 * cdef void fuse_setxattr (fuse_req_t req, fuse_ino_t ino, const_char *cname,             # <<<<<<<<<<<<<<
 *                          const_char *cvalue, size_t size, int flags) with gil:
 *     cdef int ret
 */

static void __pyx_f_6llfuse_4capi_fuse_setxattr(fuse_req_t __pyx_v_req, fuse_ino_t __pyx_v_ino, const char *__pyx_v_cname, const char *__pyx_v_cvalue, size_t __pyx_v_size, CYTHON_UNUSED int __pyx_v_flags) {
  int __pyx_v_ret;
  PyObject *__pyx_v_name = NULL;
  PyObject *__pyx_v_value = NULL;
  PyObject *__pyx_v_e = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  PyObject *__pyx_t_13 = NULL;
  Py_ssize_t __pyx_t_14;
  PyObject *__pyx_t_15 = NULL;
  PyObject *__pyx_t_16 = NULL;
  int __pyx_t_17;
  int __pyx_t_18;
  char const *__pyx_t_19;
  PyObject *__pyx_t_20 = NULL;
  PyObject *__pyx_t_21 = NULL;
  PyObject *__pyx_t_22 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  #ifdef WITH_THREAD
  PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure();
  #endif
  __Pyx_RefNannySetupContext("fuse_setxattr", 0);

  /* "src/llfuse/handlers.pxi":538
 *     cdef int ret
 * 
 *     try:             # <<<<<<<<<<<<<<
 *         name = PyBytes_FromString(cname)
 *         value = PyBytes_FromStringAndSize(cvalue, size)
 */
  {
    __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);
    __Pyx_XGOTREF(__pyx_t_1);
    __Pyx_XGOTREF(__pyx_t_2);
    __Pyx_XGOTREF(__pyx_t_3);
    /*try:*/ {

      /* "src/llfuse/handlers.pxi":539
 * 
 *     try:
 *         name = PyBytes_FromString(cname)             # <<<<<<<<<<<<<<
 *         value = PyBytes_FromStringAndSize(cvalue, size)
 * 
 */
      __pyx_t_4 = PyBytes_FromString(__pyx_v_cname); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 539; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_v_name = ((PyObject*)__pyx_t_4);
      __pyx_t_4 = 0;

      /* "src/llfuse/handlers.pxi":540
 *     try:
 *         name = PyBytes_FromString(cname)
 *         value = PyBytes_FromStringAndSize(cvalue, size)             # <<<<<<<<<<<<<<
 * 
 *         # Special case for deadlock debugging
 */
      __pyx_t_4 = PyBytes_FromStringAndSize(__pyx_v_cvalue, __pyx_v_size); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 540; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_v_value = ((PyObject*)__pyx_t_4);
      __pyx_t_4 = 0;

      /* "src/llfuse/handlers.pxi":543
 * 
 *         # Special case for deadlock debugging
 *         if ino == FUSE_ROOT_ID and string.strcmp(cname, 'fuse_stacktrace') == 0:             # <<<<<<<<<<<<<<
 *             operations.stacktrace()
 *         else:
 */
      __pyx_t_6 = ((__pyx_v_ino == FUSE_ROOT_ID) != 0);
      if (__pyx_t_6) {
      } else {
        __pyx_t_5 = __pyx_t_6;
        goto __pyx_L12_bool_binop_done;
      }
      __pyx_t_6 = ((strcmp(__pyx_v_cname, __pyx_k_fuse_stacktrace) == 0) != 0);
      __pyx_t_5 = __pyx_t_6;
      __pyx_L12_bool_binop_done:;
      if (__pyx_t_5) {

        /* "src/llfuse/handlers.pxi":544
 *         # Special case for deadlock debugging
 *         if ino == FUSE_ROOT_ID and string.strcmp(cname, 'fuse_stacktrace') == 0:
 *             operations.stacktrace()             # <<<<<<<<<<<<<<
 *         else:
 *             IF TARGET_PLATFORM == 'freebsd':
 */
        __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_6llfuse_4capi_operations, __pyx_n_s_stacktrace); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 544; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_8 = NULL;
        if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_7))) {
          __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7);
          if (likely(__pyx_t_8)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
            __Pyx_INCREF(__pyx_t_8);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_7, function);
          }
        }
        if (__pyx_t_8) {
          __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_8); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 544; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        } else {
          __pyx_t_4 = __Pyx_PyObject_CallNoArg(__pyx_t_7); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 544; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        goto __pyx_L11;
      }
      /*else*/ {

        /* "src/llfuse/handlers.pxi":548
 *             IF TARGET_PLATFORM == 'freebsd':
 *                 # No known flags
 *                 with lock:             # <<<<<<<<<<<<<<
 *                     operations.setxattr(ino, name, value)
 *             ELSE:
 */
        /*with:*/ {
          __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_lock); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 548; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
          __Pyx_GOTREF(__pyx_t_4);
          __pyx_t_9 = __Pyx_PyObject_LookupSpecial(__pyx_t_4, __pyx_n_s_exit); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 548; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
          __Pyx_GOTREF(__pyx_t_9);
          __pyx_t_8 = __Pyx_PyObject_LookupSpecial(__pyx_t_4, __pyx_n_s_enter); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 548; __pyx_clineno = __LINE__; goto __pyx_L14_error;}
          __Pyx_GOTREF(__pyx_t_8);
          __pyx_t_10 = NULL;
          if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_8))) {
            __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_8);
            if (likely(__pyx_t_10)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
              __Pyx_INCREF(__pyx_t_10);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_8, function);
            }
          }
          if (__pyx_t_10) {
            __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_10); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 548; __pyx_clineno = __LINE__; goto __pyx_L14_error;}
            __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
          } else {
            __pyx_t_7 = __Pyx_PyObject_CallNoArg(__pyx_t_8); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 548; __pyx_clineno = __LINE__; goto __pyx_L14_error;}
          }
          __Pyx_GOTREF(__pyx_t_7);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          /*try:*/ {
            {
              __Pyx_ExceptionSave(&__pyx_t_11, &__pyx_t_12, &__pyx_t_13);
              __Pyx_XGOTREF(__pyx_t_11);
              __Pyx_XGOTREF(__pyx_t_12);
              __Pyx_XGOTREF(__pyx_t_13);
              /*try:*/ {

                /* "src/llfuse/handlers.pxi":549
 *                 # No known flags
 *                 with lock:
 *                     operations.setxattr(ino, name, value)             # <<<<<<<<<<<<<<
 *             ELSE:
 *                 # Make sure we know all the flags
 */
                __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_6llfuse_4capi_operations, __pyx_n_s_setxattr); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 549; __pyx_clineno = __LINE__; goto __pyx_L20_error;}
                __Pyx_GOTREF(__pyx_t_7);
                __pyx_t_8 = __Pyx_PyInt_From_fuse_ino_t(__pyx_v_ino); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 549; __pyx_clineno = __LINE__; goto __pyx_L20_error;}
                __Pyx_GOTREF(__pyx_t_8);
                __pyx_t_10 = NULL;
                __pyx_t_14 = 0;
                if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_7))) {
                  __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_7);
                  if (likely(__pyx_t_10)) {
                    PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
                    __Pyx_INCREF(__pyx_t_10);
                    __Pyx_INCREF(function);
                    __Pyx_DECREF_SET(__pyx_t_7, function);
                    __pyx_t_14 = 1;
                  }
                }
                __pyx_t_15 = PyTuple_New(3+__pyx_t_14); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 549; __pyx_clineno = __LINE__; goto __pyx_L20_error;}
                __Pyx_GOTREF(__pyx_t_15);
                if (__pyx_t_10) {
                  PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_10); __Pyx_GIVEREF(__pyx_t_10); __pyx_t_10 = NULL;
                }
                PyTuple_SET_ITEM(__pyx_t_15, 0+__pyx_t_14, __pyx_t_8);
                __Pyx_GIVEREF(__pyx_t_8);
                __Pyx_INCREF(__pyx_v_name);
                PyTuple_SET_ITEM(__pyx_t_15, 1+__pyx_t_14, __pyx_v_name);
                __Pyx_GIVEREF(__pyx_v_name);
                __Pyx_INCREF(__pyx_v_value);
                PyTuple_SET_ITEM(__pyx_t_15, 2+__pyx_t_14, __pyx_v_value);
                __Pyx_GIVEREF(__pyx_v_value);
                __pyx_t_8 = 0;
                __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_15, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 549; __pyx_clineno = __LINE__; goto __pyx_L20_error;}
                __Pyx_GOTREF(__pyx_t_4);
                __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
                __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
                __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
              }
              __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
              __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
              __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
              goto __pyx_L27_try_end;
              __pyx_L20_error:;
              __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
              __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
              __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0;
              __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
              __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;

              /* "src/llfuse/handlers.pxi":548
 *             IF TARGET_PLATFORM == 'freebsd':
 *                 # No known flags
 *                 with lock:             # <<<<<<<<<<<<<<
 *                     operations.setxattr(ino, name, value)
 *             ELSE:
 */
              /*except:*/ {
                __Pyx_AddTraceback("llfuse.capi.fuse_setxattr", __pyx_clineno, __pyx_lineno, __pyx_filename);
                if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_7, &__pyx_t_15) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 548; __pyx_clineno = __LINE__; goto __pyx_L22_except_error;}
                __Pyx_GOTREF(__pyx_t_4);
                __Pyx_GOTREF(__pyx_t_7);
                __Pyx_GOTREF(__pyx_t_15);
                __pyx_t_8 = PyTuple_Pack(3, __pyx_t_4, __pyx_t_7, __pyx_t_15); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 548; __pyx_clineno = __LINE__; goto __pyx_L22_except_error;}
                __Pyx_GOTREF(__pyx_t_8);
                __pyx_t_16 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_8, NULL);
                __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
                __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
                if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 548; __pyx_clineno = __LINE__; goto __pyx_L22_except_error;}
                __Pyx_GOTREF(__pyx_t_16);
                __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_16);
                __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
                if (__pyx_t_5 < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 548; __pyx_clineno = __LINE__; goto __pyx_L22_except_error;}
                __pyx_t_6 = ((!(__pyx_t_5 != 0)) != 0);
                if (__pyx_t_6) {
                  __Pyx_GIVEREF(__pyx_t_4);
                  __Pyx_GIVEREF(__pyx_t_7);
                  __Pyx_XGIVEREF(__pyx_t_15);
                  __Pyx_ErrRestore(__pyx_t_4, __pyx_t_7, __pyx_t_15);
                  __pyx_t_4 = 0; __pyx_t_7 = 0; __pyx_t_15 = 0; 
                  {__pyx_filename = __pyx_f[0]; __pyx_lineno = 548; __pyx_clineno = __LINE__; goto __pyx_L22_except_error;}
                }
                __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
                __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
                __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
                goto __pyx_L21_exception_handled;
              }
              __pyx_L22_except_error:;
              __Pyx_XGIVEREF(__pyx_t_11);
              __Pyx_XGIVEREF(__pyx_t_12);
              __Pyx_XGIVEREF(__pyx_t_13);
              __Pyx_ExceptionReset(__pyx_t_11, __pyx_t_12, __pyx_t_13);
              goto __pyx_L3_error;
              __pyx_L21_exception_handled:;
              __Pyx_XGIVEREF(__pyx_t_11);
              __Pyx_XGIVEREF(__pyx_t_12);
              __Pyx_XGIVEREF(__pyx_t_13);
              __Pyx_ExceptionReset(__pyx_t_11, __pyx_t_12, __pyx_t_13);
              __pyx_L27_try_end:;
            }
          }
          /*finally:*/ {
            /*normal exit:*/{
              if (__pyx_t_9) {
                __pyx_t_13 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_tuple__26, NULL);
                __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
                if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 548; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
                __Pyx_GOTREF(__pyx_t_13);
                __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
              }
              goto __pyx_L19;
            }
            __pyx_L19:;
          }
          goto __pyx_L31;
          __pyx_L14_error:;
          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
          goto __pyx_L3_error;
          __pyx_L31:;
        }
      }
      __pyx_L11:;

      /* "src/llfuse/handlers.pxi":570
 *                     operations.setxattr(ino, name, value)
 * 
 *         ret = fuse_reply_err(req, 0)             # <<<<<<<<<<<<<<
 *     except FUSEError as e:
 *         ret = fuse_reply_err(req, e.errno)
 */
      __pyx_v_ret = fuse_reply_err(__pyx_v_req, 0);
    }
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    goto __pyx_L10_try_end;
    __pyx_L3_error:;
    __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0;

    /* "src/llfuse/handlers.pxi":571
 * 
 *         ret = fuse_reply_err(req, 0)
 *     except FUSEError as e:             # <<<<<<<<<<<<<<
 *         ret = fuse_reply_err(req, e.errno)
 *     except BaseException as e:
 */
    __pyx_t_15 = __Pyx_GetModuleGlobalName(__pyx_n_s_FUSEError); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 571; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
    __Pyx_GOTREF(__pyx_t_15);
    __pyx_t_17 = PyErr_ExceptionMatches(__pyx_t_15);
    __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
    if (__pyx_t_17) {
      __Pyx_AddTraceback("llfuse.capi.fuse_setxattr", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_15, &__pyx_t_7, &__pyx_t_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 571; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
      __Pyx_GOTREF(__pyx_t_15);
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_7);
      __pyx_v_e = __pyx_t_7;
      /*try:*/ {

        /* "src/llfuse/handlers.pxi":572
 *         ret = fuse_reply_err(req, 0)
 *     except FUSEError as e:
 *         ret = fuse_reply_err(req, e.errno)             # <<<<<<<<<<<<<<
 *     except BaseException as e:
 *         ret = handle_exc('setxattr', e, req)
 */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_e, __pyx_n_s_errno); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 572; __pyx_clineno = __LINE__; goto __pyx_L37_error;}
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_17 = __Pyx_PyInt_As_int(__pyx_t_8); if (unlikely((__pyx_t_17 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 572; __pyx_clineno = __LINE__; goto __pyx_L37_error;}
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __pyx_v_ret = fuse_reply_err(__pyx_v_req, __pyx_t_17);
      }

      /* "src/llfuse/handlers.pxi":571
 * 
 *         ret = fuse_reply_err(req, 0)
 *     except FUSEError as e:             # <<<<<<<<<<<<<<
 *         ret = fuse_reply_err(req, e.errno)
 *     except BaseException as e:
 */
      /*finally:*/ {
        /*normal exit:*/{
          __Pyx_DECREF(__pyx_v_e);
          __pyx_v_e = NULL;
          goto __pyx_L38;
        }
        /*exception exit:*/{
          __pyx_L37_error:;
          __pyx_t_9 = 0; __pyx_t_13 = 0; __pyx_t_12 = 0; __pyx_t_11 = 0; __pyx_t_16 = 0; __pyx_t_20 = 0;
          __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
          __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
          if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_11, &__pyx_t_16, &__pyx_t_20);
          if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_9, &__pyx_t_13, &__pyx_t_12) < 0)) __Pyx_ErrFetch(&__pyx_t_9, &__pyx_t_13, &__pyx_t_12);
          __Pyx_XGOTREF(__pyx_t_9);
          __Pyx_XGOTREF(__pyx_t_13);
          __Pyx_XGOTREF(__pyx_t_12);
          __Pyx_XGOTREF(__pyx_t_11);
          __Pyx_XGOTREF(__pyx_t_16);
          __Pyx_XGOTREF(__pyx_t_20);
          __pyx_t_17 = __pyx_lineno; __pyx_t_18 = __pyx_clineno; __pyx_t_19 = __pyx_filename;
          {
            __Pyx_DECREF(__pyx_v_e);
            __pyx_v_e = NULL;
          }
          if (PY_MAJOR_VERSION >= 3) {
            __Pyx_XGIVEREF(__pyx_t_11);
            __Pyx_XGIVEREF(__pyx_t_16);
            __Pyx_XGIVEREF(__pyx_t_20);
            __Pyx_ExceptionReset(__pyx_t_11, __pyx_t_16, __pyx_t_20);
          }
          __Pyx_XGIVEREF(__pyx_t_9);
          __Pyx_XGIVEREF(__pyx_t_13);
          __Pyx_XGIVEREF(__pyx_t_12);
          __Pyx_ErrRestore(__pyx_t_9, __pyx_t_13, __pyx_t_12);
          __pyx_t_9 = 0; __pyx_t_13 = 0; __pyx_t_12 = 0; __pyx_t_11 = 0; __pyx_t_16 = 0; __pyx_t_20 = 0;
          __pyx_lineno = __pyx_t_17; __pyx_clineno = __pyx_t_18; __pyx_filename = __pyx_t_19;
          goto __pyx_L5_except_error;
        }
        __pyx_L38:;
      }
      __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      goto __pyx_L4_exception_handled;
    }

    /* "src/llfuse/handlers.pxi":573
 *     except FUSEError as e:
 *         ret = fuse_reply_err(req, e.errno)
 *     except BaseException as e:             # <<<<<<<<<<<<<<
 *         ret = handle_exc('setxattr', e, req)
 * 
 */
    __pyx_t_18 = PyErr_ExceptionMatches(__pyx_builtin_BaseException);
    if (__pyx_t_18) {
      __Pyx_AddTraceback("llfuse.capi.fuse_setxattr", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_7, &__pyx_t_15) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 573; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_GOTREF(__pyx_t_15);
      __Pyx_INCREF(__pyx_t_7);
      __pyx_v_e = __pyx_t_7;
      /*try:*/ {

        /* "src/llfuse/handlers.pxi":574
 *         ret = fuse_reply_err(req, e.errno)
 *     except BaseException as e:
 *         ret = handle_exc('setxattr', e, req)             # <<<<<<<<<<<<<<
 * 
 *     if ret != 0:
 */
        __pyx_v_ret = __pyx_f_6llfuse_4capi_handle_exc(__pyx_k_setxattr, __pyx_v_e, __pyx_v_req);
      }

      /* "src/llfuse/handlers.pxi":573
 *     except FUSEError as e:
 *         ret = fuse_reply_err(req, e.errno)
 *     except BaseException as e:             # <<<<<<<<<<<<<<
 *         ret = handle_exc('setxattr', e, req)
 * 
 */
      /*finally:*/ {
        /*normal exit:*/{
          __Pyx_DECREF(__pyx_v_e);
          __pyx_v_e = NULL;
          goto __pyx_L49;
        }
        __pyx_L49:;
      }
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
      goto __pyx_L4_exception_handled;
    }
    goto __pyx_L5_except_error;
    __pyx_L5_except_error:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L1_error;
    __pyx_L4_exception_handled:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    __pyx_L10_try_end:;
  }

  /* "src/llfuse/handlers.pxi":576
 *         ret = handle_exc('setxattr', e, req)
 * 
 *     if ret != 0:             # <<<<<<<<<<<<<<
 *         log.error('fuse_setxattr(): fuse_reply_* failed with %s', strerror(-ret))
 * 
 */
  __pyx_t_6 = ((__pyx_v_ret != 0) != 0);
  if (__pyx_t_6) {

    /* "src/llfuse/handlers.pxi":577
 * 
 *     if ret != 0:
 *         log.error('fuse_setxattr(): fuse_reply_* failed with %s', strerror(-ret))             # <<<<<<<<<<<<<<
 * 
 * IF TARGET_PLATFORM == 'darwin':
 */
    __pyx_t_7 = __Pyx_GetModuleGlobalName(__pyx_n_s_log); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 577; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_error); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 577; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_t_8 = __Pyx_GetModuleGlobalName(__pyx_n_s_strerror); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 577; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_10 = __Pyx_PyInt_From_int((-__pyx_v_ret)); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 577; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_10);
    __pyx_t_21 = NULL;
    if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_8))) {
      __pyx_t_21 = PyMethod_GET_SELF(__pyx_t_8);
      if (likely(__pyx_t_21)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
        __Pyx_INCREF(__pyx_t_21);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_8, function);
      }
    }
    if (!__pyx_t_21) {
      __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_10); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 577; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
      __Pyx_GOTREF(__pyx_t_7);
    } else {
      __pyx_t_22 = PyTuple_New(1+1); if (unlikely(!__pyx_t_22)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 577; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_22);
      PyTuple_SET_ITEM(__pyx_t_22, 0, __pyx_t_21); __Pyx_GIVEREF(__pyx_t_21); __pyx_t_21 = NULL;
      PyTuple_SET_ITEM(__pyx_t_22, 0+1, __pyx_t_10);
      __Pyx_GIVEREF(__pyx_t_10);
      __pyx_t_10 = 0;
      __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_22, NULL); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 577; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
    }
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __pyx_t_8 = NULL;
    __pyx_t_14 = 0;
    if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_4);
      if (likely(__pyx_t_8)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
        __Pyx_INCREF(__pyx_t_8);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_4, function);
        __pyx_t_14 = 1;
      }
    }
    __pyx_t_22 = PyTuple_New(2+__pyx_t_14); if (unlikely(!__pyx_t_22)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 577; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_22);
    if (__pyx_t_8) {
      PyTuple_SET_ITEM(__pyx_t_22, 0, __pyx_t_8); __Pyx_GIVEREF(__pyx_t_8); __pyx_t_8 = NULL;
    }
    __Pyx_INCREF(__pyx_kp_u_fuse_setxattr_fuse_reply__failed);
    PyTuple_SET_ITEM(__pyx_t_22, 0+__pyx_t_14, __pyx_kp_u_fuse_setxattr_fuse_reply__failed);
    __Pyx_GIVEREF(__pyx_kp_u_fuse_setxattr_fuse_reply__failed);
    PyTuple_SET_ITEM(__pyx_t_22, 1+__pyx_t_14, __pyx_t_7);
    __Pyx_GIVEREF(__pyx_t_7);
    __pyx_t_7 = 0;
    __pyx_t_15 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_22, NULL); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 577; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_15);
    __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
    goto __pyx_L50;
  }
  __pyx_L50:;

  /* "src/llfuse/handlers.pxi":534
 * 
 * 
 * cdef void fuse_setxattr (fuse_req_t req, fuse_ino_t ino, const_char *cname,             # <<<<<<<<<<<<<<
 *                          const_char *cvalue, size_t size, int flags) with gil:
 *     cdef int ret
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_15);
  __Pyx_XDECREF(__pyx_t_21);
  __Pyx_XDECREF(__pyx_t_22);
  __Pyx_WriteUnraisable("llfuse.capi.fuse_setxattr", __pyx_clineno, __pyx_lineno, __pyx_filename, 0);
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_name);
  __Pyx_XDECREF(__pyx_v_value);
  __Pyx_XDECREF(__pyx_v_e);
  __Pyx_RefNannyFinishContext();
  #ifdef WITH_THREAD
  PyGILState_Release(__pyx_gilstate_save);
  #endif
}

/* "src/llfuse/handlers.pxi":592
 *             fuse_getxattr(req, ino, cname, size)
 * 
 * cdef void fuse_getxattr (fuse_req_t req, fuse_ino_t ino, const_char *cname,             # <<<<<<<<<<<<<<
 *                          size_t size) with gil:
 *     cdef int ret
 */

static void __pyx_f_6llfuse_4capi_fuse_getxattr(fuse_req_t __pyx_v_req, fuse_ino_t __pyx_v_ino, const char *__pyx_v_cname, size_t __pyx_v_size) {
  int __pyx_v_ret;
  Py_ssize_t __pyx_v_len_;
  char *__pyx_v_cbuf;
  PyObject *__pyx_v_name = NULL;
  PyObject *__pyx_v_buf = NULL;
  PyObject *__pyx_v_e = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  Py_ssize_t __pyx_t_12;
  PyObject *__pyx_t_13 = NULL;
  PyObject *__pyx_t_14 = NULL;
  int __pyx_t_15;
  int __pyx_t_16;
  int __pyx_t_17;
  int __pyx_t_18;
  char const *__pyx_t_19;
  PyObject *__pyx_t_20 = NULL;
  PyObject *__pyx_t_21 = NULL;
  PyObject *__pyx_t_22 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  #ifdef WITH_THREAD
  PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure();
  #endif
  __Pyx_RefNannySetupContext("fuse_getxattr", 0);

  /* "src/llfuse/handlers.pxi":597
 *     cdef ssize_t len_
 *     cdef char *cbuf
 *     try:             # <<<<<<<<<<<<<<
 *         name = PyBytes_FromString(cname)
 *         with lock:
 */
  {
    __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);
    __Pyx_XGOTREF(__pyx_t_1);
    __Pyx_XGOTREF(__pyx_t_2);
    __Pyx_XGOTREF(__pyx_t_3);
    /*try:*/ {

      /* "src/llfuse/handlers.pxi":598
 *     cdef char *cbuf
 *     try:
 *         name = PyBytes_FromString(cname)             # <<<<<<<<<<<<<<
 *         with lock:
 *             buf = operations.getxattr(ino, name)
 */
      __pyx_t_4 = PyBytes_FromString(__pyx_v_cname); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 598; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_v_name = ((PyObject*)__pyx_t_4);
      __pyx_t_4 = 0;

      /* "src/llfuse/handlers.pxi":599
 *     try:
 *         name = PyBytes_FromString(cname)
 *         with lock:             # <<<<<<<<<<<<<<
 *             buf = operations.getxattr(ino, name)
 *         PyBytes_AsStringAndSize(buf, &cbuf, &len_)
 */
      /*with:*/ {
        __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_lock); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 599; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_5 = __Pyx_PyObject_LookupSpecial(__pyx_t_4, __pyx_n_s_exit); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 599; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_7 = __Pyx_PyObject_LookupSpecial(__pyx_t_4, __pyx_n_s_enter); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 599; __pyx_clineno = __LINE__; goto __pyx_L11_error;}
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_8 = NULL;
        if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_7))) {
          __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7);
          if (likely(__pyx_t_8)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
            __Pyx_INCREF(__pyx_t_8);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_7, function);
          }
        }
        if (__pyx_t_8) {
          __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_8); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 599; __pyx_clineno = __LINE__; goto __pyx_L11_error;}
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        } else {
          __pyx_t_6 = __Pyx_PyObject_CallNoArg(__pyx_t_7); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 599; __pyx_clineno = __LINE__; goto __pyx_L11_error;}
        }
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        /*try:*/ {
          {
            __Pyx_ExceptionSave(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
            __Pyx_XGOTREF(__pyx_t_9);
            __Pyx_XGOTREF(__pyx_t_10);
            __Pyx_XGOTREF(__pyx_t_11);
            /*try:*/ {

              /* "src/llfuse/handlers.pxi":600
 *         name = PyBytes_FromString(cname)
 *         with lock:
 *             buf = operations.getxattr(ino, name)             # <<<<<<<<<<<<<<
 *         PyBytes_AsStringAndSize(buf, &cbuf, &len_)
 * 
 */
              __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_6llfuse_4capi_operations, __pyx_n_s_getxattr); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 600; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
              __Pyx_GOTREF(__pyx_t_6);
              __pyx_t_7 = __Pyx_PyInt_From_fuse_ino_t(__pyx_v_ino); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 600; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
              __Pyx_GOTREF(__pyx_t_7);
              __pyx_t_8 = NULL;
              __pyx_t_12 = 0;
              if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_6))) {
                __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_6);
                if (likely(__pyx_t_8)) {
                  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
                  __Pyx_INCREF(__pyx_t_8);
                  __Pyx_INCREF(function);
                  __Pyx_DECREF_SET(__pyx_t_6, function);
                  __pyx_t_12 = 1;
                }
              }
              __pyx_t_13 = PyTuple_New(2+__pyx_t_12); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 600; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
              __Pyx_GOTREF(__pyx_t_13);
              if (__pyx_t_8) {
                PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_t_8); __Pyx_GIVEREF(__pyx_t_8); __pyx_t_8 = NULL;
              }
              PyTuple_SET_ITEM(__pyx_t_13, 0+__pyx_t_12, __pyx_t_7);
              __Pyx_GIVEREF(__pyx_t_7);
              __Pyx_INCREF(__pyx_v_name);
              PyTuple_SET_ITEM(__pyx_t_13, 1+__pyx_t_12, __pyx_v_name);
              __Pyx_GIVEREF(__pyx_v_name);
              __pyx_t_7 = 0;
              __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_13, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 600; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
              __Pyx_GOTREF(__pyx_t_4);
              __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
              __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
              __pyx_v_buf = __pyx_t_4;
              __pyx_t_4 = 0;
            }
            __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
            __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
            __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
            goto __pyx_L24_try_end;
            __pyx_L17_error:;
            __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
            __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
            __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
            __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
            __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;

            /* "src/llfuse/handlers.pxi":599
 *     try:
 *         name = PyBytes_FromString(cname)
 *         with lock:             # <<<<<<<<<<<<<<
 *             buf = operations.getxattr(ino, name)
 *         PyBytes_AsStringAndSize(buf, &cbuf, &len_)
 */
            /*except:*/ {
              __Pyx_AddTraceback("llfuse.capi.fuse_getxattr", __pyx_clineno, __pyx_lineno, __pyx_filename);
              if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_6, &__pyx_t_13) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 599; __pyx_clineno = __LINE__; goto __pyx_L19_except_error;}
              __Pyx_GOTREF(__pyx_t_4);
              __Pyx_GOTREF(__pyx_t_6);
              __Pyx_GOTREF(__pyx_t_13);
              __pyx_t_7 = PyTuple_Pack(3, __pyx_t_4, __pyx_t_6, __pyx_t_13); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 599; __pyx_clineno = __LINE__; goto __pyx_L19_except_error;}
              __Pyx_GOTREF(__pyx_t_7);
              __pyx_t_14 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, NULL);
              __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
              __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
              if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 599; __pyx_clineno = __LINE__; goto __pyx_L19_except_error;}
              __Pyx_GOTREF(__pyx_t_14);
              __pyx_t_15 = __Pyx_PyObject_IsTrue(__pyx_t_14);
              __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
              if (__pyx_t_15 < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 599; __pyx_clineno = __LINE__; goto __pyx_L19_except_error;}
              __pyx_t_16 = ((!(__pyx_t_15 != 0)) != 0);
              if (__pyx_t_16) {
                __Pyx_GIVEREF(__pyx_t_4);
                __Pyx_GIVEREF(__pyx_t_6);
                __Pyx_XGIVEREF(__pyx_t_13);
                __Pyx_ErrRestore(__pyx_t_4, __pyx_t_6, __pyx_t_13);
                __pyx_t_4 = 0; __pyx_t_6 = 0; __pyx_t_13 = 0; 
                {__pyx_filename = __pyx_f[0]; __pyx_lineno = 599; __pyx_clineno = __LINE__; goto __pyx_L19_except_error;}
              }
              __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
              __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
              __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
              goto __pyx_L18_exception_handled;
            }
            __pyx_L19_except_error:;
            __Pyx_XGIVEREF(__pyx_t_9);
            __Pyx_XGIVEREF(__pyx_t_10);
            __Pyx_XGIVEREF(__pyx_t_11);
            __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11);
            goto __pyx_L3_error;
            __pyx_L18_exception_handled:;
            __Pyx_XGIVEREF(__pyx_t_9);
            __Pyx_XGIVEREF(__pyx_t_10);
            __Pyx_XGIVEREF(__pyx_t_11);
            __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11);
            __pyx_L24_try_end:;
          }
        }
        /*finally:*/ {
          /*normal exit:*/{
            if (__pyx_t_5) {
              __pyx_t_11 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_tuple__27, NULL);
              __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
              if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 599; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
              __Pyx_GOTREF(__pyx_t_11);
              __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
            }
            goto __pyx_L16;
          }
          __pyx_L16:;
        }
        goto __pyx_L28;
        __pyx_L11_error:;
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        goto __pyx_L3_error;
        __pyx_L28:;
      }

      /* "src/llfuse/handlers.pxi":601
 *         with lock:
 *             buf = operations.getxattr(ino, name)
 *         PyBytes_AsStringAndSize(buf, &cbuf, &len_)             # <<<<<<<<<<<<<<
 * 
 *         if size == 0:
 */
      if (unlikely(!__pyx_v_buf)) { __Pyx_RaiseUnboundLocalError("buf"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 601; __pyx_clineno = __LINE__; goto __pyx_L3_error;} }
      __pyx_t_17 = PyBytes_AsStringAndSize(__pyx_v_buf, (&__pyx_v_cbuf), ((Py_ssize_t *)(&__pyx_v_len_))); if (unlikely(__pyx_t_17 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 601; __pyx_clineno = __LINE__; goto __pyx_L3_error;}

      /* "src/llfuse/handlers.pxi":603
 *         PyBytes_AsStringAndSize(buf, &cbuf, &len_)
 * 
 *         if size == 0:             # <<<<<<<<<<<<<<
 *             ret = fuse_reply_xattr(req, len_)
 *         elif <size_t> len_ <= size:
 */
      __pyx_t_16 = ((__pyx_v_size == 0) != 0);
      if (__pyx_t_16) {

        /* "src/llfuse/handlers.pxi":604
 * 
 *         if size == 0:
 *             ret = fuse_reply_xattr(req, len_)             # <<<<<<<<<<<<<<
 *         elif <size_t> len_ <= size:
 *             ret = fuse_reply_buf(req, cbuf, len_)
 */
        __pyx_v_ret = fuse_reply_xattr(__pyx_v_req, __pyx_v_len_);
        goto __pyx_L29;
      }

      /* "src/llfuse/handlers.pxi":605
 *         if size == 0:
 *             ret = fuse_reply_xattr(req, len_)
 *         elif <size_t> len_ <= size:             # <<<<<<<<<<<<<<
 *             ret = fuse_reply_buf(req, cbuf, len_)
 *         else:
 */
      __pyx_t_16 = ((((size_t)__pyx_v_len_) <= __pyx_v_size) != 0);
      if (__pyx_t_16) {

        /* "src/llfuse/handlers.pxi":606
 *             ret = fuse_reply_xattr(req, len_)
 *         elif <size_t> len_ <= size:
 *             ret = fuse_reply_buf(req, cbuf, len_)             # <<<<<<<<<<<<<<
 *         else:
 *             ret = fuse_reply_err(req, errno.ERANGE)
 */
        __pyx_v_ret = fuse_reply_buf(__pyx_v_req, __pyx_v_cbuf, __pyx_v_len_);
        goto __pyx_L29;
      }
      /*else*/ {

        /* "src/llfuse/handlers.pxi":608
 *             ret = fuse_reply_buf(req, cbuf, len_)
 *         else:
 *             ret = fuse_reply_err(req, errno.ERANGE)             # <<<<<<<<<<<<<<
 *     except FUSEError as e:
 *         ret = fuse_reply_err(req, e.errno)
 */
        __pyx_v_ret = fuse_reply_err(__pyx_v_req, ERANGE);
      }
      __pyx_L29:;
    }
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    goto __pyx_L10_try_end;
    __pyx_L3_error:;
    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;

    /* "src/llfuse/handlers.pxi":609
 *         else:
 *             ret = fuse_reply_err(req, errno.ERANGE)
 *     except FUSEError as e:             # <<<<<<<<<<<<<<
 *         ret = fuse_reply_err(req, e.errno)
 *     except BaseException as e:
 */
    __pyx_t_13 = __Pyx_GetModuleGlobalName(__pyx_n_s_FUSEError); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 609; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
    __Pyx_GOTREF(__pyx_t_13);
    __pyx_t_17 = PyErr_ExceptionMatches(__pyx_t_13);
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    if (__pyx_t_17) {
      __Pyx_AddTraceback("llfuse.capi.fuse_getxattr", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_13, &__pyx_t_6, &__pyx_t_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 609; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
      __Pyx_GOTREF(__pyx_t_13);
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_6);
      __pyx_v_e = __pyx_t_6;
      /*try:*/ {

        /* "src/llfuse/handlers.pxi":610
 *             ret = fuse_reply_err(req, errno.ERANGE)
 *     except FUSEError as e:
 *         ret = fuse_reply_err(req, e.errno)             # <<<<<<<<<<<<<<
 *     except BaseException as e:
 *         ret = handle_exc('getxattr', e, req)
 */
        __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_e, __pyx_n_s_errno); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 610; __pyx_clineno = __LINE__; goto __pyx_L35_error;}
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_17 = __Pyx_PyInt_As_int(__pyx_t_7); if (unlikely((__pyx_t_17 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 610; __pyx_clineno = __LINE__; goto __pyx_L35_error;}
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __pyx_v_ret = fuse_reply_err(__pyx_v_req, __pyx_t_17);
      }

      /* "src/llfuse/handlers.pxi":609
 *         else:
 *             ret = fuse_reply_err(req, errno.ERANGE)
 *     except FUSEError as e:             # <<<<<<<<<<<<<<
 *         ret = fuse_reply_err(req, e.errno)
 *     except BaseException as e:
 */
      /*finally:*/ {
        /*normal exit:*/{
          __Pyx_DECREF(__pyx_v_e);
          __pyx_v_e = NULL;
          goto __pyx_L36;
        }
        /*exception exit:*/{
          __pyx_L35_error:;
          __pyx_t_5 = 0; __pyx_t_11 = 0; __pyx_t_10 = 0; __pyx_t_9 = 0; __pyx_t_14 = 0; __pyx_t_20 = 0;
          __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_9, &__pyx_t_14, &__pyx_t_20);
          if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_5, &__pyx_t_11, &__pyx_t_10) < 0)) __Pyx_ErrFetch(&__pyx_t_5, &__pyx_t_11, &__pyx_t_10);
          __Pyx_XGOTREF(__pyx_t_5);
          __Pyx_XGOTREF(__pyx_t_11);
          __Pyx_XGOTREF(__pyx_t_10);
          __Pyx_XGOTREF(__pyx_t_9);
          __Pyx_XGOTREF(__pyx_t_14);
          __Pyx_XGOTREF(__pyx_t_20);
          __pyx_t_17 = __pyx_lineno; __pyx_t_18 = __pyx_clineno; __pyx_t_19 = __pyx_filename;
          {
            __Pyx_DECREF(__pyx_v_e);
            __pyx_v_e = NULL;
          }
          if (PY_MAJOR_VERSION >= 3) {
            __Pyx_XGIVEREF(__pyx_t_9);
            __Pyx_XGIVEREF(__pyx_t_14);
            __Pyx_XGIVEREF(__pyx_t_20);
            __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_14, __pyx_t_20);
          }
          __Pyx_XGIVEREF(__pyx_t_5);
          __Pyx_XGIVEREF(__pyx_t_11);
          __Pyx_XGIVEREF(__pyx_t_10);
          __Pyx_ErrRestore(__pyx_t_5, __pyx_t_11, __pyx_t_10);
          __pyx_t_5 = 0; __pyx_t_11 = 0; __pyx_t_10 = 0; __pyx_t_9 = 0; __pyx_t_14 = 0; __pyx_t_20 = 0;
          __pyx_lineno = __pyx_t_17; __pyx_clineno = __pyx_t_18; __pyx_filename = __pyx_t_19;
          goto __pyx_L5_except_error;
        }
        __pyx_L36:;
      }
      __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      goto __pyx_L4_exception_handled;
    }

    /* "src/llfuse/handlers.pxi":611
 *     except FUSEError as e:
 *         ret = fuse_reply_err(req, e.errno)
 *     except BaseException as e:             # <<<<<<<<<<<<<<
 *         ret = handle_exc('getxattr', e, req)
 * 
 */
    __pyx_t_18 = PyErr_ExceptionMatches(__pyx_builtin_BaseException);
    if (__pyx_t_18) {
      __Pyx_AddTraceback("llfuse.capi.fuse_getxattr", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_6, &__pyx_t_13) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 611; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_GOTREF(__pyx_t_13);
      __Pyx_INCREF(__pyx_t_6);
      __pyx_v_e = __pyx_t_6;
      /*try:*/ {

        /* "src/llfuse/handlers.pxi":612
 *         ret = fuse_reply_err(req, e.errno)
 *     except BaseException as e:
 *         ret = handle_exc('getxattr', e, req)             # <<<<<<<<<<<<<<
 * 
 *     if ret != 0:
 */
        __pyx_v_ret = __pyx_f_6llfuse_4capi_handle_exc(__pyx_k_getxattr, __pyx_v_e, __pyx_v_req);
      }

      /* "src/llfuse/handlers.pxi":611
 *     except FUSEError as e:
 *         ret = fuse_reply_err(req, e.errno)
 *     except BaseException as e:             # <<<<<<<<<<<<<<
 *         ret = handle_exc('getxattr', e, req)
 * 
 */
      /*finally:*/ {
        /*normal exit:*/{
          __Pyx_DECREF(__pyx_v_e);
          __pyx_v_e = NULL;
          goto __pyx_L47;
        }
        __pyx_L47:;
      }
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
      goto __pyx_L4_exception_handled;
    }
    goto __pyx_L5_except_error;
    __pyx_L5_except_error:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L1_error;
    __pyx_L4_exception_handled:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    __pyx_L10_try_end:;
  }

  /* "src/llfuse/handlers.pxi":614
 *         ret = handle_exc('getxattr', e, req)
 * 
 *     if ret != 0:             # <<<<<<<<<<<<<<
 *         log.error('fuse_getxattr(): fuse_reply_* failed with %s', strerror(-ret))
 * 
 */
  __pyx_t_16 = ((__pyx_v_ret != 0) != 0);
  if (__pyx_t_16) {

    /* "src/llfuse/handlers.pxi":615
 * 
 *     if ret != 0:
 *         log.error('fuse_getxattr(): fuse_reply_* failed with %s', strerror(-ret))             # <<<<<<<<<<<<<<
 * 
 * cdef void fuse_listxattr (fuse_req_t req, fuse_ino_t ino, size_t size) with gil:
 */
    __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s_log); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 615; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_error); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 615; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_7 = __Pyx_GetModuleGlobalName(__pyx_n_s_strerror); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 615; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_8 = __Pyx_PyInt_From_int((-__pyx_v_ret)); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 615; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_21 = NULL;
    if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_7))) {
      __pyx_t_21 = PyMethod_GET_SELF(__pyx_t_7);
      if (likely(__pyx_t_21)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
        __Pyx_INCREF(__pyx_t_21);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_7, function);
      }
    }
    if (!__pyx_t_21) {
      __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_8); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 615; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_GOTREF(__pyx_t_6);
    } else {
      __pyx_t_22 = PyTuple_New(1+1); if (unlikely(!__pyx_t_22)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 615; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_22);
      PyTuple_SET_ITEM(__pyx_t_22, 0, __pyx_t_21); __Pyx_GIVEREF(__pyx_t_21); __pyx_t_21 = NULL;
      PyTuple_SET_ITEM(__pyx_t_22, 0+1, __pyx_t_8);
      __Pyx_GIVEREF(__pyx_t_8);
      __pyx_t_8 = 0;
      __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_22, NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 615; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
    }
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_t_7 = NULL;
    __pyx_t_12 = 0;
    if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_4);
      if (likely(__pyx_t_7)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
        __Pyx_INCREF(__pyx_t_7);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_4, function);
        __pyx_t_12 = 1;
      }
    }
    __pyx_t_22 = PyTuple_New(2+__pyx_t_12); if (unlikely(!__pyx_t_22)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 615; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_22);
    if (__pyx_t_7) {
      PyTuple_SET_ITEM(__pyx_t_22, 0, __pyx_t_7); __Pyx_GIVEREF(__pyx_t_7); __pyx_t_7 = NULL;
    }
    __Pyx_INCREF(__pyx_kp_u_fuse_getxattr_fuse_reply__failed);
    PyTuple_SET_ITEM(__pyx_t_22, 0+__pyx_t_12, __pyx_kp_u_fuse_getxattr_fuse_reply__failed);
    __Pyx_GIVEREF(__pyx_kp_u_fuse_getxattr_fuse_reply__failed);
    PyTuple_SET_ITEM(__pyx_t_22, 1+__pyx_t_12, __pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_6);
    __pyx_t_6 = 0;
    __pyx_t_13 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_22, NULL); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 615; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_13);
    __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    goto __pyx_L48;
  }
  __pyx_L48:;

  /* "src/llfuse/handlers.pxi":592
 *             fuse_getxattr(req, ino, cname, size)
 * 
 * cdef void fuse_getxattr (fuse_req_t req, fuse_ino_t ino, const_char *cname,             # <<<<<<<<<<<<<<
 *                          size_t size) with gil:
 *     cdef int ret
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_XDECREF(__pyx_t_21);
  __Pyx_XDECREF(__pyx_t_22);
  __Pyx_WriteUnraisable("llfuse.capi.fuse_getxattr", __pyx_clineno, __pyx_lineno, __pyx_filename, 0);
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_name);
  __Pyx_XDECREF(__pyx_v_buf);
  __Pyx_XDECREF(__pyx_v_e);
  __Pyx_RefNannyFinishContext();
  #ifdef WITH_THREAD
  PyGILState_Release(__pyx_gilstate_save);
  #endif
}

/* "src/llfuse/handlers.pxi":617
 *         log.error('fuse_getxattr(): fuse_reply_* failed with %s', strerror(-ret))
 * 
 * cdef void fuse_listxattr (fuse_req_t req, fuse_ino_t ino, size_t size) with gil:             # <<<<<<<<<<<<<<
 *     cdef int ret
 *     cdef ssize_t len_
 */

static void __pyx_f_6llfuse_4capi_fuse_listxattr(fuse_req_t __pyx_v_req, fuse_ino_t __pyx_v_ino, size_t __pyx_v_size) {
  int __pyx_v_ret;
  Py_ssize_t __pyx_v_len_;
  char *__pyx_v_cbuf;
  PyObject *__pyx_v_buf = NULL;
  PyObject *__pyx_v_e = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  PyObject *__pyx_t_13 = NULL;
  int __pyx_t_14;
  int __pyx_t_15;
  int __pyx_t_16;
  int __pyx_t_17;
  char const *__pyx_t_18;
  PyObject *__pyx_t_19 = NULL;
  PyObject *__pyx_t_20 = NULL;
  PyObject *__pyx_t_21 = NULL;
  Py_ssize_t __pyx_t_22;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  #ifdef WITH_THREAD
  PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure();
  #endif
  __Pyx_RefNannySetupContext("fuse_listxattr", 0);

  /* "src/llfuse/handlers.pxi":621
 *     cdef ssize_t len_
 *     cdef char *cbuf
 *     try:             # <<<<<<<<<<<<<<
 *         with lock:
 *             buf = b'\0'.join(operations.listxattr(ino)) + b'\0'
 */
  {
    __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);
    __Pyx_XGOTREF(__pyx_t_1);
    __Pyx_XGOTREF(__pyx_t_2);
    __Pyx_XGOTREF(__pyx_t_3);
    /*try:*/ {

      /* "src/llfuse/handlers.pxi":622
 *     cdef char *cbuf
 *     try:
 *         with lock:             # <<<<<<<<<<<<<<
 *             buf = b'\0'.join(operations.listxattr(ino)) + b'\0'
 * 
 */
      /*with:*/ {
        __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_lock); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 622; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_5 = __Pyx_PyObject_LookupSpecial(__pyx_t_4, __pyx_n_s_exit); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 622; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_7 = __Pyx_PyObject_LookupSpecial(__pyx_t_4, __pyx_n_s_enter); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 622; __pyx_clineno = __LINE__; goto __pyx_L11_error;}
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_8 = NULL;
        if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_7))) {
          __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7);
          if (likely(__pyx_t_8)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
            __Pyx_INCREF(__pyx_t_8);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_7, function);
          }
        }
        if (__pyx_t_8) {
          __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_8); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 622; __pyx_clineno = __LINE__; goto __pyx_L11_error;}
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        } else {
          __pyx_t_6 = __Pyx_PyObject_CallNoArg(__pyx_t_7); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 622; __pyx_clineno = __LINE__; goto __pyx_L11_error;}
        }
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        /*try:*/ {
          {
            __Pyx_ExceptionSave(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
            __Pyx_XGOTREF(__pyx_t_9);
            __Pyx_XGOTREF(__pyx_t_10);
            __Pyx_XGOTREF(__pyx_t_11);
            /*try:*/ {

              /* "src/llfuse/handlers.pxi":623
 *     try:
 *         with lock:
 *             buf = b'\0'.join(operations.listxattr(ino)) + b'\0'             # <<<<<<<<<<<<<<
 * 
 *         PyBytes_AsStringAndSize(buf, &cbuf, &len_)
 */
              __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_6llfuse_4capi_operations, __pyx_n_s_listxattr); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 623; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
              __Pyx_GOTREF(__pyx_t_6);
              __pyx_t_7 = __Pyx_PyInt_From_fuse_ino_t(__pyx_v_ino); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 623; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
              __Pyx_GOTREF(__pyx_t_7);
              __pyx_t_8 = NULL;
              if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_6))) {
                __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_6);
                if (likely(__pyx_t_8)) {
                  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
                  __Pyx_INCREF(__pyx_t_8);
                  __Pyx_INCREF(function);
                  __Pyx_DECREF_SET(__pyx_t_6, function);
                }
              }
              if (!__pyx_t_8) {
                __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_7); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 623; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
                __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
                __Pyx_GOTREF(__pyx_t_4);
              } else {
                __pyx_t_12 = PyTuple_New(1+1); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 623; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
                __Pyx_GOTREF(__pyx_t_12);
                PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_t_8); __Pyx_GIVEREF(__pyx_t_8); __pyx_t_8 = NULL;
                PyTuple_SET_ITEM(__pyx_t_12, 0+1, __pyx_t_7);
                __Pyx_GIVEREF(__pyx_t_7);
                __pyx_t_7 = 0;
                __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_12, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 623; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
                __Pyx_GOTREF(__pyx_t_4);
                __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
              }
              __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
              __pyx_t_6 = __Pyx_PyBytes_Join(__pyx_kp_b__28, __pyx_t_4); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 623; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
              __Pyx_GOTREF(__pyx_t_6);
              __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
              __pyx_t_4 = PyNumber_Add(__pyx_t_6, __pyx_kp_b__28); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 623; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
              __Pyx_GOTREF(__pyx_t_4);
              __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
              __pyx_v_buf = __pyx_t_4;
              __pyx_t_4 = 0;
            }
            __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
            __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
            __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
            goto __pyx_L24_try_end;
            __pyx_L17_error:;
            __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
            __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
            __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
            __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
            __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;

            /* "src/llfuse/handlers.pxi":622
 *     cdef char *cbuf
 *     try:
 *         with lock:             # <<<<<<<<<<<<<<
 *             buf = b'\0'.join(operations.listxattr(ino)) + b'\0'
 * 
 */
            /*except:*/ {
              __Pyx_AddTraceback("llfuse.capi.fuse_listxattr", __pyx_clineno, __pyx_lineno, __pyx_filename);
              if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_6, &__pyx_t_12) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 622; __pyx_clineno = __LINE__; goto __pyx_L19_except_error;}
              __Pyx_GOTREF(__pyx_t_4);
              __Pyx_GOTREF(__pyx_t_6);
              __Pyx_GOTREF(__pyx_t_12);
              __pyx_t_7 = PyTuple_Pack(3, __pyx_t_4, __pyx_t_6, __pyx_t_12); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 622; __pyx_clineno = __LINE__; goto __pyx_L19_except_error;}
              __Pyx_GOTREF(__pyx_t_7);
              __pyx_t_13 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, NULL);
              __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
              __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
              if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 622; __pyx_clineno = __LINE__; goto __pyx_L19_except_error;}
              __Pyx_GOTREF(__pyx_t_13);
              __pyx_t_14 = __Pyx_PyObject_IsTrue(__pyx_t_13);
              __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
              if (__pyx_t_14 < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 622; __pyx_clineno = __LINE__; goto __pyx_L19_except_error;}
              __pyx_t_15 = ((!(__pyx_t_14 != 0)) != 0);
              if (__pyx_t_15) {
                __Pyx_GIVEREF(__pyx_t_4);
                __Pyx_GIVEREF(__pyx_t_6);
                __Pyx_XGIVEREF(__pyx_t_12);
                __Pyx_ErrRestore(__pyx_t_4, __pyx_t_6, __pyx_t_12);
                __pyx_t_4 = 0; __pyx_t_6 = 0; __pyx_t_12 = 0; 
                {__pyx_filename = __pyx_f[0]; __pyx_lineno = 622; __pyx_clineno = __LINE__; goto __pyx_L19_except_error;}
              }
              __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
              __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
              __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
              goto __pyx_L18_exception_handled;
            }
            __pyx_L19_except_error:;
            __Pyx_XGIVEREF(__pyx_t_9);
            __Pyx_XGIVEREF(__pyx_t_10);
            __Pyx_XGIVEREF(__pyx_t_11);
            __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11);
            goto __pyx_L3_error;
            __pyx_L18_exception_handled:;
            __Pyx_XGIVEREF(__pyx_t_9);
            __Pyx_XGIVEREF(__pyx_t_10);
            __Pyx_XGIVEREF(__pyx_t_11);
            __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11);
            __pyx_L24_try_end:;
          }
        }
        /*finally:*/ {
          /*normal exit:*/{
            if (__pyx_t_5) {
              __pyx_t_11 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_tuple__29, NULL);
              __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
              if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 622; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
              __Pyx_GOTREF(__pyx_t_11);
              __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
            }
            goto __pyx_L16;
          }
          __pyx_L16:;
        }
        goto __pyx_L28;
        __pyx_L11_error:;
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        goto __pyx_L3_error;
        __pyx_L28:;
      }

      /* "src/llfuse/handlers.pxi":625
 *             buf = b'\0'.join(operations.listxattr(ino)) + b'\0'
 * 
 *         PyBytes_AsStringAndSize(buf, &cbuf, &len_)             # <<<<<<<<<<<<<<
 * 
 *         if len_ == 1: # No attributes
 */
      if (unlikely(!__pyx_v_buf)) { __Pyx_RaiseUnboundLocalError("buf"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 625; __pyx_clineno = __LINE__; goto __pyx_L3_error;} }
      __pyx_t_16 = PyBytes_AsStringAndSize(__pyx_v_buf, (&__pyx_v_cbuf), ((Py_ssize_t *)(&__pyx_v_len_))); if (unlikely(__pyx_t_16 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 625; __pyx_clineno = __LINE__; goto __pyx_L3_error;}

      /* "src/llfuse/handlers.pxi":627
 *         PyBytes_AsStringAndSize(buf, &cbuf, &len_)
 * 
 *         if len_ == 1: # No attributes             # <<<<<<<<<<<<<<
 *             len_ = 0
 * 
 */
      __pyx_t_15 = ((__pyx_v_len_ == 1) != 0);
      if (__pyx_t_15) {

        /* "src/llfuse/handlers.pxi":628
 * 
 *         if len_ == 1: # No attributes
 *             len_ = 0             # <<<<<<<<<<<<<<
 * 
 *         if size == 0:
 */
        __pyx_v_len_ = 0;
        goto __pyx_L29;
      }
      __pyx_L29:;

      /* "src/llfuse/handlers.pxi":630
 *             len_ = 0
 * 
 *         if size == 0:             # <<<<<<<<<<<<<<
 *             ret = fuse_reply_xattr(req, len_)
 *         elif <size_t> len_ <= size:
 */
      __pyx_t_15 = ((__pyx_v_size == 0) != 0);
      if (__pyx_t_15) {

        /* "src/llfuse/handlers.pxi":631
 * 
 *         if size == 0:
 *             ret = fuse_reply_xattr(req, len_)             # <<<<<<<<<<<<<<
 *         elif <size_t> len_ <= size:
 *             ret = fuse_reply_buf(req, cbuf, len_)
 */
        __pyx_v_ret = fuse_reply_xattr(__pyx_v_req, __pyx_v_len_);
        goto __pyx_L30;
      }

      /* "src/llfuse/handlers.pxi":632
 *         if size == 0:
 *             ret = fuse_reply_xattr(req, len_)
 *         elif <size_t> len_ <= size:             # <<<<<<<<<<<<<<
 *             ret = fuse_reply_buf(req, cbuf, len_)
 *         else:
 */
      __pyx_t_15 = ((((size_t)__pyx_v_len_) <= __pyx_v_size) != 0);
      if (__pyx_t_15) {

        /* "src/llfuse/handlers.pxi":633
 *             ret = fuse_reply_xattr(req, len_)
 *         elif <size_t> len_ <= size:
 *             ret = fuse_reply_buf(req, cbuf, len_)             # <<<<<<<<<<<<<<
 *         else:
 *             ret = fuse_reply_err(req, errno.ERANGE)
 */
        __pyx_v_ret = fuse_reply_buf(__pyx_v_req, __pyx_v_cbuf, __pyx_v_len_);
        goto __pyx_L30;
      }
      /*else*/ {

        /* "src/llfuse/handlers.pxi":635
 *             ret = fuse_reply_buf(req, cbuf, len_)
 *         else:
 *             ret = fuse_reply_err(req, errno.ERANGE)             # <<<<<<<<<<<<<<
 *     except FUSEError as e:
 *         ret = fuse_reply_err(req, e.errno)
 */
        __pyx_v_ret = fuse_reply_err(__pyx_v_req, ERANGE);
      }
      __pyx_L30:;
    }
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    goto __pyx_L10_try_end;
    __pyx_L3_error:;
    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;

    /* "src/llfuse/handlers.pxi":636
 *         else:
 *             ret = fuse_reply_err(req, errno.ERANGE)
 *     except FUSEError as e:             # <<<<<<<<<<<<<<
 *         ret = fuse_reply_err(req, e.errno)
 *     except BaseException as e:
 */
    __pyx_t_12 = __Pyx_GetModuleGlobalName(__pyx_n_s_FUSEError); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 636; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
    __Pyx_GOTREF(__pyx_t_12);
    __pyx_t_16 = PyErr_ExceptionMatches(__pyx_t_12);
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    if (__pyx_t_16) {
      __Pyx_AddTraceback("llfuse.capi.fuse_listxattr", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_12, &__pyx_t_6, &__pyx_t_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 636; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
      __Pyx_GOTREF(__pyx_t_12);
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_6);
      __pyx_v_e = __pyx_t_6;
      /*try:*/ {

        /* "src/llfuse/handlers.pxi":637
 *             ret = fuse_reply_err(req, errno.ERANGE)
 *     except FUSEError as e:
 *         ret = fuse_reply_err(req, e.errno)             # <<<<<<<<<<<<<<
 *     except BaseException as e:
 *         ret = handle_exc('listxattr', e, req)
 */
        __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_e, __pyx_n_s_errno); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 637; __pyx_clineno = __LINE__; goto __pyx_L36_error;}
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_16 = __Pyx_PyInt_As_int(__pyx_t_7); if (unlikely((__pyx_t_16 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 637; __pyx_clineno = __LINE__; goto __pyx_L36_error;}
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __pyx_v_ret = fuse_reply_err(__pyx_v_req, __pyx_t_16);
      }

      /* "src/llfuse/handlers.pxi":636
 *         else:
 *             ret = fuse_reply_err(req, errno.ERANGE)
 *     except FUSEError as e:             # <<<<<<<<<<<<<<
 *         ret = fuse_reply_err(req, e.errno)
 *     except BaseException as e:
 */
      /*finally:*/ {
        /*normal exit:*/{
          __Pyx_DECREF(__pyx_v_e);
          __pyx_v_e = NULL;
          goto __pyx_L37;
        }
        /*exception exit:*/{
          __pyx_L36_error:;
          __pyx_t_5 = 0; __pyx_t_11 = 0; __pyx_t_10 = 0; __pyx_t_9 = 0; __pyx_t_13 = 0; __pyx_t_19 = 0;
          __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_9, &__pyx_t_13, &__pyx_t_19);
          if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_5, &__pyx_t_11, &__pyx_t_10) < 0)) __Pyx_ErrFetch(&__pyx_t_5, &__pyx_t_11, &__pyx_t_10);
          __Pyx_XGOTREF(__pyx_t_5);
          __Pyx_XGOTREF(__pyx_t_11);
          __Pyx_XGOTREF(__pyx_t_10);
          __Pyx_XGOTREF(__pyx_t_9);
          __Pyx_XGOTREF(__pyx_t_13);
          __Pyx_XGOTREF(__pyx_t_19);
          __pyx_t_16 = __pyx_lineno; __pyx_t_17 = __pyx_clineno; __pyx_t_18 = __pyx_filename;
          {
            __Pyx_DECREF(__pyx_v_e);
            __pyx_v_e = NULL;
          }
          if (PY_MAJOR_VERSION >= 3) {
            __Pyx_XGIVEREF(__pyx_t_9);
            __Pyx_XGIVEREF(__pyx_t_13);
            __Pyx_XGIVEREF(__pyx_t_19);
            __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_13, __pyx_t_19);
          }
          __Pyx_XGIVEREF(__pyx_t_5);
          __Pyx_XGIVEREF(__pyx_t_11);
          __Pyx_XGIVEREF(__pyx_t_10);
          __Pyx_ErrRestore(__pyx_t_5, __pyx_t_11, __pyx_t_10);
          __pyx_t_5 = 0; __pyx_t_11 = 0; __pyx_t_10 = 0; __pyx_t_9 = 0; __pyx_t_13 = 0; __pyx_t_19 = 0;
          __pyx_lineno = __pyx_t_16; __pyx_clineno = __pyx_t_17; __pyx_filename = __pyx_t_18;
          goto __pyx_L5_except_error;
        }
        __pyx_L37:;
      }
      __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      goto __pyx_L4_exception_handled;
    }

    /* "src/llfuse/handlers.pxi":638
 *     except FUSEError as e:
 *         ret = fuse_reply_err(req, e.errno)
 *     except BaseException as e:             # <<<<<<<<<<<<<<
 *         ret = handle_exc('listxattr', e, req)
 * 
 */
    __pyx_t_17 = PyErr_ExceptionMatches(__pyx_builtin_BaseException);
    if (__pyx_t_17) {
      __Pyx_AddTraceback("llfuse.capi.fuse_listxattr", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_6, &__pyx_t_12) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 638; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_GOTREF(__pyx_t_12);
      __Pyx_INCREF(__pyx_t_6);
      __pyx_v_e = __pyx_t_6;
      /*try:*/ {

        /* "src/llfuse/handlers.pxi":639
 *         ret = fuse_reply_err(req, e.errno)
 *     except BaseException as e:
 *         ret = handle_exc('listxattr', e, req)             # <<<<<<<<<<<<<<
 * 
 *     if ret != 0:
 */
        __pyx_v_ret = __pyx_f_6llfuse_4capi_handle_exc(__pyx_k_listxattr, __pyx_v_e, __pyx_v_req);
      }

      /* "src/llfuse/handlers.pxi":638
 *     except FUSEError as e:
 *         ret = fuse_reply_err(req, e.errno)
 *     except BaseException as e:             # <<<<<<<<<<<<<<
 *         ret = handle_exc('listxattr', e, req)
 * 
 */
      /*finally:*/ {
        /*normal exit:*/{
          __Pyx_DECREF(__pyx_v_e);
          __pyx_v_e = NULL;
          goto __pyx_L48;
        }
        __pyx_L48:;
      }
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
      goto __pyx_L4_exception_handled;
    }
    goto __pyx_L5_except_error;
    __pyx_L5_except_error:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L1_error;
    __pyx_L4_exception_handled:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    __pyx_L10_try_end:;
  }

  /* "src/llfuse/handlers.pxi":641
 *         ret = handle_exc('listxattr', e, req)
 * 
 *     if ret != 0:             # <<<<<<<<<<<<<<
 *         log.error('fuse_listxattr(): fuse_reply_* failed with %s', strerror(-ret))
 * 
 */
  __pyx_t_15 = ((__pyx_v_ret != 0) != 0);
  if (__pyx_t_15) {

    /* "src/llfuse/handlers.pxi":642
 * 
 *     if ret != 0:
 *         log.error('fuse_listxattr(): fuse_reply_* failed with %s', strerror(-ret))             # <<<<<<<<<<<<<<
 * 
 * cdef void fuse_removexattr (fuse_req_t req, fuse_ino_t ino, const_char *cname) with gil:
 */
    __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s_log); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 642; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_error); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 642; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_7 = __Pyx_GetModuleGlobalName(__pyx_n_s_strerror); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 642; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_8 = __Pyx_PyInt_From_int((-__pyx_v_ret)); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 642; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_20 = NULL;
    if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_7))) {
      __pyx_t_20 = PyMethod_GET_SELF(__pyx_t_7);
      if (likely(__pyx_t_20)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
        __Pyx_INCREF(__pyx_t_20);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_7, function);
      }
    }
    if (!__pyx_t_20) {
      __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_8); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 642; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_GOTREF(__pyx_t_6);
    } else {
      __pyx_t_21 = PyTuple_New(1+1); if (unlikely(!__pyx_t_21)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 642; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_21);
      PyTuple_SET_ITEM(__pyx_t_21, 0, __pyx_t_20); __Pyx_GIVEREF(__pyx_t_20); __pyx_t_20 = NULL;
      PyTuple_SET_ITEM(__pyx_t_21, 0+1, __pyx_t_8);
      __Pyx_GIVEREF(__pyx_t_8);
      __pyx_t_8 = 0;
      __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_21, NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 642; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
    }
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_t_7 = NULL;
    __pyx_t_22 = 0;
    if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_4);
      if (likely(__pyx_t_7)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
        __Pyx_INCREF(__pyx_t_7);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_4, function);
        __pyx_t_22 = 1;
      }
    }
    __pyx_t_21 = PyTuple_New(2+__pyx_t_22); if (unlikely(!__pyx_t_21)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 642; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_21);
    if (__pyx_t_7) {
      PyTuple_SET_ITEM(__pyx_t_21, 0, __pyx_t_7); __Pyx_GIVEREF(__pyx_t_7); __pyx_t_7 = NULL;
    }
    __Pyx_INCREF(__pyx_kp_u_fuse_listxattr_fuse_reply__faile);
    PyTuple_SET_ITEM(__pyx_t_21, 0+__pyx_t_22, __pyx_kp_u_fuse_listxattr_fuse_reply__faile);
    __Pyx_GIVEREF(__pyx_kp_u_fuse_listxattr_fuse_reply__faile);
    PyTuple_SET_ITEM(__pyx_t_21, 1+__pyx_t_22, __pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_6);
    __pyx_t_6 = 0;
    __pyx_t_12 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_21, NULL); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 642; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_12);
    __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    goto __pyx_L49;
  }
  __pyx_L49:;

  /* "src/llfuse/handlers.pxi":617
 *         log.error('fuse_getxattr(): fuse_reply_* failed with %s', strerror(-ret))
 * 
 * cdef void fuse_listxattr (fuse_req_t req, fuse_ino_t ino, size_t size) with gil:             # <<<<<<<<<<<<<<
 *     cdef int ret
 *     cdef ssize_t len_
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_XDECREF(__pyx_t_20);
  __Pyx_XDECREF(__pyx_t_21);
  __Pyx_WriteUnraisable("llfuse.capi.fuse_listxattr", __pyx_clineno, __pyx_lineno, __pyx_filename, 0);
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_buf);
  __Pyx_XDECREF(__pyx_v_e);
  __Pyx_RefNannyFinishContext();
  #ifdef WITH_THREAD
  PyGILState_Release(__pyx_gilstate_save);
  #endif
}

/* "src/llfuse/handlers.pxi":644
 *         log.error('fuse_listxattr(): fuse_reply_* failed with %s', strerror(-ret))
 * 
 * cdef void fuse_removexattr (fuse_req_t req, fuse_ino_t ino, const_char *cname) with gil:             # <<<<<<<<<<<<<<
 *     cdef int ret
 *     try:
 */

static void __pyx_f_6llfuse_4capi_fuse_removexattr(fuse_req_t __pyx_v_req, fuse_ino_t __pyx_v_ino, const char *__pyx_v_cname) {
  int __pyx_v_ret;
  PyObject *__pyx_v_name = NULL;
  PyObject *__pyx_v_e = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  Py_ssize_t __pyx_t_12;
  PyObject *__pyx_t_13 = NULL;
  PyObject *__pyx_t_14 = NULL;
  int __pyx_t_15;
  int __pyx_t_16;
  int __pyx_t_17;
  int __pyx_t_18;
  char const *__pyx_t_19;
  PyObject *__pyx_t_20 = NULL;
  PyObject *__pyx_t_21 = NULL;
  PyObject *__pyx_t_22 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  #ifdef WITH_THREAD
  PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure();
  #endif
  __Pyx_RefNannySetupContext("fuse_removexattr", 0);

  /* "src/llfuse/handlers.pxi":646
 * cdef void fuse_removexattr (fuse_req_t req, fuse_ino_t ino, const_char *cname) with gil:
 *     cdef int ret
 *     try:             # <<<<<<<<<<<<<<
 *         name = PyBytes_FromString(cname)
 *         with lock:
 */
  {
    __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);
    __Pyx_XGOTREF(__pyx_t_1);
    __Pyx_XGOTREF(__pyx_t_2);
    __Pyx_XGOTREF(__pyx_t_3);
    /*try:*/ {

      /* "src/llfuse/handlers.pxi":647
 *     cdef int ret
 *     try:
 *         name = PyBytes_FromString(cname)             # <<<<<<<<<<<<<<
 *         with lock:
 *             operations.removexattr(ino, name)
 */
      __pyx_t_4 = PyBytes_FromString(__pyx_v_cname); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 647; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_v_name = ((PyObject*)__pyx_t_4);
      __pyx_t_4 = 0;

      /* "src/llfuse/handlers.pxi":648
 *     try:
 *         name = PyBytes_FromString(cname)
 *         with lock:             # <<<<<<<<<<<<<<
 *             operations.removexattr(ino, name)
 *         ret = fuse_reply_err(req, 0)
 */
      /*with:*/ {
        __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_lock); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 648; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_5 = __Pyx_PyObject_LookupSpecial(__pyx_t_4, __pyx_n_s_exit); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 648; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_7 = __Pyx_PyObject_LookupSpecial(__pyx_t_4, __pyx_n_s_enter); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 648; __pyx_clineno = __LINE__; goto __pyx_L11_error;}
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_8 = NULL;
        if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_7))) {
          __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7);
          if (likely(__pyx_t_8)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
            __Pyx_INCREF(__pyx_t_8);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_7, function);
          }
        }
        if (__pyx_t_8) {
          __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_8); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 648; __pyx_clineno = __LINE__; goto __pyx_L11_error;}
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        } else {
          __pyx_t_6 = __Pyx_PyObject_CallNoArg(__pyx_t_7); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 648; __pyx_clineno = __LINE__; goto __pyx_L11_error;}
        }
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        /*try:*/ {
          {
            __Pyx_ExceptionSave(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
            __Pyx_XGOTREF(__pyx_t_9);
            __Pyx_XGOTREF(__pyx_t_10);
            __Pyx_XGOTREF(__pyx_t_11);
            /*try:*/ {

              /* "src/llfuse/handlers.pxi":649
 *         name = PyBytes_FromString(cname)
 *         with lock:
 *             operations.removexattr(ino, name)             # <<<<<<<<<<<<<<
 *         ret = fuse_reply_err(req, 0)
 *     except FUSEError as e:
 */
              __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_6llfuse_4capi_operations, __pyx_n_s_removexattr); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 649; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
              __Pyx_GOTREF(__pyx_t_6);
              __pyx_t_7 = __Pyx_PyInt_From_fuse_ino_t(__pyx_v_ino); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 649; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
              __Pyx_GOTREF(__pyx_t_7);
              __pyx_t_8 = NULL;
              __pyx_t_12 = 0;
              if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_6))) {
                __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_6);
                if (likely(__pyx_t_8)) {
                  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
                  __Pyx_INCREF(__pyx_t_8);
                  __Pyx_INCREF(function);
                  __Pyx_DECREF_SET(__pyx_t_6, function);
                  __pyx_t_12 = 1;
                }
              }
              __pyx_t_13 = PyTuple_New(2+__pyx_t_12); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 649; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
              __Pyx_GOTREF(__pyx_t_13);
              if (__pyx_t_8) {
                PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_t_8); __Pyx_GIVEREF(__pyx_t_8); __pyx_t_8 = NULL;
              }
              PyTuple_SET_ITEM(__pyx_t_13, 0+__pyx_t_12, __pyx_t_7);
              __Pyx_GIVEREF(__pyx_t_7);
              __Pyx_INCREF(__pyx_v_name);
              PyTuple_SET_ITEM(__pyx_t_13, 1+__pyx_t_12, __pyx_v_name);
              __Pyx_GIVEREF(__pyx_v_name);
              __pyx_t_7 = 0;
              __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_13, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 649; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
              __Pyx_GOTREF(__pyx_t_4);
              __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
              __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
              __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
            }
            __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
            __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
            __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
            goto __pyx_L24_try_end;
            __pyx_L17_error:;
            __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
            __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
            __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
            __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
            __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;

            /* "src/llfuse/handlers.pxi":648
 *     try:
 *         name = PyBytes_FromString(cname)
 *         with lock:             # <<<<<<<<<<<<<<
 *             operations.removexattr(ino, name)
 *         ret = fuse_reply_err(req, 0)
 */
            /*except:*/ {
              __Pyx_AddTraceback("llfuse.capi.fuse_removexattr", __pyx_clineno, __pyx_lineno, __pyx_filename);
              if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_6, &__pyx_t_13) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 648; __pyx_clineno = __LINE__; goto __pyx_L19_except_error;}
              __Pyx_GOTREF(__pyx_t_4);
              __Pyx_GOTREF(__pyx_t_6);
              __Pyx_GOTREF(__pyx_t_13);
              __pyx_t_7 = PyTuple_Pack(3, __pyx_t_4, __pyx_t_6, __pyx_t_13); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 648; __pyx_clineno = __LINE__; goto __pyx_L19_except_error;}
              __Pyx_GOTREF(__pyx_t_7);
              __pyx_t_14 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, NULL);
              __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
              __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
              if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 648; __pyx_clineno = __LINE__; goto __pyx_L19_except_error;}
              __Pyx_GOTREF(__pyx_t_14);
              __pyx_t_15 = __Pyx_PyObject_IsTrue(__pyx_t_14);
              __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
              if (__pyx_t_15 < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 648; __pyx_clineno = __LINE__; goto __pyx_L19_except_error;}
              __pyx_t_16 = ((!(__pyx_t_15 != 0)) != 0);
              if (__pyx_t_16) {
                __Pyx_GIVEREF(__pyx_t_4);
                __Pyx_GIVEREF(__pyx_t_6);
                __Pyx_XGIVEREF(__pyx_t_13);
                __Pyx_ErrRestore(__pyx_t_4, __pyx_t_6, __pyx_t_13);
                __pyx_t_4 = 0; __pyx_t_6 = 0; __pyx_t_13 = 0; 
                {__pyx_filename = __pyx_f[0]; __pyx_lineno = 648; __pyx_clineno = __LINE__; goto __pyx_L19_except_error;}
              }
              __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
              __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
              __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
              goto __pyx_L18_exception_handled;
            }
            __pyx_L19_except_error:;
            __Pyx_XGIVEREF(__pyx_t_9);
            __Pyx_XGIVEREF(__pyx_t_10);
            __Pyx_XGIVEREF(__pyx_t_11);
            __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11);
            goto __pyx_L3_error;
            __pyx_L18_exception_handled:;
            __Pyx_XGIVEREF(__pyx_t_9);
            __Pyx_XGIVEREF(__pyx_t_10);
            __Pyx_XGIVEREF(__pyx_t_11);
            __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11);
            __pyx_L24_try_end:;
          }
        }
        /*finally:*/ {
          /*normal exit:*/{
            if (__pyx_t_5) {
              __pyx_t_11 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_tuple__30, NULL);
              __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
              if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 648; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
              __Pyx_GOTREF(__pyx_t_11);
              __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
            }
            goto __pyx_L16;
          }
          __pyx_L16:;
        }
        goto __pyx_L28;
        __pyx_L11_error:;
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        goto __pyx_L3_error;
        __pyx_L28:;
      }

      /* "src/llfuse/handlers.pxi":650
 *         with lock:
 *             operations.removexattr(ino, name)
 *         ret = fuse_reply_err(req, 0)             # <<<<<<<<<<<<<<
 *     except FUSEError as e:
 *         ret = fuse_reply_err(req, e.errno)
 */
      __pyx_v_ret = fuse_reply_err(__pyx_v_req, 0);
    }
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    goto __pyx_L10_try_end;
    __pyx_L3_error:;
    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;

    /* "src/llfuse/handlers.pxi":651
 *             operations.removexattr(ino, name)
 *         ret = fuse_reply_err(req, 0)
 *     except FUSEError as e:             # <<<<<<<<<<<<<<
 *         ret = fuse_reply_err(req, e.errno)
 *     except BaseException as e:
 */
    __pyx_t_13 = __Pyx_GetModuleGlobalName(__pyx_n_s_FUSEError); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 651; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
    __Pyx_GOTREF(__pyx_t_13);
    __pyx_t_17 = PyErr_ExceptionMatches(__pyx_t_13);
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    if (__pyx_t_17) {
      __Pyx_AddTraceback("llfuse.capi.fuse_removexattr", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_13, &__pyx_t_6, &__pyx_t_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 651; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
      __Pyx_GOTREF(__pyx_t_13);
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_6);
      __pyx_v_e = __pyx_t_6;
      /*try:*/ {

        /* "src/llfuse/handlers.pxi":652
 *         ret = fuse_reply_err(req, 0)
 *     except FUSEError as e:
 *         ret = fuse_reply_err(req, e.errno)             # <<<<<<<<<<<<<<
 *     except BaseException as e:
 *         ret = handle_exc('removexattr', e, req)
 */
        __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_e, __pyx_n_s_errno); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 652; __pyx_clineno = __LINE__; goto __pyx_L34_error;}
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_17 = __Pyx_PyInt_As_int(__pyx_t_7); if (unlikely((__pyx_t_17 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 652; __pyx_clineno = __LINE__; goto __pyx_L34_error;}
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __pyx_v_ret = fuse_reply_err(__pyx_v_req, __pyx_t_17);
      }

      /* "src/llfuse/handlers.pxi":651
 *             operations.removexattr(ino, name)
 *         ret = fuse_reply_err(req, 0)
 *     except FUSEError as e:             # <<<<<<<<<<<<<<
 *         ret = fuse_reply_err(req, e.errno)
 *     except BaseException as e:
 */
      /*finally:*/ {
        /*normal exit:*/{
          __Pyx_DECREF(__pyx_v_e);
          __pyx_v_e = NULL;
          goto __pyx_L35;
        }
        /*exception exit:*/{
          __pyx_L34_error:;
          __pyx_t_5 = 0; __pyx_t_11 = 0; __pyx_t_10 = 0; __pyx_t_9 = 0; __pyx_t_14 = 0; __pyx_t_20 = 0;
          __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_9, &__pyx_t_14, &__pyx_t_20);
          if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_5, &__pyx_t_11, &__pyx_t_10) < 0)) __Pyx_ErrFetch(&__pyx_t_5, &__pyx_t_11, &__pyx_t_10);
          __Pyx_XGOTREF(__pyx_t_5);
          __Pyx_XGOTREF(__pyx_t_11);
          __Pyx_XGOTREF(__pyx_t_10);
          __Pyx_XGOTREF(__pyx_t_9);
          __Pyx_XGOTREF(__pyx_t_14);
          __Pyx_XGOTREF(__pyx_t_20);
          __pyx_t_17 = __pyx_lineno; __pyx_t_18 = __pyx_clineno; __pyx_t_19 = __pyx_filename;
          {
            __Pyx_DECREF(__pyx_v_e);
            __pyx_v_e = NULL;
          }
          if (PY_MAJOR_VERSION >= 3) {
            __Pyx_XGIVEREF(__pyx_t_9);
            __Pyx_XGIVEREF(__pyx_t_14);
            __Pyx_XGIVEREF(__pyx_t_20);
            __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_14, __pyx_t_20);
          }
          __Pyx_XGIVEREF(__pyx_t_5);
          __Pyx_XGIVEREF(__pyx_t_11);
          __Pyx_XGIVEREF(__pyx_t_10);
          __Pyx_ErrRestore(__pyx_t_5, __pyx_t_11, __pyx_t_10);
          __pyx_t_5 = 0; __pyx_t_11 = 0; __pyx_t_10 = 0; __pyx_t_9 = 0; __pyx_t_14 = 0; __pyx_t_20 = 0;
          __pyx_lineno = __pyx_t_17; __pyx_clineno = __pyx_t_18; __pyx_filename = __pyx_t_19;
          goto __pyx_L5_except_error;
        }
        __pyx_L35:;
      }
      __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      goto __pyx_L4_exception_handled;
    }

    /* "src/llfuse/handlers.pxi":653
 *     except FUSEError as e:
 *         ret = fuse_reply_err(req, e.errno)
 *     except BaseException as e:             # <<<<<<<<<<<<<<
 *         ret = handle_exc('removexattr', e, req)
 * 
 */
    __pyx_t_18 = PyErr_ExceptionMatches(__pyx_builtin_BaseException);
    if (__pyx_t_18) {
      __Pyx_AddTraceback("llfuse.capi.fuse_removexattr", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_6, &__pyx_t_13) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 653; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_GOTREF(__pyx_t_13);
      __Pyx_INCREF(__pyx_t_6);
      __pyx_v_e = __pyx_t_6;
      /*try:*/ {

        /* "src/llfuse/handlers.pxi":654
 *         ret = fuse_reply_err(req, e.errno)
 *     except BaseException as e:
 *         ret = handle_exc('removexattr', e, req)             # <<<<<<<<<<<<<<
 * 
 *     if ret != 0:
 */
        __pyx_v_ret = __pyx_f_6llfuse_4capi_handle_exc(__pyx_k_removexattr, __pyx_v_e, __pyx_v_req);
      }

      /* "src/llfuse/handlers.pxi":653
 *     except FUSEError as e:
 *         ret = fuse_reply_err(req, e.errno)
 *     except BaseException as e:             # <<<<<<<<<<<<<<
 *         ret = handle_exc('removexattr', e, req)
 * 
 */
      /*finally:*/ {
        /*normal exit:*/{
          __Pyx_DECREF(__pyx_v_e);
          __pyx_v_e = NULL;
          goto __pyx_L46;
        }
        __pyx_L46:;
      }
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
      goto __pyx_L4_exception_handled;
    }
    goto __pyx_L5_except_error;
    __pyx_L5_except_error:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L1_error;
    __pyx_L4_exception_handled:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    __pyx_L10_try_end:;
  }

  /* "src/llfuse/handlers.pxi":656
 *         ret = handle_exc('removexattr', e, req)
 * 
 *     if ret != 0:             # <<<<<<<<<<<<<<
 *         log.error('fuse_removexattr(): fuse_reply_* failed with %s', strerror(-ret))
 * 
 */
  __pyx_t_16 = ((__pyx_v_ret != 0) != 0);
  if (__pyx_t_16) {

    /* "src/llfuse/handlers.pxi":657
 * 
 *     if ret != 0:
 *         log.error('fuse_removexattr(): fuse_reply_* failed with %s', strerror(-ret))             # <<<<<<<<<<<<<<
 * 
 * cdef void fuse_access (fuse_req_t req, fuse_ino_t ino, int mask) with gil:
 */
    __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s_log); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 657; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_error); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 657; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_7 = __Pyx_GetModuleGlobalName(__pyx_n_s_strerror); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 657; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_8 = __Pyx_PyInt_From_int((-__pyx_v_ret)); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 657; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_21 = NULL;
    if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_7))) {
      __pyx_t_21 = PyMethod_GET_SELF(__pyx_t_7);
      if (likely(__pyx_t_21)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
        __Pyx_INCREF(__pyx_t_21);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_7, function);
      }
    }
    if (!__pyx_t_21) {
      __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_8); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 657; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_GOTREF(__pyx_t_6);
    } else {
      __pyx_t_22 = PyTuple_New(1+1); if (unlikely(!__pyx_t_22)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 657; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_22);
      PyTuple_SET_ITEM(__pyx_t_22, 0, __pyx_t_21); __Pyx_GIVEREF(__pyx_t_21); __pyx_t_21 = NULL;
      PyTuple_SET_ITEM(__pyx_t_22, 0+1, __pyx_t_8);
      __Pyx_GIVEREF(__pyx_t_8);
      __pyx_t_8 = 0;
      __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_22, NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 657; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
    }
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_t_7 = NULL;
    __pyx_t_12 = 0;
    if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_4);
      if (likely(__pyx_t_7)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
        __Pyx_INCREF(__pyx_t_7);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_4, function);
        __pyx_t_12 = 1;
      }
    }
    __pyx_t_22 = PyTuple_New(2+__pyx_t_12); if (unlikely(!__pyx_t_22)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 657; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_22);
    if (__pyx_t_7) {
      PyTuple_SET_ITEM(__pyx_t_22, 0, __pyx_t_7); __Pyx_GIVEREF(__pyx_t_7); __pyx_t_7 = NULL;
    }
    __Pyx_INCREF(__pyx_kp_u_fuse_removexattr_fuse_reply__fai);
    PyTuple_SET_ITEM(__pyx_t_22, 0+__pyx_t_12, __pyx_kp_u_fuse_removexattr_fuse_reply__fai);
    __Pyx_GIVEREF(__pyx_kp_u_fuse_removexattr_fuse_reply__fai);
    PyTuple_SET_ITEM(__pyx_t_22, 1+__pyx_t_12, __pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_6);
    __pyx_t_6 = 0;
    __pyx_t_13 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_22, NULL); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 657; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_13);
    __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    goto __pyx_L47;
  }
  __pyx_L47:;

  /* "src/llfuse/handlers.pxi":644
 *         log.error('fuse_listxattr(): fuse_reply_* failed with %s', strerror(-ret))
 * 
 * cdef void fuse_removexattr (fuse_req_t req, fuse_ino_t ino, const_char *cname) with gil:             # <<<<<<<<<<<<<<
 *     cdef int ret
 *     try:
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_XDECREF(__pyx_t_21);
  __Pyx_XDECREF(__pyx_t_22);
  __Pyx_WriteUnraisable("llfuse.capi.fuse_removexattr", __pyx_clineno, __pyx_lineno, __pyx_filename, 0);
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_name);
  __Pyx_XDECREF(__pyx_v_e);
  __Pyx_RefNannyFinishContext();
  #ifdef WITH_THREAD
  PyGILState_Release(__pyx_gilstate_save);
  #endif
}

/* "src/llfuse/handlers.pxi":659
 *         log.error('fuse_removexattr(): fuse_reply_* failed with %s', strerror(-ret))
 * 
 * cdef void fuse_access (fuse_req_t req, fuse_ino_t ino, int mask) with gil:             # <<<<<<<<<<<<<<
 *     cdef int ret
 * 
 */

static void __pyx_f_6llfuse_4capi_fuse_access(fuse_req_t __pyx_v_req, fuse_ino_t __pyx_v_ino, int __pyx_v_mask) {
  int __pyx_v_ret;
  PyObject *__pyx_v_ctx = NULL;
  PyObject *__pyx_v_allowed = NULL;
  PyObject *__pyx_v_e = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  Py_ssize_t __pyx_t_13;
  PyObject *__pyx_t_14 = NULL;
  PyObject *__pyx_t_15 = NULL;
  int __pyx_t_16;
  int __pyx_t_17;
  int __pyx_t_18;
  int __pyx_t_19;
  char const *__pyx_t_20;
  PyObject *__pyx_t_21 = NULL;
  PyObject *__pyx_t_22 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  #ifdef WITH_THREAD
  PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure();
  #endif
  __Pyx_RefNannySetupContext("fuse_access", 0);

  /* "src/llfuse/handlers.pxi":662
 *     cdef int ret
 * 
 *     try:             # <<<<<<<<<<<<<<
 *         ctx = get_request_context(req)
 *         with lock:
 */
  {
    __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);
    __Pyx_XGOTREF(__pyx_t_1);
    __Pyx_XGOTREF(__pyx_t_2);
    __Pyx_XGOTREF(__pyx_t_3);
    /*try:*/ {

      /* "src/llfuse/handlers.pxi":663
 * 
 *     try:
 *         ctx = get_request_context(req)             # <<<<<<<<<<<<<<
 *         with lock:
 *             allowed = operations.access(ino, mask, ctx)
 */
      __pyx_t_4 = __pyx_f_6llfuse_4capi_get_request_context(__pyx_v_req); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 663; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_v_ctx = __pyx_t_4;
      __pyx_t_4 = 0;

      /* "src/llfuse/handlers.pxi":664
 *     try:
 *         ctx = get_request_context(req)
 *         with lock:             # <<<<<<<<<<<<<<
 *             allowed = operations.access(ino, mask, ctx)
 *         if allowed:
 */
      /*with:*/ {
        __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_lock); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 664; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_5 = __Pyx_PyObject_LookupSpecial(__pyx_t_4, __pyx_n_s_exit); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 664; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_7 = __Pyx_PyObject_LookupSpecial(__pyx_t_4, __pyx_n_s_enter); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 664; __pyx_clineno = __LINE__; goto __pyx_L11_error;}
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_8 = NULL;
        if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_7))) {
          __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7);
          if (likely(__pyx_t_8)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
            __Pyx_INCREF(__pyx_t_8);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_7, function);
          }
        }
        if (__pyx_t_8) {
          __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_8); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 664; __pyx_clineno = __LINE__; goto __pyx_L11_error;}
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        } else {
          __pyx_t_6 = __Pyx_PyObject_CallNoArg(__pyx_t_7); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 664; __pyx_clineno = __LINE__; goto __pyx_L11_error;}
        }
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        /*try:*/ {
          {
            __Pyx_ExceptionSave(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
            __Pyx_XGOTREF(__pyx_t_9);
            __Pyx_XGOTREF(__pyx_t_10);
            __Pyx_XGOTREF(__pyx_t_11);
            /*try:*/ {

              /* "src/llfuse/handlers.pxi":665
 *         ctx = get_request_context(req)
 *         with lock:
 *             allowed = operations.access(ino, mask, ctx)             # <<<<<<<<<<<<<<
 *         if allowed:
 *             ret = fuse_reply_err(req, 0)
 */
              __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_6llfuse_4capi_operations, __pyx_n_s_access); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 665; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
              __Pyx_GOTREF(__pyx_t_6);
              __pyx_t_7 = __Pyx_PyInt_From_fuse_ino_t(__pyx_v_ino); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 665; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
              __Pyx_GOTREF(__pyx_t_7);
              __pyx_t_8 = __Pyx_PyInt_From_int(__pyx_v_mask); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 665; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
              __Pyx_GOTREF(__pyx_t_8);
              __pyx_t_12 = NULL;
              __pyx_t_13 = 0;
              if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_6))) {
                __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_6);
                if (likely(__pyx_t_12)) {
                  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
                  __Pyx_INCREF(__pyx_t_12);
                  __Pyx_INCREF(function);
                  __Pyx_DECREF_SET(__pyx_t_6, function);
                  __pyx_t_13 = 1;
                }
              }
              __pyx_t_14 = PyTuple_New(3+__pyx_t_13); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 665; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
              __Pyx_GOTREF(__pyx_t_14);
              if (__pyx_t_12) {
                PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_12); __Pyx_GIVEREF(__pyx_t_12); __pyx_t_12 = NULL;
              }
              PyTuple_SET_ITEM(__pyx_t_14, 0+__pyx_t_13, __pyx_t_7);
              __Pyx_GIVEREF(__pyx_t_7);
              PyTuple_SET_ITEM(__pyx_t_14, 1+__pyx_t_13, __pyx_t_8);
              __Pyx_GIVEREF(__pyx_t_8);
              __Pyx_INCREF(__pyx_v_ctx);
              PyTuple_SET_ITEM(__pyx_t_14, 2+__pyx_t_13, __pyx_v_ctx);
              __Pyx_GIVEREF(__pyx_v_ctx);
              __pyx_t_7 = 0;
              __pyx_t_8 = 0;
              __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_14, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 665; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
              __Pyx_GOTREF(__pyx_t_4);
              __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
              __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
              __pyx_v_allowed = __pyx_t_4;
              __pyx_t_4 = 0;
            }
            __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
            __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
            __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
            goto __pyx_L24_try_end;
            __pyx_L17_error:;
            __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
            __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
            __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
            __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
            __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
            __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;

            /* "src/llfuse/handlers.pxi":664
 *     try:
 *         ctx = get_request_context(req)
 *         with lock:             # <<<<<<<<<<<<<<
 *             allowed = operations.access(ino, mask, ctx)
 *         if allowed:
 */
            /*except:*/ {
              __Pyx_AddTraceback("llfuse.capi.fuse_access", __pyx_clineno, __pyx_lineno, __pyx_filename);
              if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_6, &__pyx_t_14) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 664; __pyx_clineno = __LINE__; goto __pyx_L19_except_error;}
              __Pyx_GOTREF(__pyx_t_4);
              __Pyx_GOTREF(__pyx_t_6);
              __Pyx_GOTREF(__pyx_t_14);
              __pyx_t_8 = PyTuple_Pack(3, __pyx_t_4, __pyx_t_6, __pyx_t_14); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 664; __pyx_clineno = __LINE__; goto __pyx_L19_except_error;}
              __Pyx_GOTREF(__pyx_t_8);
              __pyx_t_15 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_8, NULL);
              __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
              __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
              if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 664; __pyx_clineno = __LINE__; goto __pyx_L19_except_error;}
              __Pyx_GOTREF(__pyx_t_15);
              __pyx_t_16 = __Pyx_PyObject_IsTrue(__pyx_t_15);
              __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
              if (__pyx_t_16 < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 664; __pyx_clineno = __LINE__; goto __pyx_L19_except_error;}
              __pyx_t_17 = ((!(__pyx_t_16 != 0)) != 0);
              if (__pyx_t_17) {
                __Pyx_GIVEREF(__pyx_t_4);
                __Pyx_GIVEREF(__pyx_t_6);
                __Pyx_XGIVEREF(__pyx_t_14);
                __Pyx_ErrRestore(__pyx_t_4, __pyx_t_6, __pyx_t_14);
                __pyx_t_4 = 0; __pyx_t_6 = 0; __pyx_t_14 = 0; 
                {__pyx_filename = __pyx_f[0]; __pyx_lineno = 664; __pyx_clineno = __LINE__; goto __pyx_L19_except_error;}
              }
              __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
              __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
              __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
              goto __pyx_L18_exception_handled;
            }
            __pyx_L19_except_error:;
            __Pyx_XGIVEREF(__pyx_t_9);
            __Pyx_XGIVEREF(__pyx_t_10);
            __Pyx_XGIVEREF(__pyx_t_11);
            __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11);
            goto __pyx_L3_error;
            __pyx_L18_exception_handled:;
            __Pyx_XGIVEREF(__pyx_t_9);
            __Pyx_XGIVEREF(__pyx_t_10);
            __Pyx_XGIVEREF(__pyx_t_11);
            __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11);
            __pyx_L24_try_end:;
          }
        }
        /*finally:*/ {
          /*normal exit:*/{
            if (__pyx_t_5) {
              __pyx_t_11 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_tuple__31, NULL);
              __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
              if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 664; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
              __Pyx_GOTREF(__pyx_t_11);
              __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
            }
            goto __pyx_L16;
          }
          __pyx_L16:;
        }
        goto __pyx_L28;
        __pyx_L11_error:;
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        goto __pyx_L3_error;
        __pyx_L28:;
      }

      /* "src/llfuse/handlers.pxi":666
 *         with lock:
 *             allowed = operations.access(ino, mask, ctx)
 *         if allowed:             # <<<<<<<<<<<<<<
 *             ret = fuse_reply_err(req, 0)
 *         else:
 */
      if (unlikely(!__pyx_v_allowed)) { __Pyx_RaiseUnboundLocalError("allowed"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 666; __pyx_clineno = __LINE__; goto __pyx_L3_error;} }
      __pyx_t_17 = __Pyx_PyObject_IsTrue(__pyx_v_allowed); if (unlikely(__pyx_t_17 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 666; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      if (__pyx_t_17) {

        /* "src/llfuse/handlers.pxi":667
 *             allowed = operations.access(ino, mask, ctx)
 *         if allowed:
 *             ret = fuse_reply_err(req, 0)             # <<<<<<<<<<<<<<
 *         else:
 *             ret = fuse_reply_err(req, EPERM)
 */
        __pyx_v_ret = fuse_reply_err(__pyx_v_req, 0);
        goto __pyx_L29;
      }
      /*else*/ {

        /* "src/llfuse/handlers.pxi":669
 *             ret = fuse_reply_err(req, 0)
 *         else:
 *             ret = fuse_reply_err(req, EPERM)             # <<<<<<<<<<<<<<
 *     except FUSEError as e:
 *         ret = fuse_reply_err(req, e.errno)
 */
        __pyx_v_ret = fuse_reply_err(__pyx_v_req, EPERM);
      }
      __pyx_L29:;
    }
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    goto __pyx_L10_try_end;
    __pyx_L3_error:;
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;

    /* "src/llfuse/handlers.pxi":670
 *         else:
 *             ret = fuse_reply_err(req, EPERM)
 *     except FUSEError as e:             # <<<<<<<<<<<<<<
 *         ret = fuse_reply_err(req, e.errno)
 *     except BaseException as e:
 */
    __pyx_t_14 = __Pyx_GetModuleGlobalName(__pyx_n_s_FUSEError); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 670; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
    __Pyx_GOTREF(__pyx_t_14);
    __pyx_t_18 = PyErr_ExceptionMatches(__pyx_t_14);
    __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
    if (__pyx_t_18) {
      __Pyx_AddTraceback("llfuse.capi.fuse_access", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_14, &__pyx_t_6, &__pyx_t_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 670; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
      __Pyx_GOTREF(__pyx_t_14);
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_6);
      __pyx_v_e = __pyx_t_6;
      /*try:*/ {

        /* "src/llfuse/handlers.pxi":671
 *             ret = fuse_reply_err(req, EPERM)
 *     except FUSEError as e:
 *         ret = fuse_reply_err(req, e.errno)             # <<<<<<<<<<<<<<
 *     except BaseException as e:
 *         ret = handle_exc('access', e, req)
 */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_e, __pyx_n_s_errno); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 671; __pyx_clineno = __LINE__; goto __pyx_L35_error;}
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_18 = __Pyx_PyInt_As_int(__pyx_t_8); if (unlikely((__pyx_t_18 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 671; __pyx_clineno = __LINE__; goto __pyx_L35_error;}
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __pyx_v_ret = fuse_reply_err(__pyx_v_req, __pyx_t_18);
      }

      /* "src/llfuse/handlers.pxi":670
 *         else:
 *             ret = fuse_reply_err(req, EPERM)
 *     except FUSEError as e:             # <<<<<<<<<<<<<<
 *         ret = fuse_reply_err(req, e.errno)
 *     except BaseException as e:
 */
      /*finally:*/ {
        /*normal exit:*/{
          __Pyx_DECREF(__pyx_v_e);
          __pyx_v_e = NULL;
          goto __pyx_L36;
        }
        /*exception exit:*/{
          __pyx_L35_error:;
          __pyx_t_5 = 0; __pyx_t_11 = 0; __pyx_t_10 = 0; __pyx_t_9 = 0; __pyx_t_15 = 0; __pyx_t_21 = 0;
          __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
          if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_9, &__pyx_t_15, &__pyx_t_21);
          if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_5, &__pyx_t_11, &__pyx_t_10) < 0)) __Pyx_ErrFetch(&__pyx_t_5, &__pyx_t_11, &__pyx_t_10);
          __Pyx_XGOTREF(__pyx_t_5);
          __Pyx_XGOTREF(__pyx_t_11);
          __Pyx_XGOTREF(__pyx_t_10);
          __Pyx_XGOTREF(__pyx_t_9);
          __Pyx_XGOTREF(__pyx_t_15);
          __Pyx_XGOTREF(__pyx_t_21);
          __pyx_t_18 = __pyx_lineno; __pyx_t_19 = __pyx_clineno; __pyx_t_20 = __pyx_filename;
          {
            __Pyx_DECREF(__pyx_v_e);
            __pyx_v_e = NULL;
          }
          if (PY_MAJOR_VERSION >= 3) {
            __Pyx_XGIVEREF(__pyx_t_9);
            __Pyx_XGIVEREF(__pyx_t_15);
            __Pyx_XGIVEREF(__pyx_t_21);
            __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_15, __pyx_t_21);
          }
          __Pyx_XGIVEREF(__pyx_t_5);
          __Pyx_XGIVEREF(__pyx_t_11);
          __Pyx_XGIVEREF(__pyx_t_10);
          __Pyx_ErrRestore(__pyx_t_5, __pyx_t_11, __pyx_t_10);
          __pyx_t_5 = 0; __pyx_t_11 = 0; __pyx_t_10 = 0; __pyx_t_9 = 0; __pyx_t_15 = 0; __pyx_t_21 = 0;
          __pyx_lineno = __pyx_t_18; __pyx_clineno = __pyx_t_19; __pyx_filename = __pyx_t_20;
          goto __pyx_L5_except_error;
        }
        __pyx_L36:;
      }
      __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      goto __pyx_L4_exception_handled;
    }

    /* "src/llfuse/handlers.pxi":672
 *     except FUSEError as e:
 *         ret = fuse_reply_err(req, e.errno)
 *     except BaseException as e:             # <<<<<<<<<<<<<<
 *         ret = handle_exc('access', e, req)
 * 
 */
    __pyx_t_19 = PyErr_ExceptionMatches(__pyx_builtin_BaseException);
    if (__pyx_t_19) {
      __Pyx_AddTraceback("llfuse.capi.fuse_access", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_6, &__pyx_t_14) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 672; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_GOTREF(__pyx_t_14);
      __Pyx_INCREF(__pyx_t_6);
      __pyx_v_e = __pyx_t_6;
      /*try:*/ {

        /* "src/llfuse/handlers.pxi":673
 *         ret = fuse_reply_err(req, e.errno)
 *     except BaseException as e:
 *         ret = handle_exc('access', e, req)             # <<<<<<<<<<<<<<
 * 
 *     if ret != 0:
 */
        __pyx_v_ret = __pyx_f_6llfuse_4capi_handle_exc(__pyx_k_access, __pyx_v_e, __pyx_v_req);
      }

      /* "src/llfuse/handlers.pxi":672
 *     except FUSEError as e:
 *         ret = fuse_reply_err(req, e.errno)
 *     except BaseException as e:             # <<<<<<<<<<<<<<
 *         ret = handle_exc('access', e, req)
 * 
 */
      /*finally:*/ {
        /*normal exit:*/{
          __Pyx_DECREF(__pyx_v_e);
          __pyx_v_e = NULL;
          goto __pyx_L47;
        }
        __pyx_L47:;
      }
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
      goto __pyx_L4_exception_handled;
    }
    goto __pyx_L5_except_error;
    __pyx_L5_except_error:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L1_error;
    __pyx_L4_exception_handled:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    __pyx_L10_try_end:;
  }

  /* "src/llfuse/handlers.pxi":675
 *         ret = handle_exc('access', e, req)
 * 
 *     if ret != 0:             # <<<<<<<<<<<<<<
 *         log.error('fuse_access(): fuse_reply_* failed with %s', strerror(-ret))
 * 
 */
  __pyx_t_17 = ((__pyx_v_ret != 0) != 0);
  if (__pyx_t_17) {

    /* "src/llfuse/handlers.pxi":676
 * 
 *     if ret != 0:
 *         log.error('fuse_access(): fuse_reply_* failed with %s', strerror(-ret))             # <<<<<<<<<<<<<<
 * 
 * 
 */
    __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s_log); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 676; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_error); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 676; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_8 = __Pyx_GetModuleGlobalName(__pyx_n_s_strerror); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 676; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_7 = __Pyx_PyInt_From_int((-__pyx_v_ret)); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 676; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_12 = NULL;
    if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_8))) {
      __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_8);
      if (likely(__pyx_t_12)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
        __Pyx_INCREF(__pyx_t_12);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_8, function);
      }
    }
    if (!__pyx_t_12) {
      __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_7); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 676; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_GOTREF(__pyx_t_6);
    } else {
      __pyx_t_22 = PyTuple_New(1+1); if (unlikely(!__pyx_t_22)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 676; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_22);
      PyTuple_SET_ITEM(__pyx_t_22, 0, __pyx_t_12); __Pyx_GIVEREF(__pyx_t_12); __pyx_t_12 = NULL;
      PyTuple_SET_ITEM(__pyx_t_22, 0+1, __pyx_t_7);
      __Pyx_GIVEREF(__pyx_t_7);
      __pyx_t_7 = 0;
      __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_22, NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 676; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
    }
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __pyx_t_8 = NULL;
    __pyx_t_13 = 0;
    if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_4);
      if (likely(__pyx_t_8)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
        __Pyx_INCREF(__pyx_t_8);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_4, function);
        __pyx_t_13 = 1;
      }
    }
    __pyx_t_22 = PyTuple_New(2+__pyx_t_13); if (unlikely(!__pyx_t_22)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 676; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_22);
    if (__pyx_t_8) {
      PyTuple_SET_ITEM(__pyx_t_22, 0, __pyx_t_8); __Pyx_GIVEREF(__pyx_t_8); __pyx_t_8 = NULL;
    }
    __Pyx_INCREF(__pyx_kp_u_fuse_access_fuse_reply__failed_w);
    PyTuple_SET_ITEM(__pyx_t_22, 0+__pyx_t_13, __pyx_kp_u_fuse_access_fuse_reply__failed_w);
    __Pyx_GIVEREF(__pyx_kp_u_fuse_access_fuse_reply__failed_w);
    PyTuple_SET_ITEM(__pyx_t_22, 1+__pyx_t_13, __pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_6);
    __pyx_t_6 = 0;
    __pyx_t_14 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_22, NULL); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 676; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_14);
    __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
    goto __pyx_L48;
  }
  __pyx_L48:;

  /* "src/llfuse/handlers.pxi":659
 *         log.error('fuse_removexattr(): fuse_reply_* failed with %s', strerror(-ret))
 * 
 * cdef void fuse_access (fuse_req_t req, fuse_ino_t ino, int mask) with gil:             # <<<<<<<<<<<<<<
 *     cdef int ret
 * 
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_XDECREF(__pyx_t_14);
  __Pyx_XDECREF(__pyx_t_22);
  __Pyx_WriteUnraisable("llfuse.capi.fuse_access", __pyx_clineno, __pyx_lineno, __pyx_filename, 0);
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_ctx);
  __Pyx_XDECREF(__pyx_v_allowed);
  __Pyx_XDECREF(__pyx_v_e);
  __Pyx_RefNannyFinishContext();
  #ifdef WITH_THREAD
  PyGILState_Release(__pyx_gilstate_save);
  #endif
}

/* "src/llfuse/handlers.pxi":679
 * 
 * 
 * cdef void fuse_create (fuse_req_t req, fuse_ino_t parent, const_char *cname,             # <<<<<<<<<<<<<<
 *                        mode_t mode, fuse_file_info *fi) with gil:
 *     cdef int ret
 */

static void __pyx_f_6llfuse_4capi_fuse_create(fuse_req_t __pyx_v_req, fuse_ino_t __pyx_v_parent, const char *__pyx_v_cname, mode_t __pyx_v_mode, struct fuse_file_info *__pyx_v_fi) {
  int __pyx_v_ret;
  struct fuse_entry_param __pyx_v_entry;
  PyObject *__pyx_v_ctx = NULL;
  PyObject *__pyx_v_name = NULL;
  PyObject *__pyx_v_attr = NULL;
  PyObject *__pyx_v_e = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  PyObject *__pyx_t_12 = NULL;
  PyObject *__pyx_t_13 = NULL;
  Py_ssize_t __pyx_t_14;
  PyObject *__pyx_t_15 = NULL;
  PyObject *(*__pyx_t_16)(PyObject *);
  uint64_t __pyx_t_17;
  PyObject *__pyx_t_18 = NULL;
  int __pyx_t_19;
  int __pyx_t_20;
  int __pyx_t_21;
  int __pyx_t_22;
  char const *__pyx_t_23;
  PyObject *__pyx_t_24 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  #ifdef WITH_THREAD
  PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure();
  #endif
  __Pyx_RefNannySetupContext("fuse_create", 0);

  /* "src/llfuse/handlers.pxi":684
 *     cdef fuse_entry_param entry
 * 
 *     try:             # <<<<<<<<<<<<<<
 *         ctx = get_request_context(req)
 *         name = PyBytes_FromString(cname)
 */
  {
    __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);
    __Pyx_XGOTREF(__pyx_t_1);
    __Pyx_XGOTREF(__pyx_t_2);
    __Pyx_XGOTREF(__pyx_t_3);
    /*try:*/ {

      /* "src/llfuse/handlers.pxi":685
 * 
 *     try:
 *         ctx = get_request_context(req)             # <<<<<<<<<<<<<<
 *         name = PyBytes_FromString(cname)
 *         with lock:
 */
      __pyx_t_4 = __pyx_f_6llfuse_4capi_get_request_context(__pyx_v_req); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 685; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_v_ctx = __pyx_t_4;
      __pyx_t_4 = 0;

      /* "src/llfuse/handlers.pxi":686
 *     try:
 *         ctx = get_request_context(req)
 *         name = PyBytes_FromString(cname)             # <<<<<<<<<<<<<<
 *         with lock:
 *             (fi.fh, attr) = operations.create(parent, name, mode, fi.flags, ctx)
 */
      __pyx_t_4 = PyBytes_FromString(__pyx_v_cname); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 686; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_v_name = ((PyObject*)__pyx_t_4);
      __pyx_t_4 = 0;

      /* "src/llfuse/handlers.pxi":687
 *         ctx = get_request_context(req)
 *         name = PyBytes_FromString(cname)
 *         with lock:             # <<<<<<<<<<<<<<
 *             (fi.fh, attr) = operations.create(parent, name, mode, fi.flags, ctx)
 * 
 */
      /*with:*/ {
        __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_lock); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 687; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_5 = __Pyx_PyObject_LookupSpecial(__pyx_t_4, __pyx_n_s_exit); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 687; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_7 = __Pyx_PyObject_LookupSpecial(__pyx_t_4, __pyx_n_s_enter); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 687; __pyx_clineno = __LINE__; goto __pyx_L11_error;}
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_8 = NULL;
        if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_7))) {
          __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7);
          if (likely(__pyx_t_8)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
            __Pyx_INCREF(__pyx_t_8);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_7, function);
          }
        }
        if (__pyx_t_8) {
          __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_8); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 687; __pyx_clineno = __LINE__; goto __pyx_L11_error;}
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        } else {
          __pyx_t_6 = __Pyx_PyObject_CallNoArg(__pyx_t_7); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 687; __pyx_clineno = __LINE__; goto __pyx_L11_error;}
        }
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        /*try:*/ {
          {
            __Pyx_ExceptionSave(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
            __Pyx_XGOTREF(__pyx_t_9);
            __Pyx_XGOTREF(__pyx_t_10);
            __Pyx_XGOTREF(__pyx_t_11);
            /*try:*/ {

              /* "src/llfuse/handlers.pxi":688
 *         name = PyBytes_FromString(cname)
 *         with lock:
 *             (fi.fh, attr) = operations.create(parent, name, mode, fi.flags, ctx)             # <<<<<<<<<<<<<<
 * 
 *         # Cached file data does not need to be invalidated.
 */
              __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_6llfuse_4capi_operations, __pyx_n_s_create); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 688; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
              __Pyx_GOTREF(__pyx_t_6);
              __pyx_t_7 = __Pyx_PyInt_From_fuse_ino_t(__pyx_v_parent); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 688; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
              __Pyx_GOTREF(__pyx_t_7);
              __pyx_t_8 = __Pyx_PyInt_From_mode_t(__pyx_v_mode); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 688; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
              __Pyx_GOTREF(__pyx_t_8);
              __pyx_t_12 = __Pyx_PyInt_From_int(__pyx_v_fi->flags); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 688; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
              __Pyx_GOTREF(__pyx_t_12);
              __pyx_t_13 = NULL;
              __pyx_t_14 = 0;
              if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_6))) {
                __pyx_t_13 = PyMethod_GET_SELF(__pyx_t_6);
                if (likely(__pyx_t_13)) {
                  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
                  __Pyx_INCREF(__pyx_t_13);
                  __Pyx_INCREF(function);
                  __Pyx_DECREF_SET(__pyx_t_6, function);
                  __pyx_t_14 = 1;
                }
              }
              __pyx_t_15 = PyTuple_New(5+__pyx_t_14); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 688; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
              __Pyx_GOTREF(__pyx_t_15);
              if (__pyx_t_13) {
                PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_13); __Pyx_GIVEREF(__pyx_t_13); __pyx_t_13 = NULL;
              }
              PyTuple_SET_ITEM(__pyx_t_15, 0+__pyx_t_14, __pyx_t_7);
              __Pyx_GIVEREF(__pyx_t_7);
              __Pyx_INCREF(__pyx_v_name);
              PyTuple_SET_ITEM(__pyx_t_15, 1+__pyx_t_14, __pyx_v_name);
              __Pyx_GIVEREF(__pyx_v_name);
              PyTuple_SET_ITEM(__pyx_t_15, 2+__pyx_t_14, __pyx_t_8);
              __Pyx_GIVEREF(__pyx_t_8);
              PyTuple_SET_ITEM(__pyx_t_15, 3+__pyx_t_14, __pyx_t_12);
              __Pyx_GIVEREF(__pyx_t_12);
              __Pyx_INCREF(__pyx_v_ctx);
              PyTuple_SET_ITEM(__pyx_t_15, 4+__pyx_t_14, __pyx_v_ctx);
              __Pyx_GIVEREF(__pyx_v_ctx);
              __pyx_t_7 = 0;
              __pyx_t_8 = 0;
              __pyx_t_12 = 0;
              __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_15, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 688; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
              __Pyx_GOTREF(__pyx_t_4);
              __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
              __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
              if ((likely(PyTuple_CheckExact(__pyx_t_4))) || (PyList_CheckExact(__pyx_t_4))) {
                PyObject* sequence = __pyx_t_4;
                #if CYTHON_COMPILING_IN_CPYTHON
                Py_ssize_t size = Py_SIZE(sequence);
                #else
                Py_ssize_t size = PySequence_Size(sequence);
                #endif
                if (unlikely(size != 2)) {
                  if (size > 2) __Pyx_RaiseTooManyValuesError(2);
                  else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
                  {__pyx_filename = __pyx_f[0]; __pyx_lineno = 688; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
                }
                #if CYTHON_COMPILING_IN_CPYTHON
                if (likely(PyTuple_CheckExact(sequence))) {
                  __pyx_t_6 = PyTuple_GET_ITEM(sequence, 0); 
                  __pyx_t_15 = PyTuple_GET_ITEM(sequence, 1); 
                } else {
                  __pyx_t_6 = PyList_GET_ITEM(sequence, 0); 
                  __pyx_t_15 = PyList_GET_ITEM(sequence, 1); 
                }
                __Pyx_INCREF(__pyx_t_6);
                __Pyx_INCREF(__pyx_t_15);
                #else
                __pyx_t_6 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 688; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
                __Pyx_GOTREF(__pyx_t_6);
                __pyx_t_15 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 688; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
                __Pyx_GOTREF(__pyx_t_15);
                #endif
                __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
              } else {
                Py_ssize_t index = -1;
                __pyx_t_12 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 688; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
                __Pyx_GOTREF(__pyx_t_12);
                __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
                __pyx_t_16 = Py_TYPE(__pyx_t_12)->tp_iternext;
                index = 0; __pyx_t_6 = __pyx_t_16(__pyx_t_12); if (unlikely(!__pyx_t_6)) goto __pyx_L25_unpacking_failed;
                __Pyx_GOTREF(__pyx_t_6);
                index = 1; __pyx_t_15 = __pyx_t_16(__pyx_t_12); if (unlikely(!__pyx_t_15)) goto __pyx_L25_unpacking_failed;
                __Pyx_GOTREF(__pyx_t_15);
                if (__Pyx_IternextUnpackEndCheck(__pyx_t_16(__pyx_t_12), 2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 688; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
                __pyx_t_16 = NULL;
                __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
                goto __pyx_L26_unpacking_done;
                __pyx_L25_unpacking_failed:;
                __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
                __pyx_t_16 = NULL;
                if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
                {__pyx_filename = __pyx_f[0]; __pyx_lineno = 688; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
                __pyx_L26_unpacking_done:;
              }
              __pyx_t_17 = __Pyx_PyInt_As_uint64_t(__pyx_t_6); if (unlikely((__pyx_t_17 == (uint64_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 688; __pyx_clineno = __LINE__; goto __pyx_L17_error;}
              __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
              __pyx_v_fi->fh = __pyx_t_17;
              __pyx_v_attr = __pyx_t_15;
              __pyx_t_15 = 0;
            }
            __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
            __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
            __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
            goto __pyx_L24_try_end;
            __pyx_L17_error:;
            __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
            __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
            __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
            __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
            __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
            __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0;
            __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;

            /* "src/llfuse/handlers.pxi":687
 *         ctx = get_request_context(req)
 *         name = PyBytes_FromString(cname)
 *         with lock:             # <<<<<<<<<<<<<<
 *             (fi.fh, attr) = operations.create(parent, name, mode, fi.flags, ctx)
 * 
 */
            /*except:*/ {
              __Pyx_AddTraceback("llfuse.capi.fuse_create", __pyx_clineno, __pyx_lineno, __pyx_filename);
              if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_15, &__pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 687; __pyx_clineno = __LINE__; goto __pyx_L19_except_error;}
              __Pyx_GOTREF(__pyx_t_4);
              __Pyx_GOTREF(__pyx_t_15);
              __Pyx_GOTREF(__pyx_t_6);
              __pyx_t_12 = PyTuple_Pack(3, __pyx_t_4, __pyx_t_15, __pyx_t_6); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 687; __pyx_clineno = __LINE__; goto __pyx_L19_except_error;}
              __Pyx_GOTREF(__pyx_t_12);
              __pyx_t_18 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_12, NULL);
              __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
              __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
              if (unlikely(!__pyx_t_18)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 687; __pyx_clineno = __LINE__; goto __pyx_L19_except_error;}
              __Pyx_GOTREF(__pyx_t_18);
              __pyx_t_19 = __Pyx_PyObject_IsTrue(__pyx_t_18);
              __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
              if (__pyx_t_19 < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 687; __pyx_clineno = __LINE__; goto __pyx_L19_except_error;}
              __pyx_t_20 = ((!(__pyx_t_19 != 0)) != 0);
              if (__pyx_t_20) {
                __Pyx_GIVEREF(__pyx_t_4);
                __Pyx_GIVEREF(__pyx_t_15);
                __Pyx_XGIVEREF(__pyx_t_6);
                __Pyx_ErrRestore(__pyx_t_4, __pyx_t_15, __pyx_t_6);
                __pyx_t_4 = 0; __pyx_t_15 = 0; __pyx_t_6 = 0; 
                {__pyx_filename = __pyx_f[0]; __pyx_lineno = 687; __pyx_clineno = __LINE__; goto __pyx_L19_except_error;}
              }
              __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
              __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
              __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
              goto __pyx_L18_exception_handled;
            }
            __pyx_L19_except_error:;
            __Pyx_XGIVEREF(__pyx_t_9);
            __Pyx_XGIVEREF(__pyx_t_10);
            __Pyx_XGIVEREF(__pyx_t_11);
            __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11);
            goto __pyx_L3_error;
            __pyx_L18_exception_handled:;
            __Pyx_XGIVEREF(__pyx_t_9);
            __Pyx_XGIVEREF(__pyx_t_10);
            __Pyx_XGIVEREF(__pyx_t_11);
            __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11);
            __pyx_L24_try_end:;
          }
        }
        /*finally:*/ {
          /*normal exit:*/{
            if (__pyx_t_5) {
              __pyx_t_11 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_tuple__32, NULL);
              __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
              if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 687; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
              __Pyx_GOTREF(__pyx_t_11);
              __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
            }
            goto __pyx_L16;
          }
          __pyx_L16:;
        }
        goto __pyx_L30;
        __pyx_L11_error:;
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        goto __pyx_L3_error;
        __pyx_L30:;
      }

      /* "src/llfuse/handlers.pxi":692
 *         # Cached file data does not need to be invalidated.
 *         # http://article.gmane.org/gmane.comp.file-systems.fuse.devel/5325/
 *         fi.keep_cache = 1             # <<<<<<<<<<<<<<
 * 
 *         fill_entry_param(attr, &entry)
 */
      __pyx_v_fi->keep_cache = 1;

      /* "src/llfuse/handlers.pxi":694
 *         fi.keep_cache = 1
 * 
 *         fill_entry_param(attr, &entry)             # <<<<<<<<<<<<<<
 *         ret = fuse_reply_create(req, &entry, fi)
 *     except FUSEError as e:
 */
      if (unlikely(!__pyx_v_attr)) { __Pyx_RaiseUnboundLocalError("attr"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 694; __pyx_clineno = __LINE__; goto __pyx_L3_error;} }
      __pyx_t_6 = __pyx_f_6llfuse_4capi_fill_entry_param(__pyx_v_attr, (&__pyx_v_entry)); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 694; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;

      /* "src/llfuse/handlers.pxi":695
 * 
 *         fill_entry_param(attr, &entry)
 *         ret = fuse_reply_create(req, &entry, fi)             # <<<<<<<<<<<<<<
 *     except FUSEError as e:
 *         ret = fuse_reply_err(req, e.errno)
 */
      __pyx_v_ret = fuse_reply_create(__pyx_v_req, (&__pyx_v_entry), __pyx_v_fi);
    }
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    goto __pyx_L10_try_end;
    __pyx_L3_error:;
    __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0;
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;

    /* "src/llfuse/handlers.pxi":696
 *         fill_entry_param(attr, &entry)
 *         ret = fuse_reply_create(req, &entry, fi)
 *     except FUSEError as e:             # <<<<<<<<<<<<<<
 *         ret = fuse_reply_err(req, e.errno)
 *     except BaseException as e:
 */
    __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s_FUSEError); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 696; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_21 = PyErr_ExceptionMatches(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (__pyx_t_21) {
      __Pyx_AddTraceback("llfuse.capi.fuse_create", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_6, &__pyx_t_15, &__pyx_t_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 696; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_GOTREF(__pyx_t_15);
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_15);
      __pyx_v_e = __pyx_t_15;
      /*try:*/ {

        /* "src/llfuse/handlers.pxi":697
 *         ret = fuse_reply_create(req, &entry, fi)
 *     except FUSEError as e:
 *         ret = fuse_reply_err(req, e.errno)             # <<<<<<<<<<<<<<
 *     except BaseException as e:
 *         ret = handle_exc('create', e, req)
 */
        __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_v_e, __pyx_n_s_errno); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 697; __pyx_clineno = __LINE__; goto __pyx_L36_error;}
        __Pyx_GOTREF(__pyx_t_12);
        __pyx_t_21 = __Pyx_PyInt_As_int(__pyx_t_12); if (unlikely((__pyx_t_21 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 697; __pyx_clineno = __LINE__; goto __pyx_L36_error;}
        __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
        __pyx_v_ret = fuse_reply_err(__pyx_v_req, __pyx_t_21);
      }

      /* "src/llfuse/handlers.pxi":696
 *         fill_entry_param(attr, &entry)
 *         ret = fuse_reply_create(req, &entry, fi)
 *     except FUSEError as e:             # <<<<<<<<<<<<<<
 *         ret = fuse_reply_err(req, e.errno)
 *     except BaseException as e:
 */
      /*finally:*/ {
        /*normal exit:*/{
          __Pyx_DECREF(__pyx_v_e);
          __pyx_v_e = NULL;
          goto __pyx_L37;
        }
        /*exception exit:*/{
          __pyx_L36_error:;
          __pyx_t_5 = 0; __pyx_t_11 = 0; __pyx_t_10 = 0; __pyx_t_9 = 0; __pyx_t_18 = 0; __pyx_t_24 = 0;
          __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
          __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
          if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_9, &__pyx_t_18, &__pyx_t_24);
          if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_5, &__pyx_t_11, &__pyx_t_10) < 0)) __Pyx_ErrFetch(&__pyx_t_5, &__pyx_t_11, &__pyx_t_10);
          __Pyx_XGOTREF(__pyx_t_5);
          __Pyx_XGOTREF(__pyx_t_11);
          __Pyx_XGOTREF(__pyx_t_10);
          __Pyx_XGOTREF(__pyx_t_9);
          __Pyx_XGOTREF(__pyx_t_18);
          __Pyx_XGOTREF(__pyx_t_24);
          __pyx_t_21 = __pyx_lineno; __pyx_t_22 = __pyx_clineno; __pyx_t_23 = __pyx_filename;
          {
            __Pyx_DECREF(__pyx_v_e);
            __pyx_v_e = NULL;
          }
          if (PY_MAJOR_VERSION >= 3) {
            __Pyx_XGIVEREF(__pyx_t_9);
            __Pyx_XGIVEREF(__pyx_t_18);
            __Pyx_XGIVEREF(__pyx_t_24);
            __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_18, __pyx_t_24);
          }
          __Pyx_XGIVEREF(__pyx_t_5);
          __Pyx_XGIVEREF(__pyx_t_11);
          __Pyx_XGIVEREF(__pyx_t_10);
          __Pyx_ErrRestore(__pyx_t_5, __pyx_t_11, __pyx_t_10);
          __pyx_t_5 = 0; __pyx_t_11 = 0; __pyx_t_10 = 0; __pyx_t_9 = 0; __pyx_t_18 = 0; __pyx_t_24 = 0;
          __pyx_lineno = __pyx_t_21; __pyx_clineno = __pyx_t_22; __pyx_filename = __pyx_t_23;
          goto __pyx_L5_except_error;
        }
        __pyx_L37:;
      }
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      goto __pyx_L4_exception_handled;
    }

    /* "src/llfuse/handlers.pxi":698
 *     except FUSEError as e:
 *         ret = fuse_reply_err(req, e.errno)
 *     except BaseException as e:             # <<<<<<<<<<<<<<
 *         ret = handle_exc('create', e, req)
 * 
 */
    __pyx_t_22 = PyErr_ExceptionMatches(__pyx_builtin_BaseException);
    if (__pyx_t_22) {
      __Pyx_AddTraceback("llfuse.capi.fuse_create", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_15, &__pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 698; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_GOTREF(__pyx_t_15);
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_15);
      __pyx_v_e = __pyx_t_15;
      /*try:*/ {

        /* "src/llfuse/handlers.pxi":699
 *         ret = fuse_reply_err(req, e.errno)
 *     except BaseException as e:
 *         ret = handle_exc('create', e, req)             # <<<<<<<<<<<<<<
 * 
 *     if ret != 0:
 */
        __pyx_v_ret = __pyx_f_6llfuse_4capi_handle_exc(__pyx_k_create, __pyx_v_e, __pyx_v_req);
      }

      /* "src/llfuse/handlers.pxi":698
 *     except FUSEError as e:
 *         ret = fuse_reply_err(req, e.errno)
 *     except BaseException as e:             # <<<<<<<<<<<<<<
 *         ret = handle_exc('create', e, req)
 * 
 */
      /*finally:*/ {
        /*normal exit:*/{
          __Pyx_DECREF(__pyx_v_e);
          __pyx_v_e = NULL;
          goto __pyx_L48;
        }
        __pyx_L48:;
      }
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      goto __pyx_L4_exception_handled;
    }
    goto __pyx_L5_except_error;
    __pyx_L5_except_error:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    goto __pyx_L1_error;
    __pyx_L4_exception_handled:;
    __Pyx_XGIVEREF(__pyx_t_1);
    __Pyx_XGIVEREF(__pyx_t_2);
    __Pyx_XGIVEREF(__pyx_t_3);
    __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
    __pyx_L10_try_end:;
  }

  /* "src/llfuse/handlers.pxi":701
 *         ret = handle_exc('create', e, req)
 * 
 *     if ret != 0:             # <<<<<<<<<<<<<<
 *         log.error('fuse_create(): fuse_reply_* failed with %s', strerror(-ret))
 */
  __pyx_t_20 = ((__pyx_v_ret != 0) != 0);
  if (__pyx_t_20) {

    /* "src/llfuse/handlers.pxi":702
 * 
 *     if ret != 0:
 *         log.error('fuse_create(): fuse_reply_* failed with %s', strerror(-ret))             # <<<<<<<<<<<<<<
 */
    __pyx_t_15 = __Pyx_GetModuleGlobalName(__pyx_n_s_log); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 702; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_15);
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_15, __pyx_n_s_error); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 702; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
    __pyx_t_12 = __Pyx_GetModuleGlobalName(__pyx_n_s_strerror); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 702; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_12);
    __pyx_t_8 = __Pyx_PyInt_From_int((-__pyx_v_ret)); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 702; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_7 = NULL;
    if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_12))) {
      __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_12);
      if (likely(__pyx_t_7)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_12);
        __Pyx_INCREF(__pyx_t_7);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_12, function);
      }
    }
    if (!__pyx_t_7) {
      __pyx_t_15 = __Pyx_PyObject_CallOneArg(__pyx_t_12, __pyx_t_8); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 702; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_GOTREF(__pyx_t_15);
    } else {
      __pyx_t_13 = PyTuple_New(1+1); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 702; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_13);
      PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_t_7); __Pyx_GIVEREF(__pyx_t_7); __pyx_t_7 = NULL;
      PyTuple_SET_ITEM(__pyx_t_13, 0+1, __pyx_t_8);
      __Pyx_GIVEREF(__pyx_t_8);
      __pyx_t_8 = 0;
      __pyx_t_15 = __Pyx_PyObject_Call(__pyx_t_12, __pyx_t_13, NULL); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 702; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_15);
      __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    }
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __pyx_t_12 = NULL;
    __pyx_t_14 = 0;
    if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_4);
      if (likely(__pyx_t_12)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
        __Pyx_INCREF(__pyx_t_12);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_4, function);
        __pyx_t_14 = 1;
      }
    }
    __pyx_t_13 = PyTuple_New(2+__pyx_t_14); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 702; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_13);
    if (__pyx_t_12) {
      PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_t_12); __Pyx_GIVEREF(__pyx_t_12); __pyx_t_12 = NULL;
    }
    __Pyx_INCREF(__pyx_kp_u_fuse_create_fuse_reply__failed_w);
    PyTuple_SET_ITEM(__pyx_t_13, 0+__pyx_t_14, __pyx_kp_u_fuse_create_fuse_reply__failed_w);
    __Pyx_GIVEREF(__pyx_kp_u_fuse_create_fuse_reply__failed_w);
    PyTuple_SET_ITEM(__pyx_t_13, 1+__pyx_t_14, __pyx_t_15);
    __Pyx_GIVEREF(__pyx_t_15);
    __pyx_t_15 = 0;
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_13, NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 702; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    goto __pyx_L49;
  }
  __pyx_L49:;

  /* "src/llfuse/handlers.pxi":679
 * 
 * 
 * cdef void fuse_create (fuse_req_t req, fuse_ino_t parent, const_char *cname,             # <<<<<<<<<<<<<<
 *                        mode_t mode, fuse_file_info *fi) with gil:
 *     cdef int ret
 */

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_XDECREF(__pyx_t_15);
  __Pyx_WriteUnraisable("llfuse.capi.fuse_create", __pyx_clineno, __pyx_lineno, __pyx_filename, 0);
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_ctx);
  __Pyx_XDECREF(__pyx_v_name);
  __Pyx_XDECREF(__pyx_v_attr);
  __Pyx_XDECREF(__pyx_v_e);
  __Pyx_RefNannyFinishContext();
  #ifdef WITH_THREAD
  PyGILState_Release(__pyx_gilstate_save);
  #endif
}

/* "src/llfuse/misc.pxi":13
 * '''
 * 
 * cdef object fill_entry_param(object attr, fuse_entry_param* entry):             # <<<<<<<<<<<<<<
 *     entry.ino = attr.st_ino
 *     entry.generation = attr.generation
 */

static PyObject *__pyx_f_6llfuse_4capi_fill_entry_param(PyObject *__pyx_v_attr, struct fuse_entry_param *__pyx_v_entry) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  fuse_ino_t __pyx_t_2;
  unsigned long __pyx_t_3;
  double __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("fill_entry_param", 0);

  /* "src/llfuse/misc.pxi":14
 * 
 * cdef object fill_entry_param(object attr, fuse_entry_param* entry):
 *     entry.ino = attr.st_ino             # <<<<<<<<<<<<<<
 *     entry.generation = attr.generation
 *     entry.entry_timeout = attr.entry_timeout
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_attr, __pyx_n_s_st_ino); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 14; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_As_fuse_ino_t(__pyx_t_1); if (unlikely((__pyx_t_2 == (fuse_ino_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 14; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_entry->ino = __pyx_t_2;

  /* "src/llfuse/misc.pxi":15
 * cdef object fill_entry_param(object attr, fuse_entry_param* entry):
 *     entry.ino = attr.st_ino
 *     entry.generation = attr.generation             # <<<<<<<<<<<<<<
 *     entry.entry_timeout = attr.entry_timeout
 *     entry.attr_timeout = attr.attr_timeout
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_attr, __pyx_n_s_generation); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 15; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyInt_As_unsigned_long(__pyx_t_1); if (unlikely((__pyx_t_3 == (unsigned long)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 15; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_entry->generation = __pyx_t_3;

  /* "src/llfuse/misc.pxi":16
 *     entry.ino = attr.st_ino
 *     entry.generation = attr.generation
 *     entry.entry_timeout = attr.entry_timeout             # <<<<<<<<<<<<<<
 *     entry.attr_timeout = attr.attr_timeout
 * 
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_attr, __pyx_n_s_entry_timeout); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 16; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_4 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_4 == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 16; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_entry->entry_timeout = __pyx_t_4;

  /* "src/llfuse/misc.pxi":17
 *     entry.generation = attr.generation
 *     entry.entry_timeout = attr.entry_timeout
 *     entry.attr_timeout = attr.attr_timeout             # <<<<<<<<<<<<<<
 * 
 *     fill_c_stat(attr, &entry.attr)
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_attr, __pyx_n_s_attr_timeout); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 17; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_4 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_4 == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 17; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_entry->attr_timeout = __pyx_t_4;

  /* "src/llfuse/misc.pxi":19
 *     entry.attr_timeout = attr.attr_timeout
 * 
 *     fill_c_stat(attr, &entry.attr)             # <<<<<<<<<<<<<<
 * 
 * cdef object fill_c_stat(object attr, c_stat* stat):
 */
  __pyx_t_1 = __pyx_f_6llfuse_4capi_fill_c_stat(__pyx_v_attr, (&__pyx_v_entry->attr)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 19; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "src/llfuse/misc.pxi":13
 * '''
 * 
 * cdef object fill_entry_param(object attr, fuse_entry_param* entry):             # <<<<<<<<<<<<<<
 *     entry.ino = attr.st_ino
 *     entry.generation = attr.generation
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("llfuse.capi.fill_entry_param", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/llfuse/misc.pxi":21
 *     fill_c_stat(attr, &entry.attr)
 * 
 * cdef object fill_c_stat(object attr, c_stat* stat):             # <<<<<<<<<<<<<<
 * 
 *     # Under OS-X, c_stat has an additional st_flags field. The memset
 */

static PyObject *__pyx_f_6llfuse_4capi_fill_c_stat(PyObject *__pyx_v_attr, struct stat *__pyx_v_stat) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  ino_t __pyx_t_2;
  mode_t __pyx_t_3;
  nlink_t __pyx_t_4;
  uid_t __pyx_t_5;
  gid_t __pyx_t_6;
  dev_t __pyx_t_7;
  off_t __pyx_t_8;
  blksize_t __pyx_t_9;
  blkcnt_t __pyx_t_10;
  int __pyx_t_11;
  int __pyx_t_12;
  PyObject *__pyx_t_13 = NULL;
  time_t __pyx_t_14;
  long __pyx_t_15;
  PyObject *__pyx_t_16 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("fill_c_stat", 0);

  /* "src/llfuse/misc.pxi":27
 *     # platform check (although, admittedly, this explanatory comment
 *     # make take even more space than the check would have taken).
 *     string.memset(stat, 0, sizeof(c_stat))             # <<<<<<<<<<<<<<
 * 
 *     stat.st_ino = attr.st_ino
 */
  memset(__pyx_v_stat, 0, (sizeof(struct stat)));

  /* "src/llfuse/misc.pxi":29
 *     string.memset(stat, 0, sizeof(c_stat))
 * 
 *     stat.st_ino = attr.st_ino             # <<<<<<<<<<<<<<
 *     stat.st_mode = attr.st_mode
 *     stat.st_nlink = attr.st_nlink
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_attr, __pyx_n_s_st_ino); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 29; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_As_ino_t(__pyx_t_1); if (unlikely((__pyx_t_2 == (ino_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 29; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_stat->st_ino = __pyx_t_2;

  /* "src/llfuse/misc.pxi":30
 * 
 *     stat.st_ino = attr.st_ino
 *     stat.st_mode = attr.st_mode             # <<<<<<<<<<<<<<
 *     stat.st_nlink = attr.st_nlink
 *     stat.st_uid = attr.st_uid
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_attr, __pyx_n_s_st_mode); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 30; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyInt_As_mode_t(__pyx_t_1); if (unlikely((__pyx_t_3 == (mode_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 30; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_stat->st_mode = __pyx_t_3;

  /* "src/llfuse/misc.pxi":31
 *     stat.st_ino = attr.st_ino
 *     stat.st_mode = attr.st_mode
 *     stat.st_nlink = attr.st_nlink             # <<<<<<<<<<<<<<
 *     stat.st_uid = attr.st_uid
 *     stat.st_gid = attr.st_gid
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_attr, __pyx_n_s_st_nlink); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 31; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_4 = __Pyx_PyInt_As_nlink_t(__pyx_t_1); if (unlikely((__pyx_t_4 == (nlink_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 31; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_stat->st_nlink = __pyx_t_4;

  /* "src/llfuse/misc.pxi":32
 *     stat.st_mode = attr.st_mode
 *     stat.st_nlink = attr.st_nlink
 *     stat.st_uid = attr.st_uid             # <<<<<<<<<<<<<<
 *     stat.st_gid = attr.st_gid
 *     stat.st_rdev = attr.st_rdev
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_attr, __pyx_n_s_st_uid); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 32; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_5 = __Pyx_PyInt_As_uid_t(__pyx_t_1); if (unlikely((__pyx_t_5 == (uid_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 32; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_stat->st_uid = __pyx_t_5;

  /* "src/llfuse/misc.pxi":33
 *     stat.st_nlink = attr.st_nlink
 *     stat.st_uid = attr.st_uid
 *     stat.st_gid = attr.st_gid             # <<<<<<<<<<<<<<
 *     stat.st_rdev = attr.st_rdev
 *     stat.st_size = attr.st_size
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_attr, __pyx_n_s_st_gid); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 33; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_6 = __Pyx_PyInt_As_gid_t(__pyx_t_1); if (unlikely((__pyx_t_6 == (gid_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 33; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_stat->st_gid = __pyx_t_6;

  /* "src/llfuse/misc.pxi":34
 *     stat.st_uid = attr.st_uid
 *     stat.st_gid = attr.st_gid
 *     stat.st_rdev = attr.st_rdev             # <<<<<<<<<<<<<<
 *     stat.st_size = attr.st_size
 *     stat.st_blksize = attr.st_blksize
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_attr, __pyx_n_s_st_rdev); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 34; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_7 = __Pyx_PyInt_As_dev_t(__pyx_t_1); if (unlikely((__pyx_t_7 == (dev_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 34; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_stat->st_rdev = __pyx_t_7;

  /* "src/llfuse/misc.pxi":35
 *     stat.st_gid = attr.st_gid
 *     stat.st_rdev = attr.st_rdev
 *     stat.st_size = attr.st_size             # <<<<<<<<<<<<<<
 *     stat.st_blksize = attr.st_blksize
 *     stat.st_blocks = attr.st_blocks
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_attr, __pyx_n_s_st_size); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 35; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_8 = __Pyx_PyInt_As_off_t(__pyx_t_1); if (unlikely((__pyx_t_8 == (off_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 35; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_stat->st_size = __pyx_t_8;

  /* "src/llfuse/misc.pxi":36
 *     stat.st_rdev = attr.st_rdev
 *     stat.st_size = attr.st_size
 *     stat.st_blksize = attr.st_blksize             # <<<<<<<<<<<<<<
 *     stat.st_blocks = attr.st_blocks
 * 
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_attr, __pyx_n_s_st_blksize); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 36; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_9 = __Pyx_PyInt_As_blksize_t(__pyx_t_1); if (unlikely((__pyx_t_9 == (blksize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 36; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_stat->st_blksize = __pyx_t_9;

  /* "src/llfuse/misc.pxi":37
 *     stat.st_size = attr.st_size
 *     stat.st_blksize = attr.st_blksize
 *     stat.st_blocks = attr.st_blocks             # <<<<<<<<<<<<<<
 * 
 *     if attr.st_atime_ns is not None:
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_attr, __pyx_n_s_st_blocks); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 37; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_10 = __Pyx_PyInt_As_blkcnt_t(__pyx_t_1); if (unlikely((__pyx_t_10 == (blkcnt_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 37; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_stat->st_blocks = __pyx_t_10;

  /* "src/llfuse/misc.pxi":39
 *     stat.st_blocks = attr.st_blocks
 * 
 *     if attr.st_atime_ns is not None:             # <<<<<<<<<<<<<<
 *         stat.st_atime = attr.st_atime_ns / 10**9
 *         SET_ATIME_NS(stat, attr.st_atime_ns % 10**9)
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_attr, __pyx_n_s_st_atime_ns); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 39; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_11 = (__pyx_t_1 != Py_None);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_12 = (__pyx_t_11 != 0);
  if (__pyx_t_12) {

    /* "src/llfuse/misc.pxi":40
 * 
 *     if attr.st_atime_ns is not None:
 *         stat.st_atime = attr.st_atime_ns / 10**9             # <<<<<<<<<<<<<<
 *         SET_ATIME_NS(stat, attr.st_atime_ns % 10**9)
 *     else:
 */
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_attr, __pyx_n_s_st_atime_ns); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 40; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_13 = __Pyx_PyNumber_Divide(__pyx_t_1, __pyx_int_1000000000); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 40; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_13);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_14 = __Pyx_PyInt_As_time_t(__pyx_t_13); if (unlikely((__pyx_t_14 == (time_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 40; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    __pyx_v_stat->st_atime = __pyx_t_14;

    /* "src/llfuse/misc.pxi":41
 *     if attr.st_atime_ns is not None:
 *         stat.st_atime = attr.st_atime_ns / 10**9
 *         SET_ATIME_NS(stat, attr.st_atime_ns % 10**9)             # <<<<<<<<<<<<<<
 *     else:
 *         stat.st_atime = attr.st_atime
 */
    __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_v_attr, __pyx_n_s_st_atime_ns); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 41; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_13);
    __pyx_t_1 = PyNumber_Remainder(__pyx_t_13, __pyx_int_1000000000); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 41; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    __pyx_t_15 = __Pyx_PyInt_As_long(__pyx_t_1); if (unlikely((__pyx_t_15 == (long)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 41; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    SET_ATIME_NS(__pyx_v_stat, __pyx_t_15);
    goto __pyx_L3;
  }
  /*else*/ {

    /* "src/llfuse/misc.pxi":43
 *         SET_ATIME_NS(stat, attr.st_atime_ns % 10**9)
 *     else:
 *         stat.st_atime = attr.st_atime             # <<<<<<<<<<<<<<
 *         SET_ATIME_NS(stat, (attr.st_atime - stat.st_atime) * 1e9)
 * 
 */
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_attr, __pyx_n_s_st_atime); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 43; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_14 = __Pyx_PyInt_As_time_t(__pyx_t_1); if (unlikely((__pyx_t_14 == (time_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 43; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_v_stat->st_atime = __pyx_t_14;

    /* "src/llfuse/misc.pxi":44
 *     else:
 *         stat.st_atime = attr.st_atime
 *         SET_ATIME_NS(stat, (attr.st_atime - stat.st_atime) * 1e9)             # <<<<<<<<<<<<<<
 * 
 *     if attr.st_ctime_ns is not None:
 */
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_attr, __pyx_n_s_st_atime); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 44; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_13 = __Pyx_PyInt_From_time_t(__pyx_v_stat->st_atime); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 44; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_13);
    __pyx_t_16 = PyNumber_Subtract(__pyx_t_1, __pyx_t_13); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 44; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_16);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    __pyx_t_13 = PyNumber_Multiply(__pyx_t_16, __pyx_float_1e9); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 44; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_13);
    __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
    __pyx_t_15 = __Pyx_PyInt_As_long(__pyx_t_13); if (unlikely((__pyx_t_15 == (long)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 44; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    SET_ATIME_NS(__pyx_v_stat, __pyx_t_15);
  }
  __pyx_L3:;

  /* "src/llfuse/misc.pxi":46
 *         SET_ATIME_NS(stat, (attr.st_atime - stat.st_atime) * 1e9)
 * 
 *     if attr.st_ctime_ns is not None:             # <<<<<<<<<<<<<<
 *         stat.st_ctime = attr.st_ctime_ns / 10**9
 *         SET_CTIME_NS(stat, attr.st_ctime_ns % 10**9)
 */
  __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_v_attr, __pyx_n_s_st_ctime_ns); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 46; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_13);
  __pyx_t_12 = (__pyx_t_13 != Py_None);
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  __pyx_t_11 = (__pyx_t_12 != 0);
  if (__pyx_t_11) {

    /* "src/llfuse/misc.pxi":47
 * 
 *     if attr.st_ctime_ns is not None:
 *         stat.st_ctime = attr.st_ctime_ns / 10**9             # <<<<<<<<<<<<<<
 *         SET_CTIME_NS(stat, attr.st_ctime_ns % 10**9)
 *     else:
 */
    __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_v_attr, __pyx_n_s_st_ctime_ns); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 47; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_13);
    __pyx_t_16 = __Pyx_PyNumber_Divide(__pyx_t_13, __pyx_int_1000000000); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 47; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_16);
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    __pyx_t_14 = __Pyx_PyInt_As_time_t(__pyx_t_16); if (unlikely((__pyx_t_14 == (time_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 47; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
    __pyx_v_stat->st_ctime = __pyx_t_14;

    /* "src/llfuse/misc.pxi":48
 *     if attr.st_ctime_ns is not None:
 *         stat.st_ctime = attr.st_ctime_ns / 10**9
 *         SET_CTIME_NS(stat, attr.st_ctime_ns % 10**9)             # <<<<<<<<<<<<<<
 *     else:
 *         stat.st_ctime = attr.st_ctime
 */
    __pyx_t_16 = __Pyx_PyObject_GetAttrStr(__pyx_v_attr, __pyx_n_s_st_ctime_ns); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 48; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_16);
    __pyx_t_13 = PyNumber_Remainder(__pyx_t_16, __pyx_int_1000000000); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 48; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_13);
    __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
    __pyx_t_15 = __Pyx_PyInt_As_long(__pyx_t_13); if (unlikely((__pyx_t_15 == (long)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 48; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    SET_CTIME_NS(__pyx_v_stat, __pyx_t_15);
    goto __pyx_L4;
  }
  /*else*/ {

    /* "src/llfuse/misc.pxi":50
 *         SET_CTIME_NS(stat, attr.st_ctime_ns % 10**9)
 *     else:
 *         stat.st_ctime = attr.st_ctime             # <<<<<<<<<<<<<<
 *         SET_CTIME_NS(stat, (attr.st_ctime - stat.st_ctime) * 1e9)
 * 
 */
    __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_v_attr, __pyx_n_s_st_ctime); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 50; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_13);
    __pyx_t_14 = __Pyx_PyInt_As_time_t(__pyx_t_13); if (unlikely((__pyx_t_14 == (time_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 50; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    __pyx_v_stat->st_ctime = __pyx_t_14;

    /* "src/llfuse/misc.pxi":51
 *     else:
 *         stat.st_ctime = attr.st_ctime
 *         SET_CTIME_NS(stat, (attr.st_ctime - stat.st_ctime) * 1e9)             # <<<<<<<<<<<<<<
 * 
 *     if attr.st_mtime_ns is not None:
 */
    __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_v_attr, __pyx_n_s_st_ctime); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 51; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_13);
    __pyx_t_16 = __Pyx_PyInt_From_time_t(__pyx_v_stat->st_ctime); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 51; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_16);
    __pyx_t_1 = PyNumber_Subtract(__pyx_t_13, __pyx_t_16); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 51; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
    __pyx_t_16 = PyNumber_Multiply(__pyx_t_1, __pyx_float_1e9); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 51; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_16);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_15 = __Pyx_PyInt_As_long(__pyx_t_16); if (unlikely((__pyx_t_15 == (long)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 51; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
    SET_CTIME_NS(__pyx_v_stat, __pyx_t_15);
  }
  __pyx_L4:;

  /* "src/llfuse/misc.pxi":53
 *         SET_CTIME_NS(stat, (attr.st_ctime - stat.st_ctime) * 1e9)
 * 
 *     if attr.st_mtime_ns is not None:             # <<<<<<<<<<<<<<
 *         stat.st_mtime = attr.st_mtime_ns / 10**9
 *         SET_MTIME_NS(stat, attr.st_mtime_ns % 10**9)
 */
  __pyx_t_16 = __Pyx_PyObject_GetAttrStr(__pyx_v_attr, __pyx_n_s_st_mtime_ns); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 53; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_16);
  __pyx_t_11 = (__pyx_t_16 != Py_None);
  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
  __pyx_t_12 = (__pyx_t_11 != 0);
  if (__pyx_t_12) {

    /* "src/llfuse/misc.pxi":54
 * 
 *     if attr.st_mtime_ns is not None:
 *         stat.st_mtime = attr.st_mtime_ns / 10**9             # <<<<<<<<<<<<<<
 *         SET_MTIME_NS(stat, attr.st_mtime_ns % 10**9)
 *     else:
 */
    __pyx_t_16 = __Pyx_PyObject_GetAttrStr(__pyx_v_attr, __pyx_n_s_st_mtime_ns); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 54; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_16);
    __pyx_t_1 = __Pyx_PyNumber_Divide(__pyx_t_16, __pyx_int_1000000000); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 54; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
    __pyx_t_14 = __Pyx_PyInt_As_time_t(__pyx_t_1); if (unlikely((__pyx_t_14 == (time_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 54; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_v_stat->st_mtime = __pyx_t_14;

    /* "src/llfuse/misc.pxi":55
 *     if attr.st_mtime_ns is not None:
 *         stat.st_mtime = attr.st_mtime_ns / 10**9
 *         SET_MTIME_NS(stat, attr.st_mtime_ns % 10**9)             # <<<<<<<<<<<<<<
 *     else:
 *         stat.st_mtime = attr.st_mtime
 */
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_attr, __pyx_n_s_st_mtime_ns); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 55; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_16 = PyNumber_Remainder(__pyx_t_1, __pyx_int_1000000000); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 55; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_16);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_15 = __Pyx_PyInt_As_long(__pyx_t_16); if (unlikely((__pyx_t_15 == (long)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 55; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
    SET_MTIME_NS(__pyx_v_stat, __pyx_t_15);
    goto __pyx_L5;
  }
  /*else*/ {

    /* "src/llfuse/misc.pxi":57
 *         SET_MTIME_NS(stat, attr.st_mtime_ns % 10**9)
 *     else:
 *         stat.st_mtime = attr.st_mtime             # <<<<<<<<<<<<<<
 *         SET_MTIME_NS(stat, (attr.st_mtime - stat.st_mtime) * 1e9)
 * 
 */
    __pyx_t_16 = __Pyx_PyObject_GetAttrStr(__pyx_v_attr, __pyx_n_s_st_mtime); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 57; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_16);
    __pyx_t_14 = __Pyx_PyInt_As_time_t(__pyx_t_16); if (unlikely((__pyx_t_14 == (time_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 57; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
    __pyx_v_stat->st_mtime = __pyx_t_14;

    /* "src/llfuse/misc.pxi":58
 *     else:
 *         stat.st_mtime = attr.st_mtime
 *         SET_MTIME_NS(stat, (attr.st_mtime - stat.st_mtime) * 1e9)             # <<<<<<<<<<<<<<
 * 
 * 
 */
    __pyx_t_16 = __Pyx_PyObject_GetAttrStr(__pyx_v_attr, __pyx_n_s_st_mtime); if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 58; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_16);
    __pyx_t_1 = __Pyx_PyInt_From_time_t(__pyx_v_stat->st_mtime); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 58; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_13 = PyNumber_Subtract(__pyx_t_16, __pyx_t_1); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 58; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_13);
    __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = PyNumber_Multiply(__pyx_t_13, __pyx_float_1e9); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 58; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    __pyx_t_15 = __Pyx_PyInt_As_long(__pyx_t_1); if (unlikely((__pyx_t_15 == (long)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 58; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    SET_MTIME_NS(__pyx_v_stat, __pyx_t_15);
  }
  __pyx_L5:;

  /* "src/llfuse/misc.pxi":21
 *     fill_c_stat(attr, &entry.attr)
 * 
 * cdef object fill_c_stat(object attr, c_stat* stat):             # <<<<<<<<<<<<<<
 * 
 *     # Under OS-X, c_stat has an additional st_flags field. The memset
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_XDECREF(__pyx_t_16);
  __Pyx_AddTraceback("llfuse.capi.fill_c_stat", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/llfuse/misc.pxi":61
 * 
 * 
 * cdef object fill_statvfs(object attr, statvfs* stat):             # <<<<<<<<<<<<<<
 *     stat.f_bsize = attr.f_bsize
 *     stat.f_frsize = attr.f_frsize
 */

static PyObject *__pyx_f_6llfuse_4capi_fill_statvfs(PyObject *__pyx_v_attr, struct statvfs *__pyx_v_stat) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  fsblkcnt_t __pyx_t_3;
  fsfilcnt_t __pyx_t_4;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("fill_statvfs", 0);

  /* "src/llfuse/misc.pxi":62
 * 
 * cdef object fill_statvfs(object attr, statvfs* stat):
 *     stat.f_bsize = attr.f_bsize             # <<<<<<<<<<<<<<
 *     stat.f_frsize = attr.f_frsize
 *     stat.f_blocks = attr.f_blocks
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_attr, __pyx_n_s_f_bsize); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 62; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_As_int(__pyx_t_1); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 62; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_stat->f_bsize = __pyx_t_2;

  /* "src/llfuse/misc.pxi":63
 * cdef object fill_statvfs(object attr, statvfs* stat):
 *     stat.f_bsize = attr.f_bsize
 *     stat.f_frsize = attr.f_frsize             # <<<<<<<<<<<<<<
 *     stat.f_blocks = attr.f_blocks
 *     stat.f_bfree = attr.f_bfree
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_attr, __pyx_n_s_f_frsize); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 63; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyInt_As_int(__pyx_t_1); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 63; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_stat->f_frsize = __pyx_t_2;

  /* "src/llfuse/misc.pxi":64
 *     stat.f_bsize = attr.f_bsize
 *     stat.f_frsize = attr.f_frsize
 *     stat.f_blocks = attr.f_blocks             # <<<<<<<<<<<<<<
 *     stat.f_bfree = attr.f_bfree
 *     stat.f_bavail = attr.f_bavail
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_attr, __pyx_n_s_f_blocks); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 64; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyInt_As_fsblkcnt_t(__pyx_t_1); if (unlikely((__pyx_t_3 == (fsblkcnt_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 64; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_stat->f_blocks = __pyx_t_3;

  /* "src/llfuse/misc.pxi":65
 *     stat.f_frsize = attr.f_frsize
 *     stat.f_blocks = attr.f_blocks
 *     stat.f_bfree = attr.f_bfree             # <<<<<<<<<<<<<<
 *     stat.f_bavail = attr.f_bavail
 *     stat.f_files = attr.f_files
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_attr, __pyx_n_s_f_bfree); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 65; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyInt_As_fsblkcnt_t(__pyx_t_1); if (unlikely((__pyx_t_3 == (fsblkcnt_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 65; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_stat->f_bfree = __pyx_t_3;

  /* "src/llfuse/misc.pxi":66
 *     stat.f_blocks = attr.f_blocks
 *     stat.f_bfree = attr.f_bfree
 *     stat.f_bavail = attr.f_bavail             # <<<<<<<<<<<<<<
 *     stat.f_files = attr.f_files
 *     stat.f_ffree = attr.f_ffree
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_attr, __pyx_n_s_f_bavail); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 66; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyInt_As_fsblkcnt_t(__pyx_t_1); if (unlikely((__pyx_t_3 == (fsblkcnt_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 66; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_stat->f_bavail = __pyx_t_3;

  /* "src/llfuse/misc.pxi":67
 *     stat.f_bfree = attr.f_bfree
 *     stat.f_bavail = attr.f_bavail
 *     stat.f_files = attr.f_files             # <<<<<<<<<<<<<<
 *     stat.f_ffree = attr.f_ffree
 *     stat.f_favail = attr.f_favail
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_attr, __pyx_n_s_f_files); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 67; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_4 = __Pyx_PyInt_As_fsfilcnt_t(__pyx_t_1); if (unlikely((__pyx_t_4 == (fsfilcnt_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 67; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_stat->f_files = __pyx_t_4;

  /* "src/llfuse/misc.pxi":68
 *     stat.f_bavail = attr.f_bavail
 *     stat.f_files = attr.f_files
 *     stat.f_ffree = attr.f_ffree             # <<<<<<<<<<<<<<
 *     stat.f_favail = attr.f_favail
 * 
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_attr, __pyx_n_s_f_ffree); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 68; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_4 = __Pyx_PyInt_As_fsfilcnt_t(__pyx_t_1); if (unlikely((__pyx_t_4 == (fsfilcnt_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 68; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_stat->f_ffree = __pyx_t_4;

  /* "src/llfuse/misc.pxi":69
 *     stat.f_files = attr.f_files
 *     stat.f_ffree = attr.f_ffree
 *     stat.f_favail = attr.f_favail             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_attr, __pyx_n_s_f_favail); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 69; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_4 = __Pyx_PyInt_As_fsfilcnt_t(__pyx_t_1); if (unlikely((__pyx_t_4 == (fsfilcnt_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 69; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_stat->f_favail = __pyx_t_4;

  /* "src/llfuse/misc.pxi":61
 * 
 * 
 * cdef object fill_statvfs(object attr, statvfs* stat):             # <<<<<<<<<<<<<<
 *     stat.f_bsize = attr.f_bsize
 *     stat.f_frsize = attr.f_frsize
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("llfuse.capi.fill_statvfs", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/llfuse/misc.pxi":72
 * 
 * 
 * cdef int handle_exc(char* fn, object e, fuse_req_t req):             # <<<<<<<<<<<<<<
 *     '''Try to call fuse_reply_err and terminate main loop'''
 * 
 */

static int __pyx_f_6llfuse_4capi_handle_exc(CYTHON_UNUSED char *__pyx_v_fn, CYTHON_UNUSED PyObject *__pyx_v_e, fuse_req_t __pyx_v_req) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("handle_exc", 0);

  /* "src/llfuse/misc.pxi":77
 *     global exc_info
 * 
 *     if not exc_info:             # <<<<<<<<<<<<<<
 *         exc_info = sys.exc_info()
 *         log.debug('handler raised exception, sending SIGTERM to self.')
 */
  __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_6llfuse_4capi_exc_info); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 77; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_2 = ((!__pyx_t_1) != 0);
  if (__pyx_t_2) {

    /* "src/llfuse/misc.pxi":78
 * 
 *     if not exc_info:
 *         exc_info = sys.exc_info()             # <<<<<<<<<<<<<<
 *         log.debug('handler raised exception, sending SIGTERM to self.')
 *         kill(getpid(), SIGTERM)
 */
    __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_sys); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 78; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_exc_info); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 78; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = NULL;
    if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_5))) {
      __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_5);
      if (likely(__pyx_t_4)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
        __Pyx_INCREF(__pyx_t_4);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_5, function);
      }
    }
    if (__pyx_t_4) {
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_4); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 78; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    } else {
      __pyx_t_3 = __Pyx_PyObject_CallNoArg(__pyx_t_5); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 78; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    }
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_XGOTREF(__pyx_v_6llfuse_4capi_exc_info);
    __Pyx_DECREF_SET(__pyx_v_6llfuse_4capi_exc_info, __pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_3);
    __pyx_t_3 = 0;

    /* "src/llfuse/misc.pxi":79
 *     if not exc_info:
 *         exc_info = sys.exc_info()
 *         log.debug('handler raised exception, sending SIGTERM to self.')             # <<<<<<<<<<<<<<
 *         kill(getpid(), SIGTERM)
 *     else:
 */
    __pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s_log); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 79; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_debug); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 79; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_tuple__33, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 79; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "src/llfuse/misc.pxi":80
 *         exc_info = sys.exc_info()
 *         log.debug('handler raised exception, sending SIGTERM to self.')
 *         kill(getpid(), SIGTERM)             # <<<<<<<<<<<<<<
 *     else:
 *         log.exception('Exception after kill:')
 */
    kill(getpid(), SIGTERM);
    goto __pyx_L3;
  }
  /*else*/ {

    /* "src/llfuse/misc.pxi":82
 *         kill(getpid(), SIGTERM)
 *     else:
 *         log.exception('Exception after kill:')             # <<<<<<<<<<<<<<
 * 
 *     if req is NULL:
 */
    __pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s_log); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 82; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_exception); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 82; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_tuple__34, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 82; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_L3:;

  /* "src/llfuse/misc.pxi":84
 *         log.exception('Exception after kill:')
 * 
 *     if req is NULL:             # <<<<<<<<<<<<<<
 *         return 0
 *     else:
 */
  __pyx_t_2 = ((__pyx_v_req == NULL) != 0);
  if (__pyx_t_2) {

    /* "src/llfuse/misc.pxi":85
 * 
 *     if req is NULL:
 *         return 0             # <<<<<<<<<<<<<<
 *     else:
 *         return fuse_reply_err(req, errno.EIO)
 */
    __pyx_r = 0;
    goto __pyx_L0;
  }
  /*else*/ {

    /* "src/llfuse/misc.pxi":87
 *         return 0
 *     else:
 *         return fuse_reply_err(req, errno.EIO)             # <<<<<<<<<<<<<<
 * 
 * cdef object get_request_context(fuse_req_t req):
 */
    __pyx_r = fuse_reply_err(__pyx_v_req, EIO);
    goto __pyx_L0;
  }

  /* "src/llfuse/misc.pxi":72
 * 
 * 
 * cdef int handle_exc(char* fn, object e, fuse_req_t req):             # <<<<<<<<<<<<<<
 *     '''Try to call fuse_reply_err and terminate main loop'''
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_WriteUnraisable("llfuse.capi.handle_exc", __pyx_clineno, __pyx_lineno, __pyx_filename, 0);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/llfuse/misc.pxi":89
 *         return fuse_reply_err(req, errno.EIO)
 * 
 * cdef object get_request_context(fuse_req_t req):             # <<<<<<<<<<<<<<
 *     '''Get RequestContext() object'''
 * 
 */

static PyObject *__pyx_f_6llfuse_4capi_get_request_context(fuse_req_t __pyx_v_req) {
  const struct fuse_ctx *__pyx_v_context;
  PyObject *__pyx_v_ctx = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("get_request_context", 0);

  /* "src/llfuse/misc.pxi":94
 *     cdef const_fuse_ctx* context
 * 
 *     context = fuse_req_ctx(req)             # <<<<<<<<<<<<<<
 *     ctx = RequestContext()
 *     ctx.pid = context.pid
 */
  __pyx_v_context = fuse_req_ctx(__pyx_v_req);

  /* "src/llfuse/misc.pxi":95
 * 
 *     context = fuse_req_ctx(req)
 *     ctx = RequestContext()             # <<<<<<<<<<<<<<
 *     ctx.pid = context.pid
 *     ctx.uid = context.uid
 */
  __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_RequestContext); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 95; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  if (__pyx_t_3) {
    __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 95; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  } else {
    __pyx_t_1 = __Pyx_PyObject_CallNoArg(__pyx_t_2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 95; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  }
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_ctx = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "src/llfuse/misc.pxi":96
 *     context = fuse_req_ctx(req)
 *     ctx = RequestContext()
 *     ctx.pid = context.pid             # <<<<<<<<<<<<<<
 *     ctx.uid = context.uid
 *     ctx.gid = context.gid
 */
  __pyx_t_1 = __Pyx_PyInt_From_pid_t(__pyx_v_context->pid); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 96; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_ctx, __pyx_n_s_pid, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 96; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "src/llfuse/misc.pxi":97
 *     ctx = RequestContext()
 *     ctx.pid = context.pid
 *     ctx.uid = context.uid             # <<<<<<<<<<<<<<
 *     ctx.gid = context.gid
 *     ctx.umask = context.umask
 */
  __pyx_t_1 = __Pyx_PyInt_From_uid_t(__pyx_v_context->uid); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 97; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_ctx, __pyx_n_s_uid, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 97; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "src/llfuse/misc.pxi":98
 *     ctx.pid = context.pid
 *     ctx.uid = context.uid
 *     ctx.gid = context.gid             # <<<<<<<<<<<<<<
 *     ctx.umask = context.umask
 * 
 */
  __pyx_t_1 = __Pyx_PyInt_From_gid_t(__pyx_v_context->gid); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 98; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_ctx, __pyx_n_s_gid, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 98; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "src/llfuse/misc.pxi":99
 *     ctx.uid = context.uid
 *     ctx.gid = context.gid
 *     ctx.umask = context.umask             # <<<<<<<<<<<<<<
 * 
 *     return ctx
 */
  __pyx_t_1 = __Pyx_PyInt_From_mode_t(__pyx_v_context->umask); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 99; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_ctx, __pyx_n_s_umask, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 99; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "src/llfuse/misc.pxi":101
 *     ctx.umask = context.umask
 * 
 *     return ctx             # <<<<<<<<<<<<<<
 * 
 * cdef void init_fuse_ops():
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_ctx);
  __pyx_r = __pyx_v_ctx;
  goto __pyx_L0;

  /* "src/llfuse/misc.pxi":89
 *         return fuse_reply_err(req, errno.EIO)
 * 
 * cdef object get_request_context(fuse_req_t req):             # <<<<<<<<<<<<<<
 *     '''Get RequestContext() object'''
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("llfuse.capi.get_request_context", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_ctx);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/llfuse/misc.pxi":103
 *     return ctx
 * 
 * cdef void init_fuse_ops():             # <<<<<<<<<<<<<<
 *     '''Initialize fuse_lowlevel_ops structure'''
 * 
 */

static void __pyx_f_6llfuse_4capi_init_fuse_ops(void) {
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("init_fuse_ops", 0);

  /* "src/llfuse/misc.pxi":106
 *     '''Initialize fuse_lowlevel_ops structure'''
 * 
 *     string.memset(&fuse_ops, 0, sizeof(fuse_lowlevel_ops))             # <<<<<<<<<<<<<<
 * 
 *     fuse_ops.init = fuse_init
 */
  memset((&__pyx_v_6llfuse_4capi_fuse_ops), 0, (sizeof(struct fuse_lowlevel_ops)));

  /* "src/llfuse/misc.pxi":108
 *     string.memset(&fuse_ops, 0, sizeof(fuse_lowlevel_ops))
 * 
 *     fuse_ops.init = fuse_init             # <<<<<<<<<<<<<<
 *     fuse_ops.destroy = fuse_destroy
 *     fuse_ops.lookup = fuse_lookup
 */
  __pyx_v_6llfuse_4capi_fuse_ops.init = __pyx_f_6llfuse_4capi_fuse_init;

  /* "src/llfuse/misc.pxi":109
 * 
 *     fuse_ops.init = fuse_init
 *     fuse_ops.destroy = fuse_destroy             # <<<<<<<<<<<<<<
 *     fuse_ops.lookup = fuse_lookup
 *     fuse_ops.forget = fuse_forget
 */
  __pyx_v_6llfuse_4capi_fuse_ops.destroy = __pyx_f_6llfuse_4capi_fuse_destroy;

  /* "src/llfuse/misc.pxi":110
 *     fuse_ops.init = fuse_init
 *     fuse_ops.destroy = fuse_destroy
 *     fuse_ops.lookup = fuse_lookup             # <<<<<<<<<<<<<<
 *     fuse_ops.forget = fuse_forget
 *     fuse_ops.getattr = fuse_getattr
 */
  __pyx_v_6llfuse_4capi_fuse_ops.lookup = __pyx_f_6llfuse_4capi_fuse_lookup;

  /* "src/llfuse/misc.pxi":111
 *     fuse_ops.destroy = fuse_destroy
 *     fuse_ops.lookup = fuse_lookup
 *     fuse_ops.forget = fuse_forget             # <<<<<<<<<<<<<<
 *     fuse_ops.getattr = fuse_getattr
 *     fuse_ops.setattr = fuse_setattr
 */
  __pyx_v_6llfuse_4capi_fuse_ops.forget = __pyx_f_6llfuse_4capi_fuse_forget;

  /* "src/llfuse/misc.pxi":112
 *     fuse_ops.lookup = fuse_lookup
 *     fuse_ops.forget = fuse_forget
 *     fuse_ops.getattr = fuse_getattr             # <<<<<<<<<<<<<<
 *     fuse_ops.setattr = fuse_setattr
 *     fuse_ops.readlink = fuse_readlink
 */
  __pyx_v_6llfuse_4capi_fuse_ops.getattr = __pyx_f_6llfuse_4capi_fuse_getattr;

  /* "src/llfuse/misc.pxi":113
 *     fuse_ops.forget = fuse_forget
 *     fuse_ops.getattr = fuse_getattr
 *     fuse_ops.setattr = fuse_setattr             # <<<<<<<<<<<<<<
 *     fuse_ops.readlink = fuse_readlink
 *     fuse_ops.mknod = fuse_mknod
 */
  __pyx_v_6llfuse_4capi_fuse_ops.setattr = __pyx_f_6llfuse_4capi_fuse_setattr;

  /* "src/llfuse/misc.pxi":114
 *     fuse_ops.getattr = fuse_getattr
 *     fuse_ops.setattr = fuse_setattr
 *     fuse_ops.readlink = fuse_readlink             # <<<<<<<<<<<<<<
 *     fuse_ops.mknod = fuse_mknod
 *     fuse_ops.mkdir = fuse_mkdir
 */
  __pyx_v_6llfuse_4capi_fuse_ops.readlink = __pyx_f_6llfuse_4capi_fuse_readlink;

  /* "src/llfuse/misc.pxi":115
 *     fuse_ops.setattr = fuse_setattr
 *     fuse_ops.readlink = fuse_readlink
 *     fuse_ops.mknod = fuse_mknod             # <<<<<<<<<<<<<<
 *     fuse_ops.mkdir = fuse_mkdir
 *     fuse_ops.unlink = fuse_unlink
 */
  __pyx_v_6llfuse_4capi_fuse_ops.mknod = __pyx_f_6llfuse_4capi_fuse_mknod;

  /* "src/llfuse/misc.pxi":116
 *     fuse_ops.readlink = fuse_readlink
 *     fuse_ops.mknod = fuse_mknod
 *     fuse_ops.mkdir = fuse_mkdir             # <<<<<<<<<<<<<<
 *     fuse_ops.unlink = fuse_unlink
 *     fuse_ops.rmdir = fuse_rmdir
 */
  __pyx_v_6llfuse_4capi_fuse_ops.mkdir = __pyx_f_6llfuse_4capi_fuse_mkdir;

  /* "src/llfuse/misc.pxi":117
 *     fuse_ops.mknod = fuse_mknod
 *     fuse_ops.mkdir = fuse_mkdir
 *     fuse_ops.unlink = fuse_unlink             # <<<<<<<<<<<<<<
 *     fuse_ops.rmdir = fuse_rmdir
 *     fuse_ops.symlink = fuse_symlink
 */
  __pyx_v_6llfuse_4capi_fuse_ops.unlink = __pyx_f_6llfuse_4capi_fuse_unlink;

  /* "src/llfuse/misc.pxi":118
 *     fuse_ops.mkdir = fuse_mkdir
 *     fuse_ops.unlink = fuse_unlink
 *     fuse_ops.rmdir = fuse_rmdir             # <<<<<<<<<<<<<<
 *     fuse_ops.symlink = fuse_symlink
 *     fuse_ops.rename = fuse_rename
 */
  __pyx_v_6llfuse_4capi_fuse_ops.rmdir = __pyx_f_6llfuse_4capi_fuse_rmdir;

  /* "src/llfuse/misc.pxi":119
 *     fuse_ops.unlink = fuse_unlink
 *     fuse_ops.rmdir = fuse_rmdir
 *     fuse_ops.symlink = fuse_symlink             # <<<<<<<<<<<<<<
 *     fuse_ops.rename = fuse_rename
 *     fuse_ops.link = fuse_link
 */
  __pyx_v_6llfuse_4capi_fuse_ops.symlink = __pyx_f_6llfuse_4capi_fuse_symlink;

  /* "src/llfuse/misc.pxi":120
 *     fuse_ops.rmdir = fuse_rmdir
 *     fuse_ops.symlink = fuse_symlink
 *     fuse_ops.rename = fuse_rename             # <<<<<<<<<<<<<<
 *     fuse_ops.link = fuse_link
 *     fuse_ops.open = fuse_open
 */
  __pyx_v_6llfuse_4capi_fuse_ops.rename = __pyx_f_6llfuse_4capi_fuse_rename;

  /* "src/llfuse/misc.pxi":121
 *     fuse_ops.symlink = fuse_symlink
 *     fuse_ops.rename = fuse_rename
 *     fuse_ops.link = fuse_link             # <<<<<<<<<<<<<<
 *     fuse_ops.open = fuse_open
 *     fuse_ops.read = fuse_read
 */
  __pyx_v_6llfuse_4capi_fuse_ops.link = __pyx_f_6llfuse_4capi_fuse_link;

  /* "src/llfuse/misc.pxi":122
 *     fuse_ops.rename = fuse_rename
 *     fuse_ops.link = fuse_link
 *     fuse_ops.open = fuse_open             # <<<<<<<<<<<<<<
 *     fuse_ops.read = fuse_read
 *     fuse_ops.write = fuse_write
 */
  __pyx_v_6llfuse_4capi_fuse_ops.open = __pyx_f_6llfuse_4capi_fuse_open;

  /* "src/llfuse/misc.pxi":123
 *     fuse_ops.link = fuse_link
 *     fuse_ops.open = fuse_open
 *     fuse_ops.read = fuse_read             # <<<<<<<<<<<<<<
 *     fuse_ops.write = fuse_write
 *     fuse_ops.flush = fuse_flush
 */
  __pyx_v_6llfuse_4capi_fuse_ops.read = __pyx_f_6llfuse_4capi_fuse_read;

  /* "src/llfuse/misc.pxi":124
 *     fuse_ops.open = fuse_open
 *     fuse_ops.read = fuse_read
 *     fuse_ops.write = fuse_write             # <<<<<<<<<<<<<<
 *     fuse_ops.flush = fuse_flush
 *     fuse_ops.release = fuse_release
 */
  __pyx_v_6llfuse_4capi_fuse_ops.write = __pyx_f_6llfuse_4capi_fuse_write;

  /* "src/llfuse/misc.pxi":125
 *     fuse_ops.read = fuse_read
 *     fuse_ops.write = fuse_write
 *     fuse_ops.flush = fuse_flush             # <<<<<<<<<<<<<<
 *     fuse_ops.release = fuse_release
 *     fuse_ops.fsync = fuse_fsync
 */
  __pyx_v_6llfuse_4capi_fuse_ops.flush = __pyx_f_6llfuse_4capi_fuse_flush;

  /* "src/llfuse/misc.pxi":126
 *     fuse_ops.write = fuse_write
 *     fuse_ops.flush = fuse_flush
 *     fuse_ops.release = fuse_release             # <<<<<<<<<<<<<<
 *     fuse_ops.fsync = fuse_fsync
 *     fuse_ops.opendir = fuse_opendir
 */
  __pyx_v_6llfuse_4capi_fuse_ops.release = __pyx_f_6llfuse_4capi_fuse_release;

  /* "src/llfuse/misc.pxi":127
 *     fuse_ops.flush = fuse_flush
 *     fuse_ops.release = fuse_release
 *     fuse_ops.fsync = fuse_fsync             # <<<<<<<<<<<<<<
 *     fuse_ops.opendir = fuse_opendir
 *     fuse_ops.readdir = fuse_readdir
 */
  __pyx_v_6llfuse_4capi_fuse_ops.fsync = __pyx_f_6llfuse_4capi_fuse_fsync;

  /* "src/llfuse/misc.pxi":128
 *     fuse_ops.release = fuse_release
 *     fuse_ops.fsync = fuse_fsync
 *     fuse_ops.opendir = fuse_opendir             # <<<<<<<<<<<<<<
 *     fuse_ops.readdir = fuse_readdir
 *     fuse_ops.releasedir = fuse_releasedir
 */
  __pyx_v_6llfuse_4capi_fuse_ops.opendir = __pyx_f_6llfuse_4capi_fuse_opendir;

  /* "src/llfuse/misc.pxi":129
 *     fuse_ops.fsync = fuse_fsync
 *     fuse_ops.opendir = fuse_opendir
 *     fuse_ops.readdir = fuse_readdir             # <<<<<<<<<<<<<<
 *     fuse_ops.releasedir = fuse_releasedir
 *     fuse_ops.fsyncdir = fuse_fsyncdir
 */
  __pyx_v_6llfuse_4capi_fuse_ops.readdir = __pyx_f_6llfuse_4capi_fuse_readdir;

  /* "src/llfuse/misc.pxi":130
 *     fuse_ops.opendir = fuse_opendir
 *     fuse_ops.readdir = fuse_readdir
 *     fuse_ops.releasedir = fuse_releasedir             # <<<<<<<<<<<<<<
 *     fuse_ops.fsyncdir = fuse_fsyncdir
 *     fuse_ops.statfs = fuse_statfs
 */
  __pyx_v_6llfuse_4capi_fuse_ops.releasedir = __pyx_f_6llfuse_4capi_fuse_releasedir;

  /* "src/llfuse/misc.pxi":131
 *     fuse_ops.readdir = fuse_readdir
 *     fuse_ops.releasedir = fuse_releasedir
 *     fuse_ops.fsyncdir = fuse_fsyncdir             # <<<<<<<<<<<<<<
 *     fuse_ops.statfs = fuse_statfs
 *     IF TARGET_PLATFORM == 'darwin':
 */
  __pyx_v_6llfuse_4capi_fuse_ops.fsyncdir = __pyx_f_6llfuse_4capi_fuse_fsyncdir;

  /* "src/llfuse/misc.pxi":132
 *     fuse_ops.releasedir = fuse_releasedir
 *     fuse_ops.fsyncdir = fuse_fsyncdir
 *     fuse_ops.statfs = fuse_statfs             # <<<<<<<<<<<<<<
 *     IF TARGET_PLATFORM == 'darwin':
 *         fuse_ops.setxattr = fuse_setxattr_darwin
 */
  __pyx_v_6llfuse_4capi_fuse_ops.statfs = __pyx_f_6llfuse_4capi_fuse_statfs;

  /* "src/llfuse/misc.pxi":137
 *         fuse_ops.getxattr = fuse_getxattr_darwin
 *     ELSE:
 *         fuse_ops.setxattr = fuse_setxattr             # <<<<<<<<<<<<<<
 *         fuse_ops.getxattr = fuse_getxattr
 *     fuse_ops.listxattr = fuse_listxattr
 */
  __pyx_v_6llfuse_4capi_fuse_ops.setxattr = __pyx_f_6llfuse_4capi_fuse_setxattr;

  /* "src/llfuse/misc.pxi":138
 *     ELSE:
 *         fuse_ops.setxattr = fuse_setxattr
 *         fuse_ops.getxattr = fuse_getxattr             # <<<<<<<<<<<<<<
 *     fuse_ops.listxattr = fuse_listxattr
 *     fuse_ops.removexattr = fuse_removexattr
 */
  __pyx_v_6llfuse_4capi_fuse_ops.getxattr = __pyx_f_6llfuse_4capi_fuse_getxattr;

  /* "src/llfuse/misc.pxi":139
 *         fuse_ops.setxattr = fuse_setxattr
 *         fuse_ops.getxattr = fuse_getxattr
 *     fuse_ops.listxattr = fuse_listxattr             # <<<<<<<<<<<<<<
 *     fuse_ops.removexattr = fuse_removexattr
 *     fuse_ops.access = fuse_access
 */
  __pyx_v_6llfuse_4capi_fuse_ops.listxattr = __pyx_f_6llfuse_4capi_fuse_listxattr;

  /* "src/llfuse/misc.pxi":140
 *         fuse_ops.getxattr = fuse_getxattr
 *     fuse_ops.listxattr = fuse_listxattr
 *     fuse_ops.removexattr = fuse_removexattr             # <<<<<<<<<<<<<<
 *     fuse_ops.access = fuse_access
 *     fuse_ops.create = fuse_create
 */
  __pyx_v_6llfuse_4capi_fuse_ops.removexattr = __pyx_f_6llfuse_4capi_fuse_removexattr;

  /* "src/llfuse/misc.pxi":141
 *     fuse_ops.listxattr = fuse_listxattr
 *     fuse_ops.removexattr = fuse_removexattr
 *     fuse_ops.access = fuse_access             # <<<<<<<<<<<<<<
 *     fuse_ops.create = fuse_create
 * 
 */
  __pyx_v_6llfuse_4capi_fuse_ops.access = __pyx_f_6llfuse_4capi_fuse_access;

  /* "src/llfuse/misc.pxi":142
 *     fuse_ops.removexattr = fuse_removexattr
 *     fuse_ops.access = fuse_access
 *     fuse_ops.create = fuse_create             # <<<<<<<<<<<<<<
 * 
 * cdef make_fuse_args(list args, fuse_args* f_args):
 */
  __pyx_v_6llfuse_4capi_fuse_ops.create = __pyx_f_6llfuse_4capi_fuse_create;

  /* "src/llfuse/misc.pxi":103
 *     return ctx
 * 
 * cdef void init_fuse_ops():             # <<<<<<<<<<<<<<
 *     '''Initialize fuse_lowlevel_ops structure'''
 * 
 */

  /* function exit code */
  __Pyx_RefNannyFinishContext();
}

/* "src/llfuse/misc.pxi":144
 *     fuse_ops.create = fuse_create
 * 
 * cdef make_fuse_args(list args, fuse_args* f_args):             # <<<<<<<<<<<<<<
 *     cdef char* arg
 *     cdef int i
 */

static PyObject *__pyx_f_6llfuse_4capi_make_fuse_args(PyObject *__pyx_v_args, struct fuse_args *__pyx_v_f_args) {
  char *__pyx_v_arg;
  int __pyx_v_i;
  Py_ssize_t __pyx_v_size;
  PyObject *__pyx_v_args_new = NULL;
  PyObject *__pyx_v_el = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  Py_ssize_t __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  int __pyx_t_5;
  int __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  PyObject *__pyx_t_11 = NULL;
  int __pyx_t_12;
  int __pyx_t_13;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("make_fuse_args", 0);
  __Pyx_INCREF(__pyx_v_args);

  /* "src/llfuse/misc.pxi":149
 *     cdef ssize_t size
 * 
 *     args_new = [ b'Python-LLFUSE' ]             # <<<<<<<<<<<<<<
 *     for el in args:
 *         if not isinstance(el, str_t):
 */
  __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 149; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_kp_b_Python_LLFUSE);
  PyList_SET_ITEM(__pyx_t_1, 0, __pyx_kp_b_Python_LLFUSE);
  __Pyx_GIVEREF(__pyx_kp_b_Python_LLFUSE);
  __pyx_v_args_new = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;

  /* "src/llfuse/misc.pxi":150
 * 
 *     args_new = [ b'Python-LLFUSE' ]
 *     for el in args:             # <<<<<<<<<<<<<<
 *         if not isinstance(el, str_t):
 *             raise TypeError('fuse options must be of type str')
 */
  if (unlikely(__pyx_v_args == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    {__pyx_filename = __pyx_f[1]; __pyx_lineno = 150; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  }
  __pyx_t_1 = __pyx_v_args; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0;
  for (;;) {
    if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break;
    #if CYTHON_COMPILING_IN_CPYTHON
    __pyx_t_3 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_3); __pyx_t_2++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 150; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    #else
    __pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 150; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    #endif
    __Pyx_XDECREF_SET(__pyx_v_el, __pyx_t_3);
    __pyx_t_3 = 0;

    /* "src/llfuse/misc.pxi":151
 *     args_new = [ b'Python-LLFUSE' ]
 *     for el in args:
 *         if not isinstance(el, str_t):             # <<<<<<<<<<<<<<
 *             raise TypeError('fuse options must be of type str')
 *         args_new.append(b'-o')
 */
    __pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s_str_t); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 151; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = PyObject_IsInstance(__pyx_v_el, __pyx_t_3); if (unlikely(__pyx_t_4 == -1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 151; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_5 = ((!(__pyx_t_4 != 0)) != 0);
    if (__pyx_t_5) {

      /* "src/llfuse/misc.pxi":152
 *     for el in args:
 *         if not isinstance(el, str_t):
 *             raise TypeError('fuse options must be of type str')             # <<<<<<<<<<<<<<
 *         args_new.append(b'-o')
 *         args_new.append(el.encode('us-ascii'))
 */
      __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__35, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 152; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_Raise(__pyx_t_3, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      {__pyx_filename = __pyx_f[1]; __pyx_lineno = 152; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    }

    /* "src/llfuse/misc.pxi":153
 *         if not isinstance(el, str_t):
 *             raise TypeError('fuse options must be of type str')
 *         args_new.append(b'-o')             # <<<<<<<<<<<<<<
 *         args_new.append(el.encode('us-ascii'))
 *     args = args_new
 */
    __pyx_t_6 = __Pyx_PyList_Append(__pyx_v_args_new, __pyx_kp_b_o); if (unlikely(__pyx_t_6 == -1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 153; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

    /* "src/llfuse/misc.pxi":154
 *             raise TypeError('fuse options must be of type str')
 *         args_new.append(b'-o')
 *         args_new.append(el.encode('us-ascii'))             # <<<<<<<<<<<<<<
 *     args = args_new
 * 
 */
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_el, __pyx_n_s_encode); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 154; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_tuple__36, NULL); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 154; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_6 = __Pyx_PyList_Append(__pyx_v_args_new, __pyx_t_7); if (unlikely(__pyx_t_6 == -1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 154; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;

    /* "src/llfuse/misc.pxi":150
 * 
 *     args_new = [ b'Python-LLFUSE' ]
 *     for el in args:             # <<<<<<<<<<<<<<
 *         if not isinstance(el, str_t):
 *             raise TypeError('fuse options must be of type str')
 */
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "src/llfuse/misc.pxi":155
 *         args_new.append(b'-o')
 *         args_new.append(el.encode('us-ascii'))
 *     args = args_new             # <<<<<<<<<<<<<<
 * 
 *     f_args.argc = <int> len(args)
 */
  __Pyx_INCREF(__pyx_v_args_new);
  __Pyx_DECREF_SET(__pyx_v_args, __pyx_v_args_new);

  /* "src/llfuse/misc.pxi":157
 *     args = args_new
 * 
 *     f_args.argc = <int> len(args)             # <<<<<<<<<<<<<<
 *     if f_args.argc == 0:
 *         f_args.argv = NULL
 */
  __pyx_t_2 = PyList_GET_SIZE(__pyx_v_args); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 157; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_v_f_args->argc = ((int)__pyx_t_2);

  /* "src/llfuse/misc.pxi":158
 * 
 *     f_args.argc = <int> len(args)
 *     if f_args.argc == 0:             # <<<<<<<<<<<<<<
 *         f_args.argv = NULL
 *         return
 */
  __pyx_t_5 = ((__pyx_v_f_args->argc == 0) != 0);
  if (__pyx_t_5) {

    /* "src/llfuse/misc.pxi":159
 *     f_args.argc = <int> len(args)
 *     if f_args.argc == 0:
 *         f_args.argv = NULL             # <<<<<<<<<<<<<<
 *         return
 * 
 */
    __pyx_v_f_args->argv = NULL;

    /* "src/llfuse/misc.pxi":160
 *     if f_args.argc == 0:
 *         f_args.argv = NULL
 *         return             # <<<<<<<<<<<<<<
 * 
 *     f_args.allocated = 1
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_r = Py_None; __Pyx_INCREF(Py_None);
    goto __pyx_L0;
  }

  /* "src/llfuse/misc.pxi":162
 *         return
 * 
 *     f_args.allocated = 1             # <<<<<<<<<<<<<<
 *     f_args.argv = <char**> stdlib.calloc(f_args.argc, sizeof(char*))
 * 
 */
  __pyx_v_f_args->allocated = 1;

  /* "src/llfuse/misc.pxi":163
 * 
 *     f_args.allocated = 1
 *     f_args.argv = <char**> stdlib.calloc(f_args.argc, sizeof(char*))             # <<<<<<<<<<<<<<
 * 
 *     if f_args.argv is NULL:
 */
  __pyx_v_f_args->argv = ((char **)calloc(__pyx_v_f_args->argc, (sizeof(char *))));

  /* "src/llfuse/misc.pxi":165
 *     f_args.argv = <char**> stdlib.calloc(f_args.argc, sizeof(char*))
 * 
 *     if f_args.argv is NULL:             # <<<<<<<<<<<<<<
 *         cpython.exc.PyErr_NoMemory()
 * 
 */
  __pyx_t_5 = ((__pyx_v_f_args->argv == NULL) != 0);
  if (__pyx_t_5) {

    /* "src/llfuse/misc.pxi":166
 * 
 *     if f_args.argv is NULL:
 *         cpython.exc.PyErr_NoMemory()             # <<<<<<<<<<<<<<
 * 
 *     try:
 */
    __pyx_t_8 = PyErr_NoMemory(); if (unlikely(__pyx_t_8 == NULL)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 166; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    goto __pyx_L7;
  }
  __pyx_L7:;

  /* "src/llfuse/misc.pxi":168
 *         cpython.exc.PyErr_NoMemory()
 * 
 *     try:             # <<<<<<<<<<<<<<
 *         for (i, el) in enumerate(args):
 *             PyBytes_AsStringAndSize(el, &arg, &size)
 */
  {
    __Pyx_ExceptionSave(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
    __Pyx_XGOTREF(__pyx_t_9);
    __Pyx_XGOTREF(__pyx_t_10);
    __Pyx_XGOTREF(__pyx_t_11);
    /*try:*/ {

      /* "src/llfuse/misc.pxi":169
 * 
 *     try:
 *         for (i, el) in enumerate(args):             # <<<<<<<<<<<<<<
 *             PyBytes_AsStringAndSize(el, &arg, &size)
 *             f_args.argv[i] = <char*> stdlib.malloc((size+1)*sizeof(char))
 */
      __pyx_t_12 = 0;
      __pyx_t_1 = __pyx_v_args; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0;
      for (;;) {
        if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_COMPILING_IN_CPYTHON
        __pyx_t_7 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_7); __pyx_t_2++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 169; __pyx_clineno = __LINE__; goto __pyx_L8_error;}
        #else
        __pyx_t_7 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 169; __pyx_clineno = __LINE__; goto __pyx_L8_error;}
        #endif
        __Pyx_XDECREF_SET(__pyx_v_el, __pyx_t_7);
        __pyx_t_7 = 0;
        __pyx_v_i = __pyx_t_12;
        __pyx_t_12 = (__pyx_t_12 + 1);

        /* "src/llfuse/misc.pxi":170
 *     try:
 *         for (i, el) in enumerate(args):
 *             PyBytes_AsStringAndSize(el, &arg, &size)             # <<<<<<<<<<<<<<
 *             f_args.argv[i] = <char*> stdlib.malloc((size+1)*sizeof(char))
 * 
 */
        __pyx_t_13 = PyBytes_AsStringAndSize(__pyx_v_el, (&__pyx_v_arg), ((Py_ssize_t *)(&__pyx_v_size))); if (unlikely(__pyx_t_13 == -1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 170; __pyx_clineno = __LINE__; goto __pyx_L8_error;}

        /* "src/llfuse/misc.pxi":171
 *         for (i, el) in enumerate(args):
 *             PyBytes_AsStringAndSize(el, &arg, &size)
 *             f_args.argv[i] = <char*> stdlib.malloc((size+1)*sizeof(char))             # <<<<<<<<<<<<<<
 * 
 *             if f_args.argv[i] is NULL:
 */
        (__pyx_v_f_args->argv[__pyx_v_i]) = ((char *)malloc(((__pyx_v_size + 1) * (sizeof(char)))));

        /* "src/llfuse/misc.pxi":173
 *             f_args.argv[i] = <char*> stdlib.malloc((size+1)*sizeof(char))
 * 
 *             if f_args.argv[i] is NULL:             # <<<<<<<<<<<<<<
 *                 cpython.exc.PyErr_NoMemory()
 * 
 */
        __pyx_t_5 = (((__pyx_v_f_args->argv[__pyx_v_i]) == NULL) != 0);
        if (__pyx_t_5) {

          /* "src/llfuse/misc.pxi":174
 * 
 *             if f_args.argv[i] is NULL:
 *                 cpython.exc.PyErr_NoMemory()             # <<<<<<<<<<<<<<
 * 
 *             string.strncpy(f_args.argv[i], arg, size+1)
 */
          __pyx_t_8 = PyErr_NoMemory(); if (unlikely(__pyx_t_8 == NULL)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 174; __pyx_clineno = __LINE__; goto __pyx_L8_error;}
          goto __pyx_L18;
        }
        __pyx_L18:;

        /* "src/llfuse/misc.pxi":176
 *                 cpython.exc.PyErr_NoMemory()
 * 
 *             string.strncpy(f_args.argv[i], arg, size+1)             # <<<<<<<<<<<<<<
 *     except:
 *         for i in range(f_args.argc):
 */
        strncpy((__pyx_v_f_args->argv[__pyx_v_i]), __pyx_v_arg, (__pyx_v_size + 1));

        /* "src/llfuse/misc.pxi":169
 * 
 *     try:
 *         for (i, el) in enumerate(args):             # <<<<<<<<<<<<<<
 *             PyBytes_AsStringAndSize(el, &arg, &size)
 *             f_args.argv[i] = <char*> stdlib.malloc((size+1)*sizeof(char))
 */
      }
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    }
    __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
    __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
    goto __pyx_L15_try_end;
    __pyx_L8_error:;
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "src/llfuse/misc.pxi":177
 * 
 *             string.strncpy(f_args.argv[i], arg, size+1)
 *     except:             # <<<<<<<<<<<<<<
 *         for i in range(f_args.argc):
 *             # Freeing a NULL pointer (if this element has not been allocated
 */
    /*except:*/ {
      __Pyx_AddTraceback("llfuse.capi.make_fuse_args", __pyx_clineno, __pyx_lineno, __pyx_filename);
      if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_7, &__pyx_t_3) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 177; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_GOTREF(__pyx_t_3);

      /* "src/llfuse/misc.pxi":178
 *             string.strncpy(f_args.argv[i], arg, size+1)
 *     except:
 *         for i in range(f_args.argc):             # <<<<<<<<<<<<<<
 *             # Freeing a NULL pointer (if this element has not been allocated
 *             # yet) is fine.
 */
      __pyx_t_12 = __pyx_v_f_args->argc;
      for (__pyx_t_13 = 0; __pyx_t_13 < __pyx_t_12; __pyx_t_13+=1) {
        __pyx_v_i = __pyx_t_13;

        /* "src/llfuse/misc.pxi":181
 *             # Freeing a NULL pointer (if this element has not been allocated
 *             # yet) is fine.
 *             stdlib.free(f_args.argv[i])             # <<<<<<<<<<<<<<
 *         stdlib.free(f_args.argv)
 *         raise
 */
        free((__pyx_v_f_args->argv[__pyx_v_i]));
      }

      /* "src/llfuse/misc.pxi":182
 *             # yet) is fine.
 *             stdlib.free(f_args.argv[i])
 *         stdlib.free(f_args.argv)             # <<<<<<<<<<<<<<
 *         raise
 * 
 */
      free(__pyx_v_f_args->argv);

      /* "src/llfuse/misc.pxi":183
 *             stdlib.free(f_args.argv[i])
 *         stdlib.free(f_args.argv)
 *         raise             # <<<<<<<<<<<<<<
 * 
 * cdef class Lock:
 */
      __Pyx_GIVEREF(__pyx_t_1);
      __Pyx_GIVEREF(__pyx_t_7);
      __Pyx_XGIVEREF(__pyx_t_3);
      __Pyx_ErrRestore(__pyx_t_1, __pyx_t_7, __pyx_t_3);
      __pyx_t_1 = 0; __pyx_t_7 = 0; __pyx_t_3 = 0; 
      {__pyx_filename = __pyx_f[1]; __pyx_lineno = 183; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
    }
    __pyx_L10_except_error:;
    __Pyx_XGIVEREF(__pyx_t_9);
    __Pyx_XGIVEREF(__pyx_t_10);
    __Pyx_XGIVEREF(__pyx_t_11);
    __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11);
    goto __pyx_L1_error;
    __pyx_L15_try_end:;
  }

  /* "src/llfuse/misc.pxi":144
 *     fuse_ops.create = fuse_create
 * 
 * cdef make_fuse_args(list args, fuse_args* f_args):             # <<<<<<<<<<<<<<
 *     cdef char* arg
 *     cdef int i
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("llfuse.capi.make_fuse_args", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_args_new);
  __Pyx_XDECREF(__pyx_v_el);
  __Pyx_XDECREF(__pyx_v_args);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/llfuse/misc.pxi":191
 *     '''
 * 
 *     def __init__(self):             # <<<<<<<<<<<<<<
 *         raise TypeError('You should not instantiate this class, use the '
 *                         'provided instance instead.')
 */

/* Python wrapper */
static int __pyx_pw_6llfuse_4capi_4Lock_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_6llfuse_4capi_4Lock_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) {
    __Pyx_RaiseArgtupleInvalid("__init__", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return -1;}
  if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__init__", 0))) return -1;
  __pyx_r = __pyx_pf_6llfuse_4capi_4Lock___init__(((struct __pyx_obj_6llfuse_4capi_Lock *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_6llfuse_4capi_4Lock___init__(CYTHON_UNUSED struct __pyx_obj_6llfuse_4capi_Lock *__pyx_v_self) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);

  /* "src/llfuse/misc.pxi":192
 * 
 *     def __init__(self):
 *         raise TypeError('You should not instantiate this class, use the '             # <<<<<<<<<<<<<<
 *                         'provided instance instead.')
 * 
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__37, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 192; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  {__pyx_filename = __pyx_f[1]; __pyx_lineno = 192; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "src/llfuse/misc.pxi":191
 *     '''
 * 
 *     def __init__(self):             # <<<<<<<<<<<<<<
 *         raise TypeError('You should not instantiate this class, use the '
 *                         'provided instance instead.')
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("llfuse.capi.Lock.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/llfuse/misc.pxi":195
 *                         'provided instance instead.')
 * 
 *     def acquire(self, timeout=None):             # <<<<<<<<<<<<<<
 *         '''Acquire global lock
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_6llfuse_4capi_4Lock_3acquire(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_6llfuse_4capi_4Lock_2acquire[] = "Lock.acquire(self, timeout=None)\nAcquire global lock\n\n        If *timeout* is not None, and the lock could not be acquired\n        after waiting for *timeout* seconds, return False. Otherwise\n        return True.\n        ";
static PyObject *__pyx_pw_6llfuse_4capi_4Lock_3acquire(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_timeout = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("acquire (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_timeout,0};
    PyObject* values[1] = {0};
    values[0] = ((PyObject *)Py_None);
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_timeout);
          if (value) { values[0] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "acquire") < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 195; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_timeout = values[0];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("acquire", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 195; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("llfuse.capi.Lock.acquire", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6llfuse_4capi_4Lock_2acquire(((struct __pyx_obj_6llfuse_4capi_Lock *)__pyx_v_self), __pyx_v_timeout);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6llfuse_4capi_4Lock_2acquire(CYTHON_UNUSED struct __pyx_obj_6llfuse_4capi_Lock *__pyx_v_self, PyObject *__pyx_v_timeout) {
  int __pyx_v_ret;
  int __pyx_v_timeout_c;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  int __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("acquire", 0);

  /* "src/llfuse/misc.pxi":206
 *         cdef int timeout_c
 * 
 *         if timeout is None:             # <<<<<<<<<<<<<<
 *             timeout_c = 0
 *         else:
 */
  __pyx_t_1 = (__pyx_v_timeout == Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {

    /* "src/llfuse/misc.pxi":207
 * 
 *         if timeout is None:
 *             timeout_c = 0             # <<<<<<<<<<<<<<
 *         else:
 *             timeout_c = timeout
 */
    __pyx_v_timeout_c = 0;
    goto __pyx_L3;
  }
  /*else*/ {

    /* "src/llfuse/misc.pxi":209
 *             timeout_c = 0
 *         else:
 *             timeout_c = timeout             # <<<<<<<<<<<<<<
 * 
 *         with nogil:
 */
    __pyx_t_3 = __Pyx_PyInt_As_int(__pyx_v_timeout); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 209; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_v_timeout_c = __pyx_t_3;
  }
  __pyx_L3:;

  /* "src/llfuse/misc.pxi":211
 *             timeout_c = timeout
 * 
 *         with nogil:             # <<<<<<<<<<<<<<
 *             ret = acquire(timeout_c)
 * 
 */
  {
      #ifdef WITH_THREAD
      PyThreadState *_save;
      Py_UNBLOCK_THREADS
      #endif
      /*try:*/ {

        /* "src/llfuse/misc.pxi":212
 * 
 *         with nogil:
 *             ret = acquire(timeout_c)             # <<<<<<<<<<<<<<
 * 
 *         if ret == 0:
 */
        __pyx_v_ret = acquire(__pyx_v_timeout_c);
      }

      /* "src/llfuse/misc.pxi":211
 *             timeout_c = timeout
 * 
 *         with nogil:             # <<<<<<<<<<<<<<
 *             ret = acquire(timeout_c)
 * 
 */
      /*finally:*/ {
        /*normal exit:*/{
          #ifdef WITH_THREAD
          Py_BLOCK_THREADS
          #endif
          goto __pyx_L6;
        }
        __pyx_L6:;
      }
  }

  /* "src/llfuse/misc.pxi":214
 *             ret = acquire(timeout_c)
 * 
 *         if ret == 0:             # <<<<<<<<<<<<<<
 *             return True
 *         elif ret == ETIMEDOUT and timeout != 0:
 */
  __pyx_t_2 = ((__pyx_v_ret == 0) != 0);
  if (__pyx_t_2) {

    /* "src/llfuse/misc.pxi":215
 * 
 *         if ret == 0:
 *             return True             # <<<<<<<<<<<<<<
 *         elif ret == ETIMEDOUT and timeout != 0:
 *             return False
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(Py_True);
    __pyx_r = Py_True;
    goto __pyx_L0;
  }

  /* "src/llfuse/misc.pxi":216
 *         if ret == 0:
 *             return True
 *         elif ret == ETIMEDOUT and timeout != 0:             # <<<<<<<<<<<<<<
 *             return False
 *         elif ret == EDEADLK:
 */
  __pyx_t_1 = ((__pyx_v_ret == ETIMEDOUT) != 0);
  if (__pyx_t_1) {
  } else {
    __pyx_t_2 = __pyx_t_1;
    goto __pyx_L8_bool_binop_done;
  }
  __pyx_t_4 = PyObject_RichCompare(__pyx_v_timeout, __pyx_int_0, Py_NE); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 216; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 216; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_2 = __pyx_t_1;
  __pyx_L8_bool_binop_done:;
  if (__pyx_t_2) {

    /* "src/llfuse/misc.pxi":217
 *             return True
 *         elif ret == ETIMEDOUT and timeout != 0:
 *             return False             # <<<<<<<<<<<<<<
 *         elif ret == EDEADLK:
 *             raise RuntimeError("Global lock cannot be acquired more than once")
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(Py_False);
    __pyx_r = Py_False;
    goto __pyx_L0;
  }

  /* "src/llfuse/misc.pxi":218
 *         elif ret == ETIMEDOUT and timeout != 0:
 *             return False
 *         elif ret == EDEADLK:             # <<<<<<<<<<<<<<
 *             raise RuntimeError("Global lock cannot be acquired more than once")
 *         elif ret == EPROTO:
 */
  __pyx_t_2 = ((__pyx_v_ret == EDEADLK) != 0);
  if (__pyx_t_2) {

    /* "src/llfuse/misc.pxi":219
 *             return False
 *         elif ret == EDEADLK:
 *             raise RuntimeError("Global lock cannot be acquired more than once")             # <<<<<<<<<<<<<<
 *         elif ret == EPROTO:
 *             raise RuntimeError("Lock still taken after receiving unlock notification")
 */
    __pyx_t_4 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__38, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 219; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_Raise(__pyx_t_4, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    {__pyx_filename = __pyx_f[1]; __pyx_lineno = 219; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  }

  /* "src/llfuse/misc.pxi":220
 *         elif ret == EDEADLK:
 *             raise RuntimeError("Global lock cannot be acquired more than once")
 *         elif ret == EPROTO:             # <<<<<<<<<<<<<<
 *             raise RuntimeError("Lock still taken after receiving unlock notification")
 *         elif ret == EINVAL:
 */
  __pyx_t_2 = ((__pyx_v_ret == EPROTO) != 0);
  if (__pyx_t_2) {

    /* "src/llfuse/misc.pxi":221
 *             raise RuntimeError("Global lock cannot be acquired more than once")
 *         elif ret == EPROTO:
 *             raise RuntimeError("Lock still taken after receiving unlock notification")             # <<<<<<<<<<<<<<
 *         elif ret == EINVAL:
 *             raise RuntimeError("Lock not initialized")
 */
    __pyx_t_4 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__39, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 221; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_Raise(__pyx_t_4, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    {__pyx_filename = __pyx_f[1]; __pyx_lineno = 221; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  }

  /* "src/llfuse/misc.pxi":222
 *         elif ret == EPROTO:
 *             raise RuntimeError("Lock still taken after receiving unlock notification")
 *         elif ret == EINVAL:             # <<<<<<<<<<<<<<
 *             raise RuntimeError("Lock not initialized")
 *         else:
 */
  __pyx_t_2 = ((__pyx_v_ret == EINVAL) != 0);
  if (__pyx_t_2) {

    /* "src/llfuse/misc.pxi":223
 *             raise RuntimeError("Lock still taken after receiving unlock notification")
 *         elif ret == EINVAL:
 *             raise RuntimeError("Lock not initialized")             # <<<<<<<<<<<<<<
 *         else:
 *             raise RuntimeError(strerror(ret))
 */
    __pyx_t_4 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__40, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 223; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_Raise(__pyx_t_4, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    {__pyx_filename = __pyx_f[1]; __pyx_lineno = 223; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  }
  /*else*/ {

    /* "src/llfuse/misc.pxi":225
 *             raise RuntimeError("Lock not initialized")
 *         else:
 *             raise RuntimeError(strerror(ret))             # <<<<<<<<<<<<<<
 * 
 *     def release(self):
 */
    __pyx_t_5 = __Pyx_GetModuleGlobalName(__pyx_n_s_strerror); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 225; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_6 = __Pyx_PyInt_From_int(__pyx_v_ret); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 225; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = NULL;
    if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_5))) {
      __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_5);
      if (likely(__pyx_t_7)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
        __Pyx_INCREF(__pyx_t_7);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_5, function);
      }
    }
    if (!__pyx_t_7) {
      __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_6); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 225; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_GOTREF(__pyx_t_4);
    } else {
      __pyx_t_8 = PyTuple_New(1+1); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 225; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_8);
      PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_7); __Pyx_GIVEREF(__pyx_t_7); __pyx_t_7 = NULL;
      PyTuple_SET_ITEM(__pyx_t_8, 0+1, __pyx_t_6);
      __Pyx_GIVEREF(__pyx_t_6);
      __pyx_t_6 = 0;
      __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_8, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 225; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    }
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 225; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_4);
    __pyx_t_4 = 0;
    __pyx_t_4 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_t_5, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 225; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_Raise(__pyx_t_4, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    {__pyx_filename = __pyx_f[1]; __pyx_lineno = 225; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  }

  /* "src/llfuse/misc.pxi":195
 *                         'provided instance instead.')
 * 
 *     def acquire(self, timeout=None):             # <<<<<<<<<<<<<<
 *         '''Acquire global lock
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("llfuse.capi.Lock.acquire", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/llfuse/misc.pxi":227
 *             raise RuntimeError(strerror(ret))
 * 
 *     def release(self):             # <<<<<<<<<<<<<<
 *         '''Release global lock'''
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_6llfuse_4capi_4Lock_5release(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_6llfuse_4capi_4Lock_4release[] = "Lock.release(self)\nRelease global lock";
static PyObject *__pyx_pw_6llfuse_4capi_4Lock_5release(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("release (wrapper)", 0);
  __pyx_r = __pyx_pf_6llfuse_4capi_4Lock_4release(((struct __pyx_obj_6llfuse_4capi_Lock *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6llfuse_4capi_4Lock_4release(CYTHON_UNUSED struct __pyx_obj_6llfuse_4capi_Lock *__pyx_v_self) {
  int __pyx_v_ret;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("release", 0);

  /* "src/llfuse/misc.pxi":231
 * 
 *         cdef int ret
 *         with nogil:             # <<<<<<<<<<<<<<
 *             ret = release()
 * 
 */
  {
      #ifdef WITH_THREAD
      PyThreadState *_save;
      Py_UNBLOCK_THREADS
      #endif
      /*try:*/ {

        /* "src/llfuse/misc.pxi":232
 *         cdef int ret
 *         with nogil:
 *             ret = release()             # <<<<<<<<<<<<<<
 * 
 *         if ret == 0:
 */
        __pyx_v_ret = release();
      }

      /* "src/llfuse/misc.pxi":231
 * 
 *         cdef int ret
 *         with nogil:             # <<<<<<<<<<<<<<
 *             ret = release()
 * 
 */
      /*finally:*/ {
        /*normal exit:*/{
          #ifdef WITH_THREAD
          Py_BLOCK_THREADS
          #endif
          goto __pyx_L5;
        }
        __pyx_L5:;
      }
  }

  /* "src/llfuse/misc.pxi":234
 *             ret = release()
 * 
 *         if ret == 0:             # <<<<<<<<<<<<<<
 *              return
 *         elif ret == EPERM:
 */
  __pyx_t_1 = ((__pyx_v_ret == 0) != 0);
  if (__pyx_t_1) {

    /* "src/llfuse/misc.pxi":235
 * 
 *         if ret == 0:
 *              return             # <<<<<<<<<<<<<<
 *         elif ret == EPERM:
 *             raise RuntimeError("Lock can only be released by the holding thread")
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_r = Py_None; __Pyx_INCREF(Py_None);
    goto __pyx_L0;
  }

  /* "src/llfuse/misc.pxi":236
 *         if ret == 0:
 *              return
 *         elif ret == EPERM:             # <<<<<<<<<<<<<<
 *             raise RuntimeError("Lock can only be released by the holding thread")
 *         elif ret == EINVAL:
 */
  __pyx_t_1 = ((__pyx_v_ret == EPERM) != 0);
  if (__pyx_t_1) {

    /* "src/llfuse/misc.pxi":237
 *              return
 *         elif ret == EPERM:
 *             raise RuntimeError("Lock can only be released by the holding thread")             # <<<<<<<<<<<<<<
 *         elif ret == EINVAL:
 *             raise RuntimeError("Lock not initialized")
 */
    __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__41, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 237; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_Raise(__pyx_t_2, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    {__pyx_filename = __pyx_f[1]; __pyx_lineno = 237; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  }

  /* "src/llfuse/misc.pxi":238
 *         elif ret == EPERM:
 *             raise RuntimeError("Lock can only be released by the holding thread")
 *         elif ret == EINVAL:             # <<<<<<<<<<<<<<
 *             raise RuntimeError("Lock not initialized")
 *         else:
 */
  __pyx_t_1 = ((__pyx_v_ret == EINVAL) != 0);
  if (__pyx_t_1) {

    /* "src/llfuse/misc.pxi":239
 *             raise RuntimeError("Lock can only be released by the holding thread")
 *         elif ret == EINVAL:
 *             raise RuntimeError("Lock not initialized")             # <<<<<<<<<<<<<<
 *         else:
 *             raise RuntimeError(strerror(ret))
 */
    __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__42, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 239; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_Raise(__pyx_t_2, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    {__pyx_filename = __pyx_f[1]; __pyx_lineno = 239; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  }
  /*else*/ {

    /* "src/llfuse/misc.pxi":241
 *             raise RuntimeError("Lock not initialized")
 *         else:
 *             raise RuntimeError(strerror(ret))             # <<<<<<<<<<<<<<
 * 
 *     def yield_(self, count=1):
 */
    __pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s_strerror); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 241; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_ret); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 241; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = NULL;
    if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_3))) {
      __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
      if (likely(__pyx_t_5)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_5);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_3, function);
      }
    }
    if (!__pyx_t_5) {
      __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 241; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_GOTREF(__pyx_t_2);
    } else {
      __pyx_t_6 = PyTuple_New(1+1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 241; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_5); __Pyx_GIVEREF(__pyx_t_5); __pyx_t_5 = NULL;
      PyTuple_SET_ITEM(__pyx_t_6, 0+1, __pyx_t_4);
      __Pyx_GIVEREF(__pyx_t_4);
      __pyx_t_4 = 0;
      __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_6, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 241; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    }
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 241; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_t_3, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 241; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_Raise(__pyx_t_2, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    {__pyx_filename = __pyx_f[1]; __pyx_lineno = 241; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  }

  /* "src/llfuse/misc.pxi":227
 *             raise RuntimeError(strerror(ret))
 * 
 *     def release(self):             # <<<<<<<<<<<<<<
 *         '''Release global lock'''
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("llfuse.capi.Lock.release", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/llfuse/misc.pxi":243
 *             raise RuntimeError(strerror(ret))
 * 
 *     def yield_(self, count=1):             # <<<<<<<<<<<<<<
 *         '''Yield global lock to a different thread
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_6llfuse_4capi_4Lock_7yield_(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_6llfuse_4capi_4Lock_6yield_[] = "Lock.yield_(self, count=1)\nYield global lock to a different thread\n\n        The *count* argument may be used to yield the lock up to\n        *count* times if there are still other threads waiting for the\n        lock.\n        ";
static PyObject *__pyx_pw_6llfuse_4capi_4Lock_7yield_(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_count = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("yield_ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_count,0};
    PyObject* values[1] = {0};
    values[0] = ((PyObject *)__pyx_int_1);
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_count);
          if (value) { values[0] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "yield_") < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 243; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_count = values[0];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("yield_", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 243; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("llfuse.capi.Lock.yield_", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6llfuse_4capi_4Lock_6yield_(((struct __pyx_obj_6llfuse_4capi_Lock *)__pyx_v_self), __pyx_v_count);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6llfuse_4capi_4Lock_6yield_(CYTHON_UNUSED struct __pyx_obj_6llfuse_4capi_Lock *__pyx_v_self, PyObject *__pyx_v_count) {
  int __pyx_v_ret;
  int __pyx_v_count_c;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  int __pyx_t_2;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("yield_", 0);

  /* "src/llfuse/misc.pxi":254
 *         cdef int count_c
 * 
 *         count_c = count             # <<<<<<<<<<<<<<
 *         with nogil:
 *             ret = c_yield(count_c)
 */
  __pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_count); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 254; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_v_count_c = __pyx_t_1;

  /* "src/llfuse/misc.pxi":255
 * 
 *         count_c = count
 *         with nogil:             # <<<<<<<<<<<<<<
 *             ret = c_yield(count_c)
 * 
 */
  {
      #ifdef WITH_THREAD
      PyThreadState *_save;
      Py_UNBLOCK_THREADS
      #endif
      /*try:*/ {

        /* "src/llfuse/misc.pxi":256
 *         count_c = count
 *         with nogil:
 *             ret = c_yield(count_c)             # <<<<<<<<<<<<<<
 * 
 *         if ret == 0:
 */
        __pyx_v_ret = c_yield(__pyx_v_count_c);
      }

      /* "src/llfuse/misc.pxi":255
 * 
 *         count_c = count
 *         with nogil:             # <<<<<<<<<<<<<<
 *             ret = c_yield(count_c)
 * 
 */
      /*finally:*/ {
        /*normal exit:*/{
          #ifdef WITH_THREAD
          Py_BLOCK_THREADS
          #endif
          goto __pyx_L5;
        }
        __pyx_L5:;
      }
  }

  /* "src/llfuse/misc.pxi":258
 *             ret = c_yield(count_c)
 * 
 *         if ret == 0:             # <<<<<<<<<<<<<<
 *             return
 *         elif ret == EPERM:
 */
  __pyx_t_2 = ((__pyx_v_ret == 0) != 0);
  if (__pyx_t_2) {

    /* "src/llfuse/misc.pxi":259
 * 
 *         if ret == 0:
 *             return             # <<<<<<<<<<<<<<
 *         elif ret == EPERM:
 *             raise RuntimeError("Lock can only be released by the holding thread")
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_r = Py_None; __Pyx_INCREF(Py_None);
    goto __pyx_L0;
  }

  /* "src/llfuse/misc.pxi":260
 *         if ret == 0:
 *             return
 *         elif ret == EPERM:             # <<<<<<<<<<<<<<
 *             raise RuntimeError("Lock can only be released by the holding thread")
 *         elif ret == EPROTO:
 */
  __pyx_t_2 = ((__pyx_v_ret == EPERM) != 0);
  if (__pyx_t_2) {

    /* "src/llfuse/misc.pxi":261
 *             return
 *         elif ret == EPERM:
 *             raise RuntimeError("Lock can only be released by the holding thread")             # <<<<<<<<<<<<<<
 *         elif ret == EPROTO:
 *             raise RuntimeError("Lock still taken after receiving unlock notification")
 */
    __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__43, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 261; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_Raise(__pyx_t_3, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    {__pyx_filename = __pyx_f[1]; __pyx_lineno = 261; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  }

  /* "src/llfuse/misc.pxi":262
 *         elif ret == EPERM:
 *             raise RuntimeError("Lock can only be released by the holding thread")
 *         elif ret == EPROTO:             # <<<<<<<<<<<<<<
 *             raise RuntimeError("Lock still taken after receiving unlock notification")
 *         elif ret == ENOMSG:
 */
  __pyx_t_2 = ((__pyx_v_ret == EPROTO) != 0);
  if (__pyx_t_2) {

    /* "src/llfuse/misc.pxi":263
 *             raise RuntimeError("Lock can only be released by the holding thread")
 *         elif ret == EPROTO:
 *             raise RuntimeError("Lock still taken after receiving unlock notification")             # <<<<<<<<<<<<<<
 *         elif ret == ENOMSG:
 *             raise RuntimeError("Other thread didn't take lock")
 */
    __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__44, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 263; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_Raise(__pyx_t_3, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    {__pyx_filename = __pyx_f[1]; __pyx_lineno = 263; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  }

  /* "src/llfuse/misc.pxi":264
 *         elif ret == EPROTO:
 *             raise RuntimeError("Lock still taken after receiving unlock notification")
 *         elif ret == ENOMSG:             # <<<<<<<<<<<<<<
 *             raise RuntimeError("Other thread didn't take lock")
 *         elif ret == EINVAL:
 */
  __pyx_t_2 = ((__pyx_v_ret == ENOMSG) != 0);
  if (__pyx_t_2) {

    /* "src/llfuse/misc.pxi":265
 *             raise RuntimeError("Lock still taken after receiving unlock notification")
 *         elif ret == ENOMSG:
 *             raise RuntimeError("Other thread didn't take lock")             # <<<<<<<<<<<<<<
 *         elif ret == EINVAL:
 *             raise RuntimeError("Lock not initialized")
 */
    __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__45, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 265; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_Raise(__pyx_t_3, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    {__pyx_filename = __pyx_f[1]; __pyx_lineno = 265; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  }

  /* "src/llfuse/misc.pxi":266
 *         elif ret == ENOMSG:
 *             raise RuntimeError("Other thread didn't take lock")
 *         elif ret == EINVAL:             # <<<<<<<<<<<<<<
 *             raise RuntimeError("Lock not initialized")
 *         else:
 */
  __pyx_t_2 = ((__pyx_v_ret == EINVAL) != 0);
  if (__pyx_t_2) {

    /* "src/llfuse/misc.pxi":267
 *             raise RuntimeError("Other thread didn't take lock")
 *         elif ret == EINVAL:
 *             raise RuntimeError("Lock not initialized")             # <<<<<<<<<<<<<<
 *         else:
 *             raise RuntimeError(strerror(ret))
 */
    __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__46, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 267; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_Raise(__pyx_t_3, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    {__pyx_filename = __pyx_f[1]; __pyx_lineno = 267; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  }
  /*else*/ {

    /* "src/llfuse/misc.pxi":269
 *             raise RuntimeError("Lock not initialized")
 *         else:
 *             raise RuntimeError(strerror(ret))             # <<<<<<<<<<<<<<
 * 
 *     def __enter__(self):
 */
    __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_strerror); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 269; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = __Pyx_PyInt_From_int(__pyx_v_ret); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 269; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_6 = NULL;
    if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4);
      if (likely(__pyx_t_6)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
        __Pyx_INCREF(__pyx_t_6);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_4, function);
      }
    }
    if (!__pyx_t_6) {
      __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 269; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_GOTREF(__pyx_t_3);
    } else {
      __pyx_t_7 = PyTuple_New(1+1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 269; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_7);
      PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_6); __Pyx_GIVEREF(__pyx_t_6); __pyx_t_6 = NULL;
      PyTuple_SET_ITEM(__pyx_t_7, 0+1, __pyx_t_5);
      __Pyx_GIVEREF(__pyx_t_5);
      __pyx_t_5 = 0;
      __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_7, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 269; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    }
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 269; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_3);
    __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_t_4, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 269; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_Raise(__pyx_t_3, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    {__pyx_filename = __pyx_f[1]; __pyx_lineno = 269; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  }

  /* "src/llfuse/misc.pxi":243
 *             raise RuntimeError(strerror(ret))
 * 
 *     def yield_(self, count=1):             # <<<<<<<<<<<<<<
 *         '''Yield global lock to a different thread
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("llfuse.capi.Lock.yield_", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/llfuse/misc.pxi":271
 *             raise RuntimeError(strerror(ret))
 * 
 *     def __enter__(self):             # <<<<<<<<<<<<<<
 *         self.acquire()
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_6llfuse_4capi_4Lock_9__enter__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_6llfuse_4capi_4Lock_8__enter__[] = "Lock.__enter__(self)";
static PyObject *__pyx_pw_6llfuse_4capi_4Lock_9__enter__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__enter__ (wrapper)", 0);
  __pyx_r = __pyx_pf_6llfuse_4capi_4Lock_8__enter__(((struct __pyx_obj_6llfuse_4capi_Lock *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6llfuse_4capi_4Lock_8__enter__(struct __pyx_obj_6llfuse_4capi_Lock *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__enter__", 0);

  /* "src/llfuse/misc.pxi":272
 * 
 *     def __enter__(self):
 *         self.acquire()             # <<<<<<<<<<<<<<
 * 
 *     def __exit__(self, exc_type, exc_val, exc_tb):
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_acquire); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 272; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  if (__pyx_t_3) {
    __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 272; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  } else {
    __pyx_t_1 = __Pyx_PyObject_CallNoArg(__pyx_t_2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 272; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  }
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "src/llfuse/misc.pxi":271
 *             raise RuntimeError(strerror(ret))
 * 
 *     def __enter__(self):             # <<<<<<<<<<<<<<
 *         self.acquire()
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("llfuse.capi.Lock.__enter__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/llfuse/misc.pxi":274
 *         self.acquire()
 * 
 *     def __exit__(self, exc_type, exc_val, exc_tb):             # <<<<<<<<<<<<<<
 *         self.release()
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_6llfuse_4capi_4Lock_11__exit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_6llfuse_4capi_4Lock_10__exit__[] = "Lock.__exit__(self, exc_type, exc_val, exc_tb)";
static PyObject *__pyx_pw_6llfuse_4capi_4Lock_11__exit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  CYTHON_UNUSED PyObject *__pyx_v_exc_type = 0;
  CYTHON_UNUSED PyObject *__pyx_v_exc_val = 0;
  CYTHON_UNUSED PyObject *__pyx_v_exc_tb = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__exit__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_exc_type,&__pyx_n_s_exc_val,&__pyx_n_s_exc_tb,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_exc_type)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_exc_val)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__exit__", 1, 3, 3, 1); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 274; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  2:
        if (likely((values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_exc_tb)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__exit__", 1, 3, 3, 2); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 274; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__exit__") < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 274; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_exc_type = values[0];
    __pyx_v_exc_val = values[1];
    __pyx_v_exc_tb = values[2];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__exit__", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[1]; __pyx_lineno = 274; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("llfuse.capi.Lock.__exit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6llfuse_4capi_4Lock_10__exit__(((struct __pyx_obj_6llfuse_4capi_Lock *)__pyx_v_self), __pyx_v_exc_type, __pyx_v_exc_val, __pyx_v_exc_tb);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6llfuse_4capi_4Lock_10__exit__(struct __pyx_obj_6llfuse_4capi_Lock *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_exc_type, CYTHON_UNUSED PyObject *__pyx_v_exc_val, CYTHON_UNUSED PyObject *__pyx_v_exc_tb) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__exit__", 0);

  /* "src/llfuse/misc.pxi":275
 * 
 *     def __exit__(self, exc_type, exc_val, exc_tb):
 *         self.release()             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_release); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 275; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  if (__pyx_t_3) {
    __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 275; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  } else {
    __pyx_t_1 = __Pyx_PyObject_CallNoArg(__pyx_t_2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 275; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  }
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "src/llfuse/misc.pxi":274
 *         self.acquire()
 * 
 *     def __exit__(self, exc_type, exc_val, exc_tb):             # <<<<<<<<<<<<<<
 *         self.release()
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("llfuse.capi.Lock.__exit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/llfuse/misc.pxi":281
 *     '''Context manager to execute code while the global lock is released'''
 * 
 *     def __init__(self):             # <<<<<<<<<<<<<<
 *         raise TypeError('You should not instantiate this class, use the '
 *                         'provided instance instead.')
 */

/* Python wrapper */
static int __pyx_pw_6llfuse_4capi_13NoLockManager_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static int __pyx_pw_6llfuse_4capi_13NoLockManager_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) {
    __Pyx_RaiseArgtupleInvalid("__init__", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return -1;}
  if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__init__", 0))) return -1;
  __pyx_r = __pyx_pf_6llfuse_4capi_13NoLockManager___init__(((struct __pyx_obj_6llfuse_4capi_NoLockManager *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static int __pyx_pf_6llfuse_4capi_13NoLockManager___init__(CYTHON_UNUSED struct __pyx_obj_6llfuse_4capi_NoLockManager *__pyx_v_self) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__init__", 0);

  /* "src/llfuse/misc.pxi":282
 * 
 *     def __init__(self):
 *         raise TypeError('You should not instantiate this class, use the '             # <<<<<<<<<<<<<<
 *                         'provided instance instead.')
 * 
 */
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__47, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 282; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_Raise(__pyx_t_1, 0, 0, 0);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  {__pyx_filename = __pyx_f[1]; __pyx_lineno = 282; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "src/llfuse/misc.pxi":281
 *     '''Context manager to execute code while the global lock is released'''
 * 
 *     def __init__(self):             # <<<<<<<<<<<<<<
 *         raise TypeError('You should not instantiate this class, use the '
 *                         'provided instance instead.')
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("llfuse.capi.NoLockManager.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = -1;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/llfuse/misc.pxi":285
 *                         'provided instance instead.')
 * 
 *     def __enter__ (self):             # <<<<<<<<<<<<<<
 *         lock.release()
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_6llfuse_4capi_13NoLockManager_3__enter__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_6llfuse_4capi_13NoLockManager_2__enter__[] = "NoLockManager.__enter__(self)";
static PyObject *__pyx_pw_6llfuse_4capi_13NoLockManager_3__enter__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__enter__ (wrapper)", 0);
  __pyx_r = __pyx_pf_6llfuse_4capi_13NoLockManager_2__enter__(((struct __pyx_obj_6llfuse_4capi_NoLockManager *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6llfuse_4capi_13NoLockManager_2__enter__(CYTHON_UNUSED struct __pyx_obj_6llfuse_4capi_NoLockManager *__pyx_v_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__enter__", 0);

  /* "src/llfuse/misc.pxi":286
 * 
 *     def __enter__ (self):
 *         lock.release()             # <<<<<<<<<<<<<<
 * 
 *     def __exit__(self, *a):
 */
  __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_lock); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 286; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_release); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 286; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = NULL;
  if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_2)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  if (__pyx_t_2) {
    __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 286; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  } else {
    __pyx_t_1 = __Pyx_PyObject_CallNoArg(__pyx_t_3); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 286; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  }
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "src/llfuse/misc.pxi":285
 *                         'provided instance instead.')
 * 
 *     def __enter__ (self):             # <<<<<<<<<<<<<<
 *         lock.release()
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("llfuse.capi.NoLockManager.__enter__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/llfuse/misc.pxi":288
 *         lock.release()
 * 
 *     def __exit__(self, *a):             # <<<<<<<<<<<<<<
 *         lock.acquire()
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_6llfuse_4capi_13NoLockManager_5__exit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_6llfuse_4capi_13NoLockManager_4__exit__[] = "NoLockManager.__exit__(self, *a)";
static PyObject *__pyx_pw_6llfuse_4capi_13NoLockManager_5__exit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  CYTHON_UNUSED PyObject *__pyx_v_a = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__exit__ (wrapper)", 0);
  if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__exit__", 0))) return NULL;
  __Pyx_INCREF(__pyx_args);
  __pyx_v_a = __pyx_args;
  __pyx_r = __pyx_pf_6llfuse_4capi_13NoLockManager_4__exit__(((struct __pyx_obj_6llfuse_4capi_NoLockManager *)__pyx_v_self), __pyx_v_a);

  /* function exit code */
  __Pyx_XDECREF(__pyx_v_a);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6llfuse_4capi_13NoLockManager_4__exit__(CYTHON_UNUSED struct __pyx_obj_6llfuse_4capi_NoLockManager *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_a) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("__exit__", 0);

  /* "src/llfuse/misc.pxi":289
 * 
 *     def __exit__(self, *a):
 *         lock.acquire()             # <<<<<<<<<<<<<<
 * 
 * def _notify_loop():
 */
  __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_lock); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 289; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_acquire); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 289; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = NULL;
  if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_2)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  if (__pyx_t_2) {
    __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 289; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  } else {
    __pyx_t_1 = __Pyx_PyObject_CallNoArg(__pyx_t_3); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 289; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  }
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "src/llfuse/misc.pxi":288
 *         lock.release()
 * 
 *     def __exit__(self, *a):             # <<<<<<<<<<<<<<
 *         lock.acquire()
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("llfuse.capi.NoLockManager.__exit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/llfuse/misc.pxi":291
 *         lock.acquire()
 * 
 * def _notify_loop():             # <<<<<<<<<<<<<<
 *     '''Read notifications from queue and send to FUSE kernel module'''
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_6llfuse_4capi_1_notify_loop(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_6llfuse_4capi__notify_loop[] = "_notify_loop()\nRead notifications from queue and send to FUSE kernel module";
static PyMethodDef __pyx_mdef_6llfuse_4capi_1_notify_loop = {"_notify_loop", (PyCFunction)__pyx_pw_6llfuse_4capi_1_notify_loop, METH_NOARGS, __pyx_doc_6llfuse_4capi__notify_loop};
static PyObject *__pyx_pw_6llfuse_4capi_1_notify_loop(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("_notify_loop (wrapper)", 0);
  __pyx_r = __pyx_pf_6llfuse_4capi__notify_loop(__pyx_self);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6llfuse_4capi__notify_loop(CYTHON_UNUSED PyObject *__pyx_self) {
  Py_ssize_t __pyx_v_len_;
  fuse_ino_t __pyx_v_ino;
  char *__pyx_v_cname;
  PyObject *__pyx_v_req = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  int __pyx_t_4;
  int __pyx_t_5;
  fuse_ino_t __pyx_t_6;
  int __pyx_t_7;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("_notify_loop", 0);

  /* "src/llfuse/misc.pxi":298
 *     cdef char *cname
 * 
 *     while True:             # <<<<<<<<<<<<<<
 *         req = _notify_queue.get()
 *         if req is None:
 */
  while (1) {

    /* "src/llfuse/misc.pxi":299
 * 
 *     while True:
 *         req = _notify_queue.get()             # <<<<<<<<<<<<<<
 *         if req is None:
 *             return
 */
    __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_notify_queue); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 299; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_get); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 299; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = NULL;
    if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_3))) {
      __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
      if (likely(__pyx_t_2)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_2);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_3, function);
      }
    }
    if (__pyx_t_2) {
      __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 299; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    } else {
      __pyx_t_1 = __Pyx_PyObject_CallNoArg(__pyx_t_3); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 299; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    }
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_XDECREF_SET(__pyx_v_req, __pyx_t_1);
    __pyx_t_1 = 0;

    /* "src/llfuse/misc.pxi":300
 *     while True:
 *         req = _notify_queue.get()
 *         if req is None:             # <<<<<<<<<<<<<<
 *             return
 * 
 */
    __pyx_t_4 = (__pyx_v_req == Py_None);
    __pyx_t_5 = (__pyx_t_4 != 0);
    if (__pyx_t_5) {

      /* "src/llfuse/misc.pxi":301
 *         req = _notify_queue.get()
 *         if req is None:
 *             return             # <<<<<<<<<<<<<<
 * 
 *         if isinstance(req, inval_inode_req):
 */
      __Pyx_XDECREF(__pyx_r);
      __pyx_r = Py_None; __Pyx_INCREF(Py_None);
      goto __pyx_L0;
    }

    /* "src/llfuse/misc.pxi":303
 *             return
 * 
 *         if isinstance(req, inval_inode_req):             # <<<<<<<<<<<<<<
 *             ino = req.inode
 *             if req.attr_only:
 */
    __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_inval_inode_req); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 303; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_5 = PyObject_IsInstance(__pyx_v_req, __pyx_t_1); if (unlikely(__pyx_t_5 == -1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 303; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_4 = (__pyx_t_5 != 0);
    if (__pyx_t_4) {

      /* "src/llfuse/misc.pxi":304
 * 
 *         if isinstance(req, inval_inode_req):
 *             ino = req.inode             # <<<<<<<<<<<<<<
 *             if req.attr_only:
 *                 with nogil:
 */
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_req, __pyx_n_s_inode); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 304; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_6 = __Pyx_PyInt_As_fuse_ino_t(__pyx_t_1); if (unlikely((__pyx_t_6 == (fuse_ino_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 304; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_v_ino = __pyx_t_6;

      /* "src/llfuse/misc.pxi":305
 *         if isinstance(req, inval_inode_req):
 *             ino = req.inode
 *             if req.attr_only:             # <<<<<<<<<<<<<<
 *                 with nogil:
 *                     fuse_lowlevel_notify_inval_inode(channel, ino, -1, 0)
 */
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_req, __pyx_n_s_attr_only); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 305; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 305; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      if (__pyx_t_4) {

        /* "src/llfuse/misc.pxi":306
 *             ino = req.inode
 *             if req.attr_only:
 *                 with nogil:             # <<<<<<<<<<<<<<
 *                     fuse_lowlevel_notify_inval_inode(channel, ino, -1, 0)
 *             else:
 */
        {
            #ifdef WITH_THREAD
            PyThreadState *_save;
            Py_UNBLOCK_THREADS
            #endif
            /*try:*/ {

              /* "src/llfuse/misc.pxi":307
 *             if req.attr_only:
 *                 with nogil:
 *                     fuse_lowlevel_notify_inval_inode(channel, ino, -1, 0)             # <<<<<<<<<<<<<<
 *             else:
 *                 with nogil:
 */
              fuse_lowlevel_notify_inval_inode(__pyx_v_6llfuse_4capi_channel, __pyx_v_ino, -1, 0);
            }

            /* "src/llfuse/misc.pxi":306
 *             ino = req.inode
 *             if req.attr_only:
 *                 with nogil:             # <<<<<<<<<<<<<<
 *                     fuse_lowlevel_notify_inval_inode(channel, ino, -1, 0)
 *             else:
 */
            /*finally:*/ {
              /*normal exit:*/{
                #ifdef WITH_THREAD
                Py_BLOCK_THREADS
                #endif
                goto __pyx_L12;
              }
              __pyx_L12:;
            }
        }
        goto __pyx_L7;
      }
      /*else*/ {

        /* "src/llfuse/misc.pxi":309
 *                     fuse_lowlevel_notify_inval_inode(channel, ino, -1, 0)
 *             else:
 *                 with nogil:             # <<<<<<<<<<<<<<
 *                     fuse_lowlevel_notify_inval_inode(channel, ino, 0, 0)
 *         elif isinstance(req, inval_entry_req):
 */
        {
            #ifdef WITH_THREAD
            PyThreadState *_save;
            Py_UNBLOCK_THREADS
            #endif
            /*try:*/ {

              /* "src/llfuse/misc.pxi":310
 *             else:
 *                 with nogil:
 *                     fuse_lowlevel_notify_inval_inode(channel, ino, 0, 0)             # <<<<<<<<<<<<<<
 *         elif isinstance(req, inval_entry_req):
 *             PyBytes_AsStringAndSize(req.name, &cname, &len_)
 */
              fuse_lowlevel_notify_inval_inode(__pyx_v_6llfuse_4capi_channel, __pyx_v_ino, 0, 0);
            }

            /* "src/llfuse/misc.pxi":309
 *                     fuse_lowlevel_notify_inval_inode(channel, ino, -1, 0)
 *             else:
 *                 with nogil:             # <<<<<<<<<<<<<<
 *                     fuse_lowlevel_notify_inval_inode(channel, ino, 0, 0)
 *         elif isinstance(req, inval_entry_req):
 */
            /*finally:*/ {
              /*normal exit:*/{
                #ifdef WITH_THREAD
                Py_BLOCK_THREADS
                #endif
                goto __pyx_L17;
              }
              __pyx_L17:;
            }
        }
      }
      __pyx_L7:;
      goto __pyx_L6;
    }

    /* "src/llfuse/misc.pxi":311
 *                 with nogil:
 *                     fuse_lowlevel_notify_inval_inode(channel, ino, 0, 0)
 *         elif isinstance(req, inval_entry_req):             # <<<<<<<<<<<<<<
 *             PyBytes_AsStringAndSize(req.name, &cname, &len_)
 *             ino = req.inode_p
 */
    __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_inval_entry_req); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 311; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_4 = PyObject_IsInstance(__pyx_v_req, __pyx_t_1); if (unlikely(__pyx_t_4 == -1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 311; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_5 = (__pyx_t_4 != 0);
    if (__pyx_t_5) {

      /* "src/llfuse/misc.pxi":312
 *                     fuse_lowlevel_notify_inval_inode(channel, ino, 0, 0)
 *         elif isinstance(req, inval_entry_req):
 *             PyBytes_AsStringAndSize(req.name, &cname, &len_)             # <<<<<<<<<<<<<<
 *             ino = req.inode_p
 *             with nogil:
 */
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_req, __pyx_n_s_name); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 312; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_7 = PyBytes_AsStringAndSize(__pyx_t_1, (&__pyx_v_cname), ((Py_ssize_t *)(&__pyx_v_len_))); if (unlikely(__pyx_t_7 == -1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 312; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

      /* "src/llfuse/misc.pxi":313
 *         elif isinstance(req, inval_entry_req):
 *             PyBytes_AsStringAndSize(req.name, &cname, &len_)
 *             ino = req.inode_p             # <<<<<<<<<<<<<<
 *             with nogil:
 *                 fuse_lowlevel_notify_inval_entry(channel, ino, cname, len_)
 */
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_req, __pyx_n_s_inode_p); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 313; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_6 = __Pyx_PyInt_As_fuse_ino_t(__pyx_t_1); if (unlikely((__pyx_t_6 == (fuse_ino_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 313; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_v_ino = __pyx_t_6;

      /* "src/llfuse/misc.pxi":314
 *             PyBytes_AsStringAndSize(req.name, &cname, &len_)
 *             ino = req.inode_p
 *             with nogil:             # <<<<<<<<<<<<<<
 *                 fuse_lowlevel_notify_inval_entry(channel, ino, cname, len_)
 *         else:
 */
      {
          #ifdef WITH_THREAD
          PyThreadState *_save;
          Py_UNBLOCK_THREADS
          #endif
          /*try:*/ {

            /* "src/llfuse/misc.pxi":315
 *             ino = req.inode_p
 *             with nogil:
 *                 fuse_lowlevel_notify_inval_entry(channel, ino, cname, len_)             # <<<<<<<<<<<<<<
 *         else:
 *             raise RuntimeError("Weird request received: %r", req)
 */
            fuse_lowlevel_notify_inval_entry(__pyx_v_6llfuse_4capi_channel, __pyx_v_ino, __pyx_v_cname, __pyx_v_len_);
          }

          /* "src/llfuse/misc.pxi":314
 *             PyBytes_AsStringAndSize(req.name, &cname, &len_)
 *             ino = req.inode_p
 *             with nogil:             # <<<<<<<<<<<<<<
 *                 fuse_lowlevel_notify_inval_entry(channel, ino, cname, len_)
 *         else:
 */
          /*finally:*/ {
            /*normal exit:*/{
              #ifdef WITH_THREAD
              Py_BLOCK_THREADS
              #endif
              goto __pyx_L22;
            }
            __pyx_L22:;
          }
      }
      goto __pyx_L6;
    }
    /*else*/ {

      /* "src/llfuse/misc.pxi":317
 *                 fuse_lowlevel_notify_inval_entry(channel, ino, cname, len_)
 *         else:
 *             raise RuntimeError("Weird request received: %r", req)             # <<<<<<<<<<<<<<
 * 
 * cdef str2bytes(s):
 */
      __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 317; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_INCREF(__pyx_kp_u_Weird_request_received_r);
      PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_kp_u_Weird_request_received_r);
      __Pyx_GIVEREF(__pyx_kp_u_Weird_request_received_r);
      __Pyx_INCREF(__pyx_v_req);
      PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_req);
      __Pyx_GIVEREF(__pyx_v_req);
      __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_t_1, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 317; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_Raise(__pyx_t_3, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      {__pyx_filename = __pyx_f[1]; __pyx_lineno = 317; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    }
    __pyx_L6:;
  }

  /* "src/llfuse/misc.pxi":291
 *         lock.acquire()
 * 
 * def _notify_loop():             # <<<<<<<<<<<<<<
 *     '''Read notifications from queue and send to FUSE kernel module'''
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("llfuse.capi._notify_loop", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_req);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/llfuse/misc.pxi":319
 *             raise RuntimeError("Weird request received: %r", req)
 * 
 * cdef str2bytes(s):             # <<<<<<<<<<<<<<
 *     '''Convert *s* to bytes
 * 
 */

static PyObject *__pyx_f_6llfuse_4capi_str2bytes(PyObject *__pyx_v_s) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  Py_ssize_t __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("str2bytes", 0);

  /* "src/llfuse/misc.pxi":326
 *     '''
 * 
 *     if PY_MAJOR_VERSION < 3:             # <<<<<<<<<<<<<<
 *         return s
 *     else:
 */
  __pyx_t_1 = ((PY_MAJOR_VERSION < 3) != 0);
  if (__pyx_t_1) {

    /* "src/llfuse/misc.pxi":327
 * 
 *     if PY_MAJOR_VERSION < 3:
 *         return s             # <<<<<<<<<<<<<<
 *     else:
 *         return s.encode(fse, 'surrogateescape')
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_v_s);
    __pyx_r = __pyx_v_s;
    goto __pyx_L0;
  }
  /*else*/ {

    /* "src/llfuse/misc.pxi":329
 *         return s
 *     else:
 *         return s.encode(fse, 'surrogateescape')             # <<<<<<<<<<<<<<
 * 
 * cdef bytes2str(s):
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_s, __pyx_n_s_encode); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 329; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_fse); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 329; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = NULL;
    __pyx_t_6 = 0;
    if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_3))) {
      __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
      if (likely(__pyx_t_5)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_5);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_3, function);
        __pyx_t_6 = 1;
      }
    }
    __pyx_t_7 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 329; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    if (__pyx_t_5) {
      PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5); __Pyx_GIVEREF(__pyx_t_5); __pyx_t_5 = NULL;
    }
    PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_6, __pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_4);
    __Pyx_INCREF(__pyx_n_u_surrogateescape);
    PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_6, __pyx_n_u_surrogateescape);
    __Pyx_GIVEREF(__pyx_n_u_surrogateescape);
    __pyx_t_4 = 0;
    __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_7, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 329; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;
  }

  /* "src/llfuse/misc.pxi":319
 *             raise RuntimeError("Weird request received: %r", req)
 * 
 * cdef str2bytes(s):             # <<<<<<<<<<<<<<
 *     '''Convert *s* to bytes
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("llfuse.capi.str2bytes", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/llfuse/misc.pxi":331
 *         return s.encode(fse, 'surrogateescape')
 * 
 * cdef bytes2str(s):             # <<<<<<<<<<<<<<
 *     '''Convert *s* to str
 * 
 */

static PyObject *__pyx_f_6llfuse_4capi_bytes2str(PyObject *__pyx_v_s) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  Py_ssize_t __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("bytes2str", 0);

  /* "src/llfuse/misc.pxi":338
 *     '''
 * 
 *     if PY_MAJOR_VERSION < 3:             # <<<<<<<<<<<<<<
 *         return s
 *     else:
 */
  __pyx_t_1 = ((PY_MAJOR_VERSION < 3) != 0);
  if (__pyx_t_1) {

    /* "src/llfuse/misc.pxi":339
 * 
 *     if PY_MAJOR_VERSION < 3:
 *         return s             # <<<<<<<<<<<<<<
 *     else:
 *         return s.decode(fse, 'surrogateescape')
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_v_s);
    __pyx_r = __pyx_v_s;
    goto __pyx_L0;
  }
  /*else*/ {

    /* "src/llfuse/misc.pxi":341
 *         return s
 *     else:
 *         return s.decode(fse, 'surrogateescape')             # <<<<<<<<<<<<<<
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_s, __pyx_n_s_decode); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 341; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_fse); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 341; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = NULL;
    __pyx_t_6 = 0;
    if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_3))) {
      __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
      if (likely(__pyx_t_5)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_5);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_3, function);
        __pyx_t_6 = 1;
      }
    }
    __pyx_t_7 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 341; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    if (__pyx_t_5) {
      PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5); __Pyx_GIVEREF(__pyx_t_5); __pyx_t_5 = NULL;
    }
    PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_6, __pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_4);
    __Pyx_INCREF(__pyx_n_u_surrogateescape);
    PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_6, __pyx_n_u_surrogateescape);
    __Pyx_GIVEREF(__pyx_n_u_surrogateescape);
    __pyx_t_4 = 0;
    __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_7, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 341; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;
  }

  /* "src/llfuse/misc.pxi":331
 *         return s.encode(fse, 'surrogateescape')
 * 
 * cdef bytes2str(s):             # <<<<<<<<<<<<<<
 *     '''Convert *s* to str
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("llfuse.capi.bytes2str", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/llfuse/fuse_api.pxi":14
 * '''
 * 
 * def listdir(path):             # <<<<<<<<<<<<<<
 *     '''Like `os.listdir`, but releases the GIL.
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_6llfuse_4capi_3listdir(PyObject *__pyx_self, PyObject *__pyx_v_path); /*proto*/
static char __pyx_doc_6llfuse_4capi_2listdir[] = "listdir(path)\nLike `os.listdir`, but releases the GIL.\n\n    This function returns an iterator over the directory entries in\n    *path*. The returned values are of type :ref:`str\n    <python:textseq>` in both Python 2.x and 3.x.\n\n    In Python 2.x :class:`str` is equivalent to `bytes` so all names\n    can be represented. In Python 3.x, surrogate escape coding (cf.\n    `PEP 383 <http://www.python.org/dev/peps/pep-0383/>`_) is used for\n    directory names that do not have a string representation.\n    ";
static PyMethodDef __pyx_mdef_6llfuse_4capi_3listdir = {"listdir", (PyCFunction)__pyx_pw_6llfuse_4capi_3listdir, METH_O, __pyx_doc_6llfuse_4capi_2listdir};
static PyObject *__pyx_pw_6llfuse_4capi_3listdir(PyObject *__pyx_self, PyObject *__pyx_v_path) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("listdir (wrapper)", 0);
  __pyx_r = __pyx_pf_6llfuse_4capi_2listdir(__pyx_self, ((PyObject *)__pyx_v_path));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6llfuse_4capi_2listdir(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_path) {
  DIR *__pyx_v_dirp;
  struct dirent __pyx_v_ent;
  struct dirent *__pyx_v_res;
  int __pyx_v_ret;
  char *__pyx_v_buf;
  PyObject *__pyx_v_path_b = NULL;
  PyObject *__pyx_v_names = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  char *__pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  int __pyx_t_10;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("listdir", 0);

  /* "src/llfuse/fuse_api.pxi":27
 *     '''
 * 
 *     if not isinstance(path, str_t):             # <<<<<<<<<<<<<<
 *         raise TypeError('*path* argument must be of type str')
 * 
 */
  __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_str_t); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 27; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_IsInstance(__pyx_v_path, __pyx_t_1); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 27; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_3 = ((!(__pyx_t_2 != 0)) != 0);
  if (__pyx_t_3) {

    /* "src/llfuse/fuse_api.pxi":28
 * 
 *     if not isinstance(path, str_t):
 *         raise TypeError('*path* argument must be of type str')             # <<<<<<<<<<<<<<
 * 
 *     cdef dirent.DIR* dirp
 */
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__48, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 28; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_Raise(__pyx_t_1, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    {__pyx_filename = __pyx_f[2]; __pyx_lineno = 28; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  }

  /* "src/llfuse/fuse_api.pxi":36
 *     cdef char* buf
 * 
 *     path_b = str2bytes(path)             # <<<<<<<<<<<<<<
 *     buf = <char*> path_b
 * 
 */
  __pyx_t_1 = __pyx_f_6llfuse_4capi_str2bytes(__pyx_v_path); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 36; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_path_b = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "src/llfuse/fuse_api.pxi":37
 * 
 *     path_b = str2bytes(path)
 *     buf = <char*> path_b             # <<<<<<<<<<<<<<
 * 
 *     with nogil:
 */
  __pyx_t_4 = __Pyx_PyObject_AsString(__pyx_v_path_b); if (unlikely((!__pyx_t_4) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 37; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_v_buf = ((char *)__pyx_t_4);

  /* "src/llfuse/fuse_api.pxi":39
 *     buf = <char*> path_b
 * 
 *     with nogil:             # <<<<<<<<<<<<<<
 *         dirp = dirent.opendir(buf)
 * 
 */
  {
      #ifdef WITH_THREAD
      PyThreadState *_save;
      Py_UNBLOCK_THREADS
      #endif
      /*try:*/ {

        /* "src/llfuse/fuse_api.pxi":40
 * 
 *     with nogil:
 *         dirp = dirent.opendir(buf)             # <<<<<<<<<<<<<<
 * 
 *     if dirp == NULL:
 */
        __pyx_v_dirp = opendir(__pyx_v_buf);
      }

      /* "src/llfuse/fuse_api.pxi":39
 *     buf = <char*> path_b
 * 
 *     with nogil:             # <<<<<<<<<<<<<<
 *         dirp = dirent.opendir(buf)
 * 
 */
      /*finally:*/ {
        /*normal exit:*/{
          #ifdef WITH_THREAD
          Py_BLOCK_THREADS
          #endif
          goto __pyx_L6;
        }
        __pyx_L6:;
      }
  }

  /* "src/llfuse/fuse_api.pxi":42
 *         dirp = dirent.opendir(buf)
 * 
 *     if dirp == NULL:             # <<<<<<<<<<<<<<
 *         raise OSError(errno.errno, strerror(errno.errno), path)
 * 
 */
  __pyx_t_3 = ((__pyx_v_dirp == NULL) != 0);
  if (__pyx_t_3) {

    /* "src/llfuse/fuse_api.pxi":43
 * 
 *     if dirp == NULL:
 *         raise OSError(errno.errno, strerror(errno.errno), path)             # <<<<<<<<<<<<<<
 * 
 *     names = list()
 */
    __pyx_t_1 = __Pyx_PyInt_From_int(errno); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 43; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s_strerror); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 43; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = __Pyx_PyInt_From_int(errno); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 43; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_8 = NULL;
    if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_6))) {
      __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_6);
      if (likely(__pyx_t_8)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
        __Pyx_INCREF(__pyx_t_8);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_6, function);
      }
    }
    if (!__pyx_t_8) {
      __pyx_t_5 = __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_7); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 43; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_GOTREF(__pyx_t_5);
    } else {
      __pyx_t_9 = PyTuple_New(1+1); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 43; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_9);
      PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_8); __Pyx_GIVEREF(__pyx_t_8); __pyx_t_8 = NULL;
      PyTuple_SET_ITEM(__pyx_t_9, 0+1, __pyx_t_7);
      __Pyx_GIVEREF(__pyx_t_7);
      __pyx_t_7 = 0;
      __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_9, NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 43; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    }
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 43; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_5);
    __Pyx_INCREF(__pyx_v_path);
    PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_v_path);
    __Pyx_GIVEREF(__pyx_v_path);
    __pyx_t_1 = 0;
    __pyx_t_5 = 0;
    __pyx_t_5 = __Pyx_PyObject_Call(__pyx_builtin_OSError, __pyx_t_6, NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 43; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_Raise(__pyx_t_5, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    {__pyx_filename = __pyx_f[2]; __pyx_lineno = 43; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  }

  /* "src/llfuse/fuse_api.pxi":45
 *         raise OSError(errno.errno, strerror(errno.errno), path)
 * 
 *     names = list()             # <<<<<<<<<<<<<<
 *     while True:
 *         errno.errno = 0
 */
  __pyx_t_5 = PyList_New(0); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 45; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_v_names = ((PyObject*)__pyx_t_5);
  __pyx_t_5 = 0;

  /* "src/llfuse/fuse_api.pxi":46
 * 
 *     names = list()
 *     while True:             # <<<<<<<<<<<<<<
 *         errno.errno = 0
 *         with nogil:
 */
  while (1) {

    /* "src/llfuse/fuse_api.pxi":47
 *     names = list()
 *     while True:
 *         errno.errno = 0             # <<<<<<<<<<<<<<
 *         with nogil:
 *             ret = dirent.readdir_r(dirp, &ent, &res)
 */
    errno = 0;

    /* "src/llfuse/fuse_api.pxi":48
 *     while True:
 *         errno.errno = 0
 *         with nogil:             # <<<<<<<<<<<<<<
 *             ret = dirent.readdir_r(dirp, &ent, &res)
 * 
 */
    {
        #ifdef WITH_THREAD
        PyThreadState *_save;
        Py_UNBLOCK_THREADS
        #endif
        /*try:*/ {

          /* "src/llfuse/fuse_api.pxi":49
 *         errno.errno = 0
 *         with nogil:
 *             ret = dirent.readdir_r(dirp, &ent, &res)             # <<<<<<<<<<<<<<
 * 
 *         if ret != 0:
 */
          __pyx_v_ret = readdir_r(__pyx_v_dirp, (&__pyx_v_ent), (&__pyx_v_res));
        }

        /* "src/llfuse/fuse_api.pxi":48
 *     while True:
 *         errno.errno = 0
 *         with nogil:             # <<<<<<<<<<<<<<
 *             ret = dirent.readdir_r(dirp, &ent, &res)
 * 
 */
        /*finally:*/ {
          /*normal exit:*/{
            #ifdef WITH_THREAD
            Py_BLOCK_THREADS
            #endif
            goto __pyx_L14;
          }
          __pyx_L14:;
        }
    }

    /* "src/llfuse/fuse_api.pxi":51
 *             ret = dirent.readdir_r(dirp, &ent, &res)
 * 
 *         if ret != 0:             # <<<<<<<<<<<<<<
 *             raise OSError(errno.errno, strerror(errno.errno), path)
 *         if res is NULL:
 */
    __pyx_t_3 = ((__pyx_v_ret != 0) != 0);
    if (__pyx_t_3) {

      /* "src/llfuse/fuse_api.pxi":52
 * 
 *         if ret != 0:
 *             raise OSError(errno.errno, strerror(errno.errno), path)             # <<<<<<<<<<<<<<
 *         if res is NULL:
 *             break
 */
      __pyx_t_5 = __Pyx_PyInt_From_int(errno); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 52; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_strerror); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 52; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_9 = __Pyx_PyInt_From_int(errno); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 52; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_9);
      __pyx_t_7 = NULL;
      if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_1))) {
        __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_1);
        if (likely(__pyx_t_7)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
          __Pyx_INCREF(__pyx_t_7);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_1, function);
        }
      }
      if (!__pyx_t_7) {
        __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_9); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 52; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        __Pyx_GOTREF(__pyx_t_6);
      } else {
        __pyx_t_8 = PyTuple_New(1+1); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 52; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_8);
        PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_7); __Pyx_GIVEREF(__pyx_t_7); __pyx_t_7 = NULL;
        PyTuple_SET_ITEM(__pyx_t_8, 0+1, __pyx_t_9);
        __Pyx_GIVEREF(__pyx_t_9);
        __pyx_t_9 = 0;
        __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_8, NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 52; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      }
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 52; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_5);
      __Pyx_GIVEREF(__pyx_t_5);
      PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_6);
      __Pyx_GIVEREF(__pyx_t_6);
      __Pyx_INCREF(__pyx_v_path);
      PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_path);
      __Pyx_GIVEREF(__pyx_v_path);
      __pyx_t_5 = 0;
      __pyx_t_6 = 0;
      __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_OSError, __pyx_t_1, NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 52; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_Raise(__pyx_t_6, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      {__pyx_filename = __pyx_f[2]; __pyx_lineno = 52; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    }

    /* "src/llfuse/fuse_api.pxi":53
 *         if ret != 0:
 *             raise OSError(errno.errno, strerror(errno.errno), path)
 *         if res is NULL:             # <<<<<<<<<<<<<<
 *             break
 *         if string.strcmp(ent.d_name, b'.') == 0 or string.strcmp(ent.d_name, b'..') == 0:
 */
    __pyx_t_3 = ((__pyx_v_res == NULL) != 0);
    if (__pyx_t_3) {

      /* "src/llfuse/fuse_api.pxi":54
 *             raise OSError(errno.errno, strerror(errno.errno), path)
 *         if res is NULL:
 *             break             # <<<<<<<<<<<<<<
 *         if string.strcmp(ent.d_name, b'.') == 0 or string.strcmp(ent.d_name, b'..') == 0:
 *             continue
 */
      goto __pyx_L9_break;
    }

    /* "src/llfuse/fuse_api.pxi":55
 *         if res is NULL:
 *             break
 *         if string.strcmp(ent.d_name, b'.') == 0 or string.strcmp(ent.d_name, b'..') == 0:             # <<<<<<<<<<<<<<
 *             continue
 * 
 */
    __pyx_t_2 = ((strcmp(__pyx_v_ent.d_name, __pyx_k__49) == 0) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L18_bool_binop_done;
    }
    __pyx_t_2 = ((strcmp(__pyx_v_ent.d_name, __pyx_k__50) == 0) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L18_bool_binop_done:;
    if (__pyx_t_3) {

      /* "src/llfuse/fuse_api.pxi":56
 *             break
 *         if string.strcmp(ent.d_name, b'.') == 0 or string.strcmp(ent.d_name, b'..') == 0:
 *             continue             # <<<<<<<<<<<<<<
 * 
 *         names.append(bytes2str(PyBytes_FromString(ent.d_name)))
 */
      goto __pyx_L8_continue;
    }

    /* "src/llfuse/fuse_api.pxi":58
 *             continue
 * 
 *         names.append(bytes2str(PyBytes_FromString(ent.d_name)))             # <<<<<<<<<<<<<<
 * 
 *     with nogil:
 */
    __pyx_t_6 = PyBytes_FromString(__pyx_v_ent.d_name); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 58; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_1 = __pyx_f_6llfuse_4capi_bytes2str(__pyx_t_6); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 58; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_10 = __Pyx_PyList_Append(__pyx_v_names, __pyx_t_1); if (unlikely(__pyx_t_10 == -1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 58; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_L8_continue:;
  }
  __pyx_L9_break:;

  /* "src/llfuse/fuse_api.pxi":60
 *         names.append(bytes2str(PyBytes_FromString(ent.d_name)))
 * 
 *     with nogil:             # <<<<<<<<<<<<<<
 *         dirent.closedir(dirp)
 * 
 */
  {
      #ifdef WITH_THREAD
      PyThreadState *_save;
      Py_UNBLOCK_THREADS
      #endif
      /*try:*/ {

        /* "src/llfuse/fuse_api.pxi":61
 * 
 *     with nogil:
 *         dirent.closedir(dirp)             # <<<<<<<<<<<<<<
 * 
 *     return names
 */
        closedir(__pyx_v_dirp);
      }

      /* "src/llfuse/fuse_api.pxi":60
 *         names.append(bytes2str(PyBytes_FromString(ent.d_name)))
 * 
 *     with nogil:             # <<<<<<<<<<<<<<
 *         dirent.closedir(dirp)
 * 
 */
      /*finally:*/ {
        /*normal exit:*/{
          #ifdef WITH_THREAD
          Py_BLOCK_THREADS
          #endif
          goto __pyx_L22;
        }
        __pyx_L22:;
      }
  }

  /* "src/llfuse/fuse_api.pxi":63
 *         dirent.closedir(dirp)
 * 
 *     return names             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_names);
  __pyx_r = __pyx_v_names;
  goto __pyx_L0;

  /* "src/llfuse/fuse_api.pxi":14
 * '''
 * 
 * def listdir(path):             # <<<<<<<<<<<<<<
 *     '''Like `os.listdir`, but releases the GIL.
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_AddTraceback("llfuse.capi.listdir", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_path_b);
  __Pyx_XDECREF(__pyx_v_names);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/llfuse/fuse_api.pxi":66
 * 
 * 
 * def setxattr(path, name, bytes value, namespace='user'):             # <<<<<<<<<<<<<<
 *     '''Set extended attribute
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_6llfuse_4capi_5setxattr(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_6llfuse_4capi_4setxattr[] = "setxattr(path, name, bytes value, namespace=u'user')\nSet extended attribute\n\n    *path* and *name* have to be of type `str`. In Python 3.x, they may\n    contain surrogates. *value* has to be of type `bytes`.\n\n    Under FreeBSD, the *namespace* parameter may be set to *system* or *user* to\n    select the namespace for the extended attribute. For other platforms, this\n    parameter is ignored.\n\n    In contrast the `os.setxattr` function from the standard library,\n    the method provided by Python-LLFUSE is also available for non-Linux\n    systems.\n    ";
static PyMethodDef __pyx_mdef_6llfuse_4capi_5setxattr = {"setxattr", (PyCFunction)__pyx_pw_6llfuse_4capi_5setxattr, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6llfuse_4capi_4setxattr};
static PyObject *__pyx_pw_6llfuse_4capi_5setxattr(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_path = 0;
  PyObject *__pyx_v_name = 0;
  PyObject *__pyx_v_value = 0;
  PyObject *__pyx_v_namespace = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("setxattr (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_path,&__pyx_n_s_name,&__pyx_n_s_value,&__pyx_n_s_namespace,0};
    PyObject* values[4] = {0,0,0,0};
    values[3] = ((PyObject *)__pyx_n_u_user);
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_path)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_name)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("setxattr", 0, 3, 4, 1); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 66; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  2:
        if (likely((values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_value)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("setxattr", 0, 3, 4, 2); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 66; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  3:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_namespace);
          if (value) { values[3] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setxattr") < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 66; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_path = values[0];
    __pyx_v_name = values[1];
    __pyx_v_value = ((PyObject*)values[2]);
    __pyx_v_namespace = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("setxattr", 0, 3, 4, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 66; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("llfuse.capi.setxattr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_value), (&PyBytes_Type), 1, "value", 1))) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 66; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_r = __pyx_pf_6llfuse_4capi_4setxattr(__pyx_self, __pyx_v_path, __pyx_v_name, __pyx_v_value, __pyx_v_namespace);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6llfuse_4capi_4setxattr(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_path, PyObject *__pyx_v_name, PyObject *__pyx_v_value, PyObject *__pyx_v_namespace) {
  int __pyx_v_ret;
  Py_ssize_t __pyx_v_len_;
  char *__pyx_v_cvalue;
  char *__pyx_v_cpath;
  char *__pyx_v_cname;
  int __pyx_v_cnamespace;
  PyObject *__pyx_v_path_b = NULL;
  PyObject *__pyx_v_name_b = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_t_5;
  char *__pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("setxattr", 0);

  /* "src/llfuse/fuse_api.pxi":81
 *     '''
 * 
 *     if not isinstance(path, str_t):             # <<<<<<<<<<<<<<
 *         raise TypeError('*path* argument must be of type str')
 * 
 */
  __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_str_t); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 81; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_IsInstance(__pyx_v_path, __pyx_t_1); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 81; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_3 = ((!(__pyx_t_2 != 0)) != 0);
  if (__pyx_t_3) {

    /* "src/llfuse/fuse_api.pxi":82
 * 
 *     if not isinstance(path, str_t):
 *         raise TypeError('*path* argument must be of type str')             # <<<<<<<<<<<<<<
 * 
 *     if not isinstance(name, str_t):
 */
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__51, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 82; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_Raise(__pyx_t_1, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    {__pyx_filename = __pyx_f[2]; __pyx_lineno = 82; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  }

  /* "src/llfuse/fuse_api.pxi":84
 *         raise TypeError('*path* argument must be of type str')
 * 
 *     if not isinstance(name, str_t):             # <<<<<<<<<<<<<<
 *         raise TypeError('*name* argument must be of type str')
 * 
 */
  __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_str_t); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 84; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = PyObject_IsInstance(__pyx_v_name, __pyx_t_1); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 84; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_2 = ((!(__pyx_t_3 != 0)) != 0);
  if (__pyx_t_2) {

    /* "src/llfuse/fuse_api.pxi":85
 * 
 *     if not isinstance(name, str_t):
 *         raise TypeError('*name* argument must be of type str')             # <<<<<<<<<<<<<<
 * 
 *     if namespace not in ('system', 'user'):
 */
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__52, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 85; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_Raise(__pyx_t_1, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    {__pyx_filename = __pyx_f[2]; __pyx_lineno = 85; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  }

  /* "src/llfuse/fuse_api.pxi":87
 *         raise TypeError('*name* argument must be of type str')
 * 
 *     if namespace not in ('system', 'user'):             # <<<<<<<<<<<<<<
 *         raise ValueError('*namespace* parameter must be "system" or "user", not %s'
 *                          % namespace)
 */
  __Pyx_INCREF(__pyx_v_namespace);
  __pyx_t_1 = __pyx_v_namespace;
  __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_t_1, __pyx_n_u_system, Py_NE)); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 87; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_3) {
  } else {
    __pyx_t_2 = __pyx_t_3;
    goto __pyx_L6_bool_binop_done;
  }
  __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_t_1, __pyx_n_u_user, Py_NE)); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 87; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_2 = __pyx_t_3;
  __pyx_L6_bool_binop_done:;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_3 = (__pyx_t_2 != 0);
  if (__pyx_t_3) {

    /* "src/llfuse/fuse_api.pxi":89
 *     if namespace not in ('system', 'user'):
 *         raise ValueError('*namespace* parameter must be "system" or "user", not %s'
 *                          % namespace)             # <<<<<<<<<<<<<<
 * 
 *     cdef int ret
 */
    __pyx_t_1 = PyUnicode_Format(__pyx_kp_u_namespace_parameter_must_be_sys, __pyx_v_namespace); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 89; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);

    /* "src/llfuse/fuse_api.pxi":88
 * 
 *     if namespace not in ('system', 'user'):
 *         raise ValueError('*namespace* parameter must be "system" or "user", not %s'             # <<<<<<<<<<<<<<
 *                          % namespace)
 * 
 */
    __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 88; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_t_4, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 88; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_Raise(__pyx_t_1, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    {__pyx_filename = __pyx_f[2]; __pyx_lineno = 88; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  }

  /* "src/llfuse/fuse_api.pxi":99
 *     IF TARGET_PLATFORM == 'freebsd':
 *         cdef int cnamespace
 *         if namespace == 'system':             # <<<<<<<<<<<<<<
 *             cnamespace = xattr.EXTATTR_NAMESPACE_SYSTEM
 *         else:
 */
  __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_v_namespace, __pyx_n_u_system, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 99; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_3) {

    /* "src/llfuse/fuse_api.pxi":100
 *         cdef int cnamespace
 *         if namespace == 'system':
 *             cnamespace = xattr.EXTATTR_NAMESPACE_SYSTEM             # <<<<<<<<<<<<<<
 *         else:
 *             cnamespace = xattr.EXTATTR_NAMESPACE_USER
 */
    __pyx_v_cnamespace = EXTATTR_NAMESPACE_SYSTEM;
    goto __pyx_L8;
  }
  /*else*/ {

    /* "src/llfuse/fuse_api.pxi":102
 *             cnamespace = xattr.EXTATTR_NAMESPACE_SYSTEM
 *         else:
 *             cnamespace = xattr.EXTATTR_NAMESPACE_USER             # <<<<<<<<<<<<<<
 * 
 *     path_b = str2bytes(path)
 */
    __pyx_v_cnamespace = EXTATTR_NAMESPACE_USER;
  }
  __pyx_L8:;

  /* "src/llfuse/fuse_api.pxi":104
 *             cnamespace = xattr.EXTATTR_NAMESPACE_USER
 * 
 *     path_b = str2bytes(path)             # <<<<<<<<<<<<<<
 *     name_b = str2bytes(name)
 *     PyBytes_AsStringAndSize(value, &cvalue, &len_)
 */
  __pyx_t_1 = __pyx_f_6llfuse_4capi_str2bytes(__pyx_v_path); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 104; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_path_b = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "src/llfuse/fuse_api.pxi":105
 * 
 *     path_b = str2bytes(path)
 *     name_b = str2bytes(name)             # <<<<<<<<<<<<<<
 *     PyBytes_AsStringAndSize(value, &cvalue, &len_)
 *     cpath = <char*> path_b
 */
  __pyx_t_1 = __pyx_f_6llfuse_4capi_str2bytes(__pyx_v_name); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 105; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_name_b = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "src/llfuse/fuse_api.pxi":106
 *     path_b = str2bytes(path)
 *     name_b = str2bytes(name)
 *     PyBytes_AsStringAndSize(value, &cvalue, &len_)             # <<<<<<<<<<<<<<
 *     cpath = <char*> path_b
 *     cname = <char*> name_b
 */
  __pyx_t_5 = PyBytes_AsStringAndSize(__pyx_v_value, (&__pyx_v_cvalue), (&__pyx_v_len_)); if (unlikely(__pyx_t_5 == -1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 106; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "src/llfuse/fuse_api.pxi":107
 *     name_b = str2bytes(name)
 *     PyBytes_AsStringAndSize(value, &cvalue, &len_)
 *     cpath = <char*> path_b             # <<<<<<<<<<<<<<
 *     cname = <char*> name_b
 * 
 */
  __pyx_t_6 = __Pyx_PyObject_AsString(__pyx_v_path_b); if (unlikely((!__pyx_t_6) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 107; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_v_cpath = ((char *)__pyx_t_6);

  /* "src/llfuse/fuse_api.pxi":108
 *     PyBytes_AsStringAndSize(value, &cvalue, &len_)
 *     cpath = <char*> path_b
 *     cname = <char*> name_b             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_t_6 = __Pyx_PyObject_AsString(__pyx_v_name_b); if (unlikely((!__pyx_t_6) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 108; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_v_cname = ((char *)__pyx_t_6);

  /* "src/llfuse/fuse_api.pxi":111
 * 
 * 
 *     with nogil:             # <<<<<<<<<<<<<<
 *         IF TARGET_PLATFORM == 'freebsd':
 *             ret = xattr.extattr_set_file(cpath, cnamespace, cname,
 */
  {
      #ifdef WITH_THREAD
      PyThreadState *_save;
      Py_UNBLOCK_THREADS
      #endif
      /*try:*/ {

        /* "src/llfuse/fuse_api.pxi":113
 *     with nogil:
 *         IF TARGET_PLATFORM == 'freebsd':
 *             ret = xattr.extattr_set_file(cpath, cnamespace, cname,             # <<<<<<<<<<<<<<
 *                                          cvalue, len_)
 *         ELSE:
 */
        __pyx_v_ret = extattr_set_file(__pyx_v_cpath, __pyx_v_cnamespace, __pyx_v_cname, __pyx_v_cvalue, __pyx_v_len_);
      }

      /* "src/llfuse/fuse_api.pxi":111
 * 
 * 
 *     with nogil:             # <<<<<<<<<<<<<<
 *         IF TARGET_PLATFORM == 'freebsd':
 *             ret = xattr.extattr_set_file(cpath, cnamespace, cname,
 */
      /*finally:*/ {
        /*normal exit:*/{
          #ifdef WITH_THREAD
          Py_BLOCK_THREADS
          #endif
          goto __pyx_L11;
        }
        __pyx_L11:;
      }
  }

  /* "src/llfuse/fuse_api.pxi":118
 *             ret = xattr.setxattr(cpath, cname, cvalue, len_, 0)
 * 
 *     if ret != 0:             # <<<<<<<<<<<<<<
 *         raise OSError(errno.errno, strerror(errno.errno), path)
 * 
 */
  __pyx_t_3 = ((__pyx_v_ret != 0) != 0);
  if (__pyx_t_3) {

    /* "src/llfuse/fuse_api.pxi":119
 * 
 *     if ret != 0:
 *         raise OSError(errno.errno, strerror(errno.errno), path)             # <<<<<<<<<<<<<<
 * 
 * 
 */
    __pyx_t_1 = __Pyx_PyInt_From_int(errno); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 119; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_7 = __Pyx_GetModuleGlobalName(__pyx_n_s_strerror); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 119; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_8 = __Pyx_PyInt_From_int(errno); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 119; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_9 = NULL;
    if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_7))) {
      __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_7);
      if (likely(__pyx_t_9)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
        __Pyx_INCREF(__pyx_t_9);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_7, function);
      }
    }
    if (!__pyx_t_9) {
      __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_8); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 119; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_GOTREF(__pyx_t_4);
    } else {
      __pyx_t_10 = PyTuple_New(1+1); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 119; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_10);
      PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_9); __Pyx_GIVEREF(__pyx_t_9); __pyx_t_9 = NULL;
      PyTuple_SET_ITEM(__pyx_t_10, 0+1, __pyx_t_8);
      __Pyx_GIVEREF(__pyx_t_8);
      __pyx_t_8 = 0;
      __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_10, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 119; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    }
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_t_7 = PyTuple_New(3); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 119; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_7);
    PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_4);
    __Pyx_INCREF(__pyx_v_path);
    PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_v_path);
    __Pyx_GIVEREF(__pyx_v_path);
    __pyx_t_1 = 0;
    __pyx_t_4 = 0;
    __pyx_t_4 = __Pyx_PyObject_Call(__pyx_builtin_OSError, __pyx_t_7, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 119; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_Raise(__pyx_t_4, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    {__pyx_filename = __pyx_f[2]; __pyx_lineno = 119; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  }

  /* "src/llfuse/fuse_api.pxi":66
 * 
 * 
 * def setxattr(path, name, bytes value, namespace='user'):             # <<<<<<<<<<<<<<
 *     '''Set extended attribute
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_AddTraceback("llfuse.capi.setxattr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_path_b);
  __Pyx_XDECREF(__pyx_v_name_b);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/llfuse/fuse_api.pxi":122
 * 
 * 
 * def getxattr(path, name, int size_guess=128, namespace='user'):             # <<<<<<<<<<<<<<
 *     '''Get extended attribute
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_6llfuse_4capi_7getxattr(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_6llfuse_4capi_6getxattr[] = "getxattr(path, name, int size_guess=128, namespace=u'user')\nGet extended attribute\n\n    *path* and *name* have to be of type `str`. In Python 3.x, they may\n    contain surrogates. Returns a value of type `bytes`.\n\n    If the caller knows the approximate size of the attribute value,\n    it should be supplied in *size_guess*. If the guess turns out\n    to be wrong, the system call has to be carried out three times\n    (the first call will fail, the second determines the size and\n    the third finally gets the value).\n\n    Under FreeBSD, the *namespace* parameter may be set to *system* or *user* to\n    select the namespace for the extended attribute. For other platforms, this\n    parameter is ignored.\n\n    In contrast the `os.setxattr` function from the standard library,\n    the method provided by Python-LLFUSE is also available for non-Linux\n    systems.\n    ";
static PyMethodDef __pyx_mdef_6llfuse_4capi_7getxattr = {"getxattr", (PyCFunction)__pyx_pw_6llfuse_4capi_7getxattr, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6llfuse_4capi_6getxattr};
static PyObject *__pyx_pw_6llfuse_4capi_7getxattr(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_path = 0;
  PyObject *__pyx_v_name = 0;
  int __pyx_v_size_guess;
  PyObject *__pyx_v_namespace = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("getxattr (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_path,&__pyx_n_s_name,&__pyx_n_s_size_guess,&__pyx_n_s_namespace,0};
    PyObject* values[4] = {0,0,0,0};
    values[3] = ((PyObject *)__pyx_n_u_user);
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_path)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_name)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("getxattr", 0, 2, 4, 1); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 122; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  2:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_size_guess);
          if (value) { values[2] = value; kw_args--; }
        }
        case  3:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_namespace);
          if (value) { values[3] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "getxattr") < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 122; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_path = values[0];
    __pyx_v_name = values[1];
    if (values[2]) {
      __pyx_v_size_guess = __Pyx_PyInt_As_int(values[2]); if (unlikely((__pyx_v_size_guess == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 122; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    } else {
      __pyx_v_size_guess = ((int)128);
    }
    __pyx_v_namespace = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("getxattr", 0, 2, 4, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 122; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("llfuse.capi.getxattr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6llfuse_4capi_6getxattr(__pyx_self, __pyx_v_path, __pyx_v_name, __pyx_v_size_guess, __pyx_v_namespace);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6llfuse_4capi_6getxattr(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_path, PyObject *__pyx_v_name, int __pyx_v_size_guess, PyObject *__pyx_v_namespace) {
  Py_ssize_t __pyx_v_ret;
  char *__pyx_v_buf;
  char *__pyx_v_cpath;
  char *__pyx_v_cname;
  size_t __pyx_v_bufsize;
  int __pyx_v_cnamespace;
  PyObject *__pyx_v_path_b = NULL;
  PyObject *__pyx_v_name_b = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_t_2;
  int __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  char *__pyx_t_5;
  PyObject *__pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  PyObject *__pyx_t_9 = NULL;
  PyObject *__pyx_t_10 = NULL;
  int __pyx_t_11;
  int __pyx_t_12;
  char const *__pyx_t_13;
  PyObject *__pyx_t_14 = NULL;
  PyObject *__pyx_t_15 = NULL;
  PyObject *__pyx_t_16 = NULL;
  PyObject *__pyx_t_17 = NULL;
  PyObject *__pyx_t_18 = NULL;
  PyObject *__pyx_t_19 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("getxattr", 0);

  /* "src/llfuse/fuse_api.pxi":143
 *     '''
 * 
 *     if not isinstance(path, str_t):             # <<<<<<<<<<<<<<
 *         raise TypeError('*path* argument must be of type str')
 * 
 */
  __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_str_t); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 143; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_IsInstance(__pyx_v_path, __pyx_t_1); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 143; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_3 = ((!(__pyx_t_2 != 0)) != 0);
  if (__pyx_t_3) {

    /* "src/llfuse/fuse_api.pxi":144
 * 
 *     if not isinstance(path, str_t):
 *         raise TypeError('*path* argument must be of type str')             # <<<<<<<<<<<<<<
 * 
 *     if not isinstance(name, str_t):
 */
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__53, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 144; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_Raise(__pyx_t_1, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    {__pyx_filename = __pyx_f[2]; __pyx_lineno = 144; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  }

  /* "src/llfuse/fuse_api.pxi":146
 *         raise TypeError('*path* argument must be of type str')
 * 
 *     if not isinstance(name, str_t):             # <<<<<<<<<<<<<<
 *         raise TypeError('*name* argument must be of type str')
 * 
 */
  __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_str_t); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 146; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = PyObject_IsInstance(__pyx_v_name, __pyx_t_1); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 146; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_2 = ((!(__pyx_t_3 != 0)) != 0);
  if (__pyx_t_2) {

    /* "src/llfuse/fuse_api.pxi":147
 * 
 *     if not isinstance(name, str_t):
 *         raise TypeError('*name* argument must be of type str')             # <<<<<<<<<<<<<<
 * 
 *     if namespace not in ('system', 'user'):
 */
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__54, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 147; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_Raise(__pyx_t_1, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    {__pyx_filename = __pyx_f[2]; __pyx_lineno = 147; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  }

  /* "src/llfuse/fuse_api.pxi":149
 *         raise TypeError('*name* argument must be of type str')
 * 
 *     if namespace not in ('system', 'user'):             # <<<<<<<<<<<<<<
 *         raise ValueError('*namespace* parameter must be "system" or "user", not %s'
 *                          % namespace)
 */
  __Pyx_INCREF(__pyx_v_namespace);
  __pyx_t_1 = __pyx_v_namespace;
  __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_t_1, __pyx_n_u_system, Py_NE)); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 149; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_3) {
  } else {
    __pyx_t_2 = __pyx_t_3;
    goto __pyx_L6_bool_binop_done;
  }
  __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_t_1, __pyx_n_u_user, Py_NE)); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 149; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_2 = __pyx_t_3;
  __pyx_L6_bool_binop_done:;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_3 = (__pyx_t_2 != 0);
  if (__pyx_t_3) {

    /* "src/llfuse/fuse_api.pxi":151
 *     if namespace not in ('system', 'user'):
 *         raise ValueError('*namespace* parameter must be "system" or "user", not %s'
 *                          % namespace)             # <<<<<<<<<<<<<<
 * 
 *     cdef ssize_t ret
 */
    __pyx_t_1 = PyUnicode_Format(__pyx_kp_u_namespace_parameter_must_be_sys, __pyx_v_namespace); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 151; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);

    /* "src/llfuse/fuse_api.pxi":150
 * 
 *     if namespace not in ('system', 'user'):
 *         raise ValueError('*namespace* parameter must be "system" or "user", not %s'             # <<<<<<<<<<<<<<
 *                          % namespace)
 * 
 */
    __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 150; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_t_4, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 150; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_Raise(__pyx_t_1, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    {__pyx_filename = __pyx_f[2]; __pyx_lineno = 150; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  }

  /* "src/llfuse/fuse_api.pxi":161
 *     IF TARGET_PLATFORM == 'freebsd':
 *         cdef int cnamespace
 *         if namespace == 'system':             # <<<<<<<<<<<<<<
 *             cnamespace = xattr.EXTATTR_NAMESPACE_SYSTEM
 *         else:
 */
  __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_v_namespace, __pyx_n_u_system, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 161; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_3) {

    /* "src/llfuse/fuse_api.pxi":162
 *         cdef int cnamespace
 *         if namespace == 'system':
 *             cnamespace = xattr.EXTATTR_NAMESPACE_SYSTEM             # <<<<<<<<<<<<<<
 *         else:
 *             cnamespace = xattr.EXTATTR_NAMESPACE_USER
 */
    __pyx_v_cnamespace = EXTATTR_NAMESPACE_SYSTEM;
    goto __pyx_L8;
  }
  /*else*/ {

    /* "src/llfuse/fuse_api.pxi":164
 *             cnamespace = xattr.EXTATTR_NAMESPACE_SYSTEM
 *         else:
 *             cnamespace = xattr.EXTATTR_NAMESPACE_USER             # <<<<<<<<<<<<<<
 * 
 *     path_b = str2bytes(path)
 */
    __pyx_v_cnamespace = EXTATTR_NAMESPACE_USER;
  }
  __pyx_L8:;

  /* "src/llfuse/fuse_api.pxi":166
 *             cnamespace = xattr.EXTATTR_NAMESPACE_USER
 * 
 *     path_b = str2bytes(path)             # <<<<<<<<<<<<<<
 *     name_b = str2bytes(name)
 *     cpath = <char*> path_b
 */
  __pyx_t_1 = __pyx_f_6llfuse_4capi_str2bytes(__pyx_v_path); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 166; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_path_b = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "src/llfuse/fuse_api.pxi":167
 * 
 *     path_b = str2bytes(path)
 *     name_b = str2bytes(name)             # <<<<<<<<<<<<<<
 *     cpath = <char*> path_b
 *     cname = <char*> name_b
 */
  __pyx_t_1 = __pyx_f_6llfuse_4capi_str2bytes(__pyx_v_name); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 167; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_name_b = __pyx_t_1;
  __pyx_t_1 = 0;

  /* "src/llfuse/fuse_api.pxi":168
 *     path_b = str2bytes(path)
 *     name_b = str2bytes(name)
 *     cpath = <char*> path_b             # <<<<<<<<<<<<<<
 *     cname = <char*> name_b
 * 
 */
  __pyx_t_5 = __Pyx_PyObject_AsString(__pyx_v_path_b); if (unlikely((!__pyx_t_5) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 168; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_v_cpath = ((char *)__pyx_t_5);

  /* "src/llfuse/fuse_api.pxi":169
 *     name_b = str2bytes(name)
 *     cpath = <char*> path_b
 *     cname = <char*> name_b             # <<<<<<<<<<<<<<
 * 
 *     bufsize = size_guess
 */
  __pyx_t_5 = __Pyx_PyObject_AsString(__pyx_v_name_b); if (unlikely((!__pyx_t_5) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 169; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_v_cname = ((char *)__pyx_t_5);

  /* "src/llfuse/fuse_api.pxi":171
 *     cname = <char*> name_b
 * 
 *     bufsize = size_guess             # <<<<<<<<<<<<<<
 *     buf = <char*> stdlib.malloc(bufsize * sizeof(char))
 * 
 */
  __pyx_v_bufsize = __pyx_v_size_guess;

  /* "src/llfuse/fuse_api.pxi":172
 * 
 *     bufsize = size_guess
 *     buf = <char*> stdlib.malloc(bufsize * sizeof(char))             # <<<<<<<<<<<<<<
 * 
 *     if buf is NULL:
 */
  __pyx_v_buf = ((char *)malloc((__pyx_v_bufsize * (sizeof(char)))));

  /* "src/llfuse/fuse_api.pxi":174
 *     buf = <char*> stdlib.malloc(bufsize * sizeof(char))
 * 
 *     if buf is NULL:             # <<<<<<<<<<<<<<
 *         cpython.exc.PyErr_NoMemory()
 * 
 */
  __pyx_t_3 = ((__pyx_v_buf == NULL) != 0);
  if (__pyx_t_3) {

    /* "src/llfuse/fuse_api.pxi":175
 * 
 *     if buf is NULL:
 *         cpython.exc.PyErr_NoMemory()             # <<<<<<<<<<<<<<
 * 
 *     try:
 */
    __pyx_t_6 = PyErr_NoMemory(); if (unlikely(__pyx_t_6 == NULL)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 175; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    goto __pyx_L9;
  }
  __pyx_L9:;

  /* "src/llfuse/fuse_api.pxi":177
 *         cpython.exc.PyErr_NoMemory()
 * 
 *     try:             # <<<<<<<<<<<<<<
 *         with nogil:
 *             IF TARGET_PLATFORM == 'freebsd':
 */
  /*try:*/ {

    /* "src/llfuse/fuse_api.pxi":178
 * 
 *     try:
 *         with nogil:             # <<<<<<<<<<<<<<
 *             IF TARGET_PLATFORM == 'freebsd':
 *                 ret = xattr.extattr_get_file(cpath, cnamespace, cname,
 */
    {
        #ifdef WITH_THREAD
        PyThreadState *_save;
        Py_UNBLOCK_THREADS
        #endif
        /*try:*/ {

          /* "src/llfuse/fuse_api.pxi":180
 *         with nogil:
 *             IF TARGET_PLATFORM == 'freebsd':
 *                 ret = xattr.extattr_get_file(cpath, cnamespace, cname,             # <<<<<<<<<<<<<<
 *                                              buf, bufsize)
 *                 if ret == bufsize:
 */
          __pyx_v_ret = extattr_get_file(__pyx_v_cpath, __pyx_v_cnamespace, __pyx_v_cname, __pyx_v_buf, __pyx_v_bufsize);

          /* "src/llfuse/fuse_api.pxi":182
 *                 ret = xattr.extattr_get_file(cpath, cnamespace, cname,
 *                                              buf, bufsize)
 *                 if ret == bufsize:             # <<<<<<<<<<<<<<
 *                     ret = -1
 *                     errno.errno = errno.ERANGE
 */
          __pyx_t_3 = ((__pyx_v_ret == __pyx_v_bufsize) != 0);
          if (__pyx_t_3) {

            /* "src/llfuse/fuse_api.pxi":183
 *                                              buf, bufsize)
 *                 if ret == bufsize:
 *                     ret = -1             # <<<<<<<<<<<<<<
 *                     errno.errno = errno.ERANGE
 *             ELSE:
 */
            __pyx_v_ret = -1;

            /* "src/llfuse/fuse_api.pxi":184
 *                 if ret == bufsize:
 *                     ret = -1
 *                     errno.errno = errno.ERANGE             # <<<<<<<<<<<<<<
 *             ELSE:
 *                 ret = xattr.getxattr(cpath, cname, buf, bufsize)
 */
            errno = ERANGE;
            goto __pyx_L16;
          }
          __pyx_L16:;
        }

        /* "src/llfuse/fuse_api.pxi":178
 * 
 *     try:
 *         with nogil:             # <<<<<<<<<<<<<<
 *             IF TARGET_PLATFORM == 'freebsd':
 *                 ret = xattr.extattr_get_file(cpath, cnamespace, cname,
 */
        /*finally:*/ {
          /*normal exit:*/{
            #ifdef WITH_THREAD
            Py_BLOCK_THREADS
            #endif
            goto __pyx_L15;
          }
          __pyx_L15:;
        }
    }

    /* "src/llfuse/fuse_api.pxi":188
 *                 ret = xattr.getxattr(cpath, cname, buf, bufsize)
 * 
 *         if ret < 0 and errno.errno == errno.ERANGE:             # <<<<<<<<<<<<<<
 *             with nogil:
 *                 IF TARGET_PLATFORM == 'freebsd':
 */
    __pyx_t_2 = ((__pyx_v_ret < 0) != 0);
    if (__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L18_bool_binop_done;
    }
    __pyx_t_2 = ((errno == ERANGE) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L18_bool_binop_done:;
    if (__pyx_t_3) {

      /* "src/llfuse/fuse_api.pxi":189
 * 
 *         if ret < 0 and errno.errno == errno.ERANGE:
 *             with nogil:             # <<<<<<<<<<<<<<
 *                 IF TARGET_PLATFORM == 'freebsd':
 *                     ret = xattr.extattr_get_file(cpath, cnamespace, cname,
 */
      {
          #ifdef WITH_THREAD
          PyThreadState *_save;
          Py_UNBLOCK_THREADS
          #endif
          /*try:*/ {

            /* "src/llfuse/fuse_api.pxi":191
 *             with nogil:
 *                 IF TARGET_PLATFORM == 'freebsd':
 *                     ret = xattr.extattr_get_file(cpath, cnamespace, cname,             # <<<<<<<<<<<<<<
 *                                                  NULL, 0)
 *                 ELSE:
 */
            __pyx_v_ret = extattr_get_file(__pyx_v_cpath, __pyx_v_cnamespace, __pyx_v_cname, NULL, 0);
          }

          /* "src/llfuse/fuse_api.pxi":189
 * 
 *         if ret < 0 and errno.errno == errno.ERANGE:
 *             with nogil:             # <<<<<<<<<<<<<<
 *                 IF TARGET_PLATFORM == 'freebsd':
 *                     ret = xattr.extattr_get_file(cpath, cnamespace, cname,
 */
          /*finally:*/ {
            /*normal exit:*/{
              #ifdef WITH_THREAD
              Py_BLOCK_THREADS
              #endif
              goto __pyx_L22;
            }
            __pyx_L22:;
          }
      }

      /* "src/llfuse/fuse_api.pxi":195
 *                 ELSE:
 *                     ret = xattr.getxattr(cpath, cname, NULL, 0)
 *             if ret < 0:             # <<<<<<<<<<<<<<
 *                 raise OSError(errno.errno, strerror(errno.errno), path)
 *             bufsize = <size_t> ret
 */
      __pyx_t_3 = ((__pyx_v_ret < 0) != 0);
      if (__pyx_t_3) {

        /* "src/llfuse/fuse_api.pxi":196
 *                     ret = xattr.getxattr(cpath, cname, NULL, 0)
 *             if ret < 0:
 *                 raise OSError(errno.errno, strerror(errno.errno), path)             # <<<<<<<<<<<<<<
 *             bufsize = <size_t> ret
 *             stdlib.free(buf)
 */
        __pyx_t_1 = __Pyx_PyInt_From_int(errno); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 196; __pyx_clineno = __LINE__; goto __pyx_L11_error;}
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_7 = __Pyx_GetModuleGlobalName(__pyx_n_s_strerror); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 196; __pyx_clineno = __LINE__; goto __pyx_L11_error;}
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_8 = __Pyx_PyInt_From_int(errno); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 196; __pyx_clineno = __LINE__; goto __pyx_L11_error;}
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_9 = NULL;
        if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_7))) {
          __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_7);
          if (likely(__pyx_t_9)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
            __Pyx_INCREF(__pyx_t_9);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_7, function);
          }
        }
        if (!__pyx_t_9) {
          __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_8); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 196; __pyx_clineno = __LINE__; goto __pyx_L11_error;}
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
          __Pyx_GOTREF(__pyx_t_4);
        } else {
          __pyx_t_10 = PyTuple_New(1+1); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 196; __pyx_clineno = __LINE__; goto __pyx_L11_error;}
          __Pyx_GOTREF(__pyx_t_10);
          PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_9); __Pyx_GIVEREF(__pyx_t_9); __pyx_t_9 = NULL;
          PyTuple_SET_ITEM(__pyx_t_10, 0+1, __pyx_t_8);
          __Pyx_GIVEREF(__pyx_t_8);
          __pyx_t_8 = 0;
          __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_10, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 196; __pyx_clineno = __LINE__; goto __pyx_L11_error;}
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
        }
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __pyx_t_7 = PyTuple_New(3); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 196; __pyx_clineno = __LINE__; goto __pyx_L11_error;}
        __Pyx_GOTREF(__pyx_t_7);
        PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_1);
        __Pyx_GIVEREF(__pyx_t_1);
        PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_4);
        __Pyx_GIVEREF(__pyx_t_4);
        __Pyx_INCREF(__pyx_v_path);
        PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_v_path);
        __Pyx_GIVEREF(__pyx_v_path);
        __pyx_t_1 = 0;
        __pyx_t_4 = 0;
        __pyx_t_4 = __Pyx_PyObject_Call(__pyx_builtin_OSError, __pyx_t_7, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 196; __pyx_clineno = __LINE__; goto __pyx_L11_error;}
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_Raise(__pyx_t_4, 0, 0, 0);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        {__pyx_filename = __pyx_f[2]; __pyx_lineno = 196; __pyx_clineno = __LINE__; goto __pyx_L11_error;}
      }

      /* "src/llfuse/fuse_api.pxi":197
 *             if ret < 0:
 *                 raise OSError(errno.errno, strerror(errno.errno), path)
 *             bufsize = <size_t> ret             # <<<<<<<<<<<<<<
 *             stdlib.free(buf)
 *             buf = <char*> stdlib.malloc(bufsize * sizeof(char))
 */
      __pyx_v_bufsize = ((size_t)__pyx_v_ret);

      /* "src/llfuse/fuse_api.pxi":198
 *                 raise OSError(errno.errno, strerror(errno.errno), path)
 *             bufsize = <size_t> ret
 *             stdlib.free(buf)             # <<<<<<<<<<<<<<
 *             buf = <char*> stdlib.malloc(bufsize * sizeof(char))
 *             if buf is NULL:
 */
      free(__pyx_v_buf);

      /* "src/llfuse/fuse_api.pxi":199
 *             bufsize = <size_t> ret
 *             stdlib.free(buf)
 *             buf = <char*> stdlib.malloc(bufsize * sizeof(char))             # <<<<<<<<<<<<<<
 *             if buf is NULL:
 *                 cpython.exc.PyErr_NoMemory()
 */
      __pyx_v_buf = ((char *)malloc((__pyx_v_bufsize * (sizeof(char)))));

      /* "src/llfuse/fuse_api.pxi":200
 *             stdlib.free(buf)
 *             buf = <char*> stdlib.malloc(bufsize * sizeof(char))
 *             if buf is NULL:             # <<<<<<<<<<<<<<
 *                 cpython.exc.PyErr_NoMemory()
 * 
 */
      __pyx_t_3 = ((__pyx_v_buf == NULL) != 0);
      if (__pyx_t_3) {

        /* "src/llfuse/fuse_api.pxi":201
 *             buf = <char*> stdlib.malloc(bufsize * sizeof(char))
 *             if buf is NULL:
 *                 cpython.exc.PyErr_NoMemory()             # <<<<<<<<<<<<<<
 * 
 *             with nogil:
 */
        __pyx_t_6 = PyErr_NoMemory(); if (unlikely(__pyx_t_6 == NULL)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 201; __pyx_clineno = __LINE__; goto __pyx_L11_error;}
        goto __pyx_L24;
      }
      __pyx_L24:;

      /* "src/llfuse/fuse_api.pxi":203
 *                 cpython.exc.PyErr_NoMemory()
 * 
 *             with nogil:             # <<<<<<<<<<<<<<
 *                 IF TARGET_PLATFORM == 'freebsd':
 *                     ret = xattr.extattr_get_file(cpath, cnamespace, cname,
 */
      {
          #ifdef WITH_THREAD
          PyThreadState *_save;
          Py_UNBLOCK_THREADS
          #endif
          /*try:*/ {

            /* "src/llfuse/fuse_api.pxi":205
 *             with nogil:
 *                 IF TARGET_PLATFORM == 'freebsd':
 *                     ret = xattr.extattr_get_file(cpath, cnamespace, cname,             # <<<<<<<<<<<<<<
 *                                                  buf, bufsize)
 *                 ELSE:
 */
            __pyx_v_ret = extattr_get_file(__pyx_v_cpath, __pyx_v_cnamespace, __pyx_v_cname, __pyx_v_buf, __pyx_v_bufsize);
          }

          /* "src/llfuse/fuse_api.pxi":203
 *                 cpython.exc.PyErr_NoMemory()
 * 
 *             with nogil:             # <<<<<<<<<<<<<<
 *                 IF TARGET_PLATFORM == 'freebsd':
 *                     ret = xattr.extattr_get_file(cpath, cnamespace, cname,
 */
          /*finally:*/ {
            /*normal exit:*/{
              #ifdef WITH_THREAD
              Py_BLOCK_THREADS
              #endif
              goto __pyx_L27;
            }
            __pyx_L27:;
          }
      }
      goto __pyx_L17;
    }
    __pyx_L17:;

    /* "src/llfuse/fuse_api.pxi":210
 *                     ret = xattr.getxattr(cpath, cname, buf, bufsize)
 * 
 *         if ret < 0:             # <<<<<<<<<<<<<<
 *             raise OSError(errno.errno, strerror(errno.errno), path)
 * 
 */
    __pyx_t_3 = ((__pyx_v_ret < 0) != 0);
    if (__pyx_t_3) {

      /* "src/llfuse/fuse_api.pxi":211
 * 
 *         if ret < 0:
 *             raise OSError(errno.errno, strerror(errno.errno), path)             # <<<<<<<<<<<<<<
 * 
 *         return PyBytes_FromStringAndSize(buf, ret)
 */
      __pyx_t_4 = __Pyx_PyInt_From_int(errno); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 211; __pyx_clineno = __LINE__; goto __pyx_L11_error;}
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_strerror); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 211; __pyx_clineno = __LINE__; goto __pyx_L11_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_10 = __Pyx_PyInt_From_int(errno); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 211; __pyx_clineno = __LINE__; goto __pyx_L11_error;}
      __Pyx_GOTREF(__pyx_t_10);
      __pyx_t_8 = NULL;
      if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_1))) {
        __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_1);
        if (likely(__pyx_t_8)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
          __Pyx_INCREF(__pyx_t_8);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_1, function);
        }
      }
      if (!__pyx_t_8) {
        __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_10); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 211; __pyx_clineno = __LINE__; goto __pyx_L11_error;}
        __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
        __Pyx_GOTREF(__pyx_t_7);
      } else {
        __pyx_t_9 = PyTuple_New(1+1); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 211; __pyx_clineno = __LINE__; goto __pyx_L11_error;}
        __Pyx_GOTREF(__pyx_t_9);
        PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_8); __Pyx_GIVEREF(__pyx_t_8); __pyx_t_8 = NULL;
        PyTuple_SET_ITEM(__pyx_t_9, 0+1, __pyx_t_10);
        __Pyx_GIVEREF(__pyx_t_10);
        __pyx_t_10 = 0;
        __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_9, NULL); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 211; __pyx_clineno = __LINE__; goto __pyx_L11_error;}
        __Pyx_GOTREF(__pyx_t_7);
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      }
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 211; __pyx_clineno = __LINE__; goto __pyx_L11_error;}
      __Pyx_GOTREF(__pyx_t_1);
      PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_4);
      __Pyx_GIVEREF(__pyx_t_4);
      PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_7);
      __Pyx_GIVEREF(__pyx_t_7);
      __Pyx_INCREF(__pyx_v_path);
      PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_path);
      __Pyx_GIVEREF(__pyx_v_path);
      __pyx_t_4 = 0;
      __pyx_t_7 = 0;
      __pyx_t_7 = __Pyx_PyObject_Call(__pyx_builtin_OSError, __pyx_t_1, NULL); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 211; __pyx_clineno = __LINE__; goto __pyx_L11_error;}
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_Raise(__pyx_t_7, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      {__pyx_filename = __pyx_f[2]; __pyx_lineno = 211; __pyx_clineno = __LINE__; goto __pyx_L11_error;}
    }

    /* "src/llfuse/fuse_api.pxi":213
 *             raise OSError(errno.errno, strerror(errno.errno), path)
 * 
 *         return PyBytes_FromStringAndSize(buf, ret)             # <<<<<<<<<<<<<<
 * 
 *     finally:
 */
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_7 = PyBytes_FromStringAndSize(__pyx_v_buf, __pyx_v_ret); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 213; __pyx_clineno = __LINE__; goto __pyx_L11_error;}
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_r = __pyx_t_7;
    __pyx_t_7 = 0;
    goto __pyx_L10_return;
  }

  /* "src/llfuse/fuse_api.pxi":216
 * 
 *     finally:
 *         stdlib.free(buf)             # <<<<<<<<<<<<<<
 * 
 * def init(ops, mountpoint, list args):
 */
  /*finally:*/ {
    /*exception exit:*/{
      __pyx_L11_error:;
      __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_t_19 = 0;
      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
      __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
      if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_17, &__pyx_t_18, &__pyx_t_19);
      if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_14, &__pyx_t_15, &__pyx_t_16) < 0)) __Pyx_ErrFetch(&__pyx_t_14, &__pyx_t_15, &__pyx_t_16);
      __Pyx_XGOTREF(__pyx_t_14);
      __Pyx_XGOTREF(__pyx_t_15);
      __Pyx_XGOTREF(__pyx_t_16);
      __Pyx_XGOTREF(__pyx_t_17);
      __Pyx_XGOTREF(__pyx_t_18);
      __Pyx_XGOTREF(__pyx_t_19);
      __pyx_t_11 = __pyx_lineno; __pyx_t_12 = __pyx_clineno; __pyx_t_13 = __pyx_filename;
      {
        free(__pyx_v_buf);
      }
      if (PY_MAJOR_VERSION >= 3) {
        __Pyx_XGIVEREF(__pyx_t_17);
        __Pyx_XGIVEREF(__pyx_t_18);
        __Pyx_XGIVEREF(__pyx_t_19);
        __Pyx_ExceptionReset(__pyx_t_17, __pyx_t_18, __pyx_t_19);
      }
      __Pyx_XGIVEREF(__pyx_t_14);
      __Pyx_XGIVEREF(__pyx_t_15);
      __Pyx_XGIVEREF(__pyx_t_16);
      __Pyx_ErrRestore(__pyx_t_14, __pyx_t_15, __pyx_t_16);
      __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_t_19 = 0;
      __pyx_lineno = __pyx_t_11; __pyx_clineno = __pyx_t_12; __pyx_filename = __pyx_t_13;
      goto __pyx_L1_error;
    }
    __pyx_L10_return: {
      __pyx_t_19 = __pyx_r;
      __pyx_r = 0;
      free(__pyx_v_buf);
      __pyx_r = __pyx_t_19;
      __pyx_t_19 = 0;
      goto __pyx_L0;
    }
  }

  /* "src/llfuse/fuse_api.pxi":122
 * 
 * 
 * def getxattr(path, name, int size_guess=128, namespace='user'):             # <<<<<<<<<<<<<<
 *     '''Get extended attribute
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_AddTraceback("llfuse.capi.getxattr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_path_b);
  __Pyx_XDECREF(__pyx_v_name_b);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/llfuse/fuse_api.pxi":218
 *         stdlib.free(buf)
 * 
 * def init(ops, mountpoint, list args):             # <<<<<<<<<<<<<<
 *     '''Initialize and mount FUSE file system
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_6llfuse_4capi_9init(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_6llfuse_4capi_8init[] = "init(ops, mountpoint, list args)\nInitialize and mount FUSE file system\n\n    *ops* has to be an instance of the `Operations` class (or another\n    class defining the same methods).\n\n    *args* has to be a list of strings. Valid options are listed under ``struct\n    fuse_opt fuse_mount_opts[]``\n    (`mount.c:82 <http://fuse.git.sourceforge.net/git/gitweb.cgi?p=fuse/fuse;f=lib/mount.c;hb=HEAD#l82>`_)\n    and ``struct fuse_opt fuse_ll_opts[]``\n    (`fuse_lowlevel_c:2209 <http://fuse.git.sourceforge.net/git/gitweb.cgi?p=fuse/fuse;f=lib/fuse_lowlevel.c;hb=HEAD#l2532>`_).\n    ";
static PyMethodDef __pyx_mdef_6llfuse_4capi_9init = {"init", (PyCFunction)__pyx_pw_6llfuse_4capi_9init, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6llfuse_4capi_8init};
static PyObject *__pyx_pw_6llfuse_4capi_9init(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_ops = 0;
  PyObject *__pyx_v_mountpoint = 0;
  PyObject *__pyx_v_args = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("init (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ops,&__pyx_n_s_mountpoint,&__pyx_n_s_args,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_ops)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_mountpoint)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("init", 1, 3, 3, 1); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 218; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
        case  2:
        if (likely((values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_args)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("init", 1, 3, 3, 2); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 218; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "init") < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 218; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_ops = values[0];
    __pyx_v_mountpoint = values[1];
    __pyx_v_args = ((PyObject*)values[2]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("init", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 218; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("llfuse.capi.init", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_args), (&PyList_Type), 1, "args", 1))) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 218; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_r = __pyx_pf_6llfuse_4capi_8init(__pyx_self, __pyx_v_ops, __pyx_v_mountpoint, __pyx_v_args);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6llfuse_4capi_8init(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_ops, PyObject *__pyx_v_mountpoint, PyObject *__pyx_v_args) {
  struct fuse_args __pyx_v_f_args;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  int __pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  char *__pyx_t_7;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("init", 0);

  /* "src/llfuse/fuse_api.pxi":231
 *     '''
 * 
 *     log.debug('Initializing llfuse')             # <<<<<<<<<<<<<<
 *     cdef fuse_args f_args
 * 
 */
  __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_log); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 231; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_debug); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 231; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_tuple__55, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 231; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "src/llfuse/fuse_api.pxi":234
 *     cdef fuse_args f_args
 * 
 *     if not isinstance(mountpoint, str_t):             # <<<<<<<<<<<<<<
 *         raise TypeError('*mountpoint_* argument must be of type str')
 * 
 */
  __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_str_t); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 234; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = PyObject_IsInstance(__pyx_v_mountpoint, __pyx_t_1); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 234; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_4 = ((!(__pyx_t_3 != 0)) != 0);
  if (__pyx_t_4) {

    /* "src/llfuse/fuse_api.pxi":235
 * 
 *     if not isinstance(mountpoint, str_t):
 *         raise TypeError('*mountpoint_* argument must be of type str')             # <<<<<<<<<<<<<<
 * 
 *     global operations
 */
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__56, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 235; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_Raise(__pyx_t_1, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    {__pyx_filename = __pyx_f[2]; __pyx_lineno = 235; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  }

  /* "src/llfuse/fuse_api.pxi":243
 *     global channel
 * 
 *     mountpoint_b = str2bytes(os.path.abspath(mountpoint))             # <<<<<<<<<<<<<<
 *     operations = ops
 * 
 */
  __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_os); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 243; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_path); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 243; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_abspath); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 243; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = NULL;
  if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  if (!__pyx_t_5) {
    __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_mountpoint); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 243; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
  } else {
    __pyx_t_6 = PyTuple_New(1+1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 243; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_6);
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_5); __Pyx_GIVEREF(__pyx_t_5); __pyx_t_5 = NULL;
    __Pyx_INCREF(__pyx_v_mountpoint);
    PyTuple_SET_ITEM(__pyx_t_6, 0+1, __pyx_v_mountpoint);
    __Pyx_GIVEREF(__pyx_v_mountpoint);
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_6, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 243; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __pyx_f_6llfuse_4capi_str2bytes(__pyx_t_1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 243; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_XGOTREF(__pyx_v_6llfuse_4capi_mountpoint_b);
  __Pyx_DECREF_SET(__pyx_v_6llfuse_4capi_mountpoint_b, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_2);
  __pyx_t_2 = 0;

  /* "src/llfuse/fuse_api.pxi":244
 * 
 *     mountpoint_b = str2bytes(os.path.abspath(mountpoint))
 *     operations = ops             # <<<<<<<<<<<<<<
 * 
 *     # Initialize Python thread support
 */
  __Pyx_INCREF(__pyx_v_ops);
  __Pyx_XGOTREF(__pyx_v_6llfuse_4capi_operations);
  __Pyx_DECREF_SET(__pyx_v_6llfuse_4capi_operations, __pyx_v_ops);
  __Pyx_GIVEREF(__pyx_v_ops);

  /* "src/llfuse/fuse_api.pxi":247
 * 
 *     # Initialize Python thread support
 *     PyEval_InitThreads()             # <<<<<<<<<<<<<<
 * 
 *     make_fuse_args(args, &f_args)
 */
  PyEval_InitThreads();

  /* "src/llfuse/fuse_api.pxi":249
 *     PyEval_InitThreads()
 * 
 *     make_fuse_args(args, &f_args)             # <<<<<<<<<<<<<<
 *     log.debug('Calling fuse_mount')
 *     channel = fuse_mount(<char*>mountpoint_b, &f_args)
 */
  __pyx_t_2 = __pyx_f_6llfuse_4capi_make_fuse_args(__pyx_v_args, (&__pyx_v_f_args)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 249; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/llfuse/fuse_api.pxi":250
 * 
 *     make_fuse_args(args, &f_args)
 *     log.debug('Calling fuse_mount')             # <<<<<<<<<<<<<<
 *     channel = fuse_mount(<char*>mountpoint_b, &f_args)
 *     if not channel:
 */
  __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_log); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 250; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_debug); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 250; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_tuple__57, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 250; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/llfuse/fuse_api.pxi":251
 *     make_fuse_args(args, &f_args)
 *     log.debug('Calling fuse_mount')
 *     channel = fuse_mount(<char*>mountpoint_b, &f_args)             # <<<<<<<<<<<<<<
 *     if not channel:
 *         raise RuntimeError('fuse_mount failed')
 */
  __pyx_t_7 = __Pyx_PyObject_AsString(__pyx_v_6llfuse_4capi_mountpoint_b); if (unlikely((!__pyx_t_7) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 251; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_v_6llfuse_4capi_channel = fuse_mount(((char *)__pyx_t_7), (&__pyx_v_f_args));

  /* "src/llfuse/fuse_api.pxi":252
 *     log.debug('Calling fuse_mount')
 *     channel = fuse_mount(<char*>mountpoint_b, &f_args)
 *     if not channel:             # <<<<<<<<<<<<<<
 *         raise RuntimeError('fuse_mount failed')
 * 
 */
  __pyx_t_4 = ((!(__pyx_v_6llfuse_4capi_channel != 0)) != 0);
  if (__pyx_t_4) {

    /* "src/llfuse/fuse_api.pxi":253
 *     channel = fuse_mount(<char*>mountpoint_b, &f_args)
 *     if not channel:
 *         raise RuntimeError('fuse_mount failed')             # <<<<<<<<<<<<<<
 * 
 *     log.debug('Calling fuse_lowlevel_new')
 */
    __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__58, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 253; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_Raise(__pyx_t_2, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    {__pyx_filename = __pyx_f[2]; __pyx_lineno = 253; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  }

  /* "src/llfuse/fuse_api.pxi":255
 *         raise RuntimeError('fuse_mount failed')
 * 
 *     log.debug('Calling fuse_lowlevel_new')             # <<<<<<<<<<<<<<
 *     init_fuse_ops()
 *     session = fuse_lowlevel_new(&f_args, &fuse_ops, sizeof(fuse_ops), NULL)
 */
  __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_log); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 255; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_debug); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 255; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_tuple__59, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 255; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/llfuse/fuse_api.pxi":256
 * 
 *     log.debug('Calling fuse_lowlevel_new')
 *     init_fuse_ops()             # <<<<<<<<<<<<<<
 *     session = fuse_lowlevel_new(&f_args, &fuse_ops, sizeof(fuse_ops), NULL)
 *     if not session:
 */
  __pyx_f_6llfuse_4capi_init_fuse_ops();

  /* "src/llfuse/fuse_api.pxi":257
 *     log.debug('Calling fuse_lowlevel_new')
 *     init_fuse_ops()
 *     session = fuse_lowlevel_new(&f_args, &fuse_ops, sizeof(fuse_ops), NULL)             # <<<<<<<<<<<<<<
 *     if not session:
 *         fuse_unmount(<char*>mountpoint_b, channel)
 */
  __pyx_v_6llfuse_4capi_session = fuse_lowlevel_new((&__pyx_v_f_args), (&__pyx_v_6llfuse_4capi_fuse_ops), (sizeof(__pyx_v_6llfuse_4capi_fuse_ops)), NULL);

  /* "src/llfuse/fuse_api.pxi":258
 *     init_fuse_ops()
 *     session = fuse_lowlevel_new(&f_args, &fuse_ops, sizeof(fuse_ops), NULL)
 *     if not session:             # <<<<<<<<<<<<<<
 *         fuse_unmount(<char*>mountpoint_b, channel)
 *         raise RuntimeError("fuse_lowlevel_new() failed")
 */
  __pyx_t_4 = ((!(__pyx_v_6llfuse_4capi_session != 0)) != 0);
  if (__pyx_t_4) {

    /* "src/llfuse/fuse_api.pxi":259
 *     session = fuse_lowlevel_new(&f_args, &fuse_ops, sizeof(fuse_ops), NULL)
 *     if not session:
 *         fuse_unmount(<char*>mountpoint_b, channel)             # <<<<<<<<<<<<<<
 *         raise RuntimeError("fuse_lowlevel_new() failed")
 * 
 */
    __pyx_t_7 = __Pyx_PyObject_AsString(__pyx_v_6llfuse_4capi_mountpoint_b); if (unlikely((!__pyx_t_7) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 259; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    fuse_unmount(((char *)__pyx_t_7), __pyx_v_6llfuse_4capi_channel);

    /* "src/llfuse/fuse_api.pxi":260
 *     if not session:
 *         fuse_unmount(<char*>mountpoint_b, channel)
 *         raise RuntimeError("fuse_lowlevel_new() failed")             # <<<<<<<<<<<<<<
 * 
 *     log.debug('Calling fuse_set_signal_handlers')
 */
    __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__60, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 260; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_Raise(__pyx_t_2, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    {__pyx_filename = __pyx_f[2]; __pyx_lineno = 260; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  }

  /* "src/llfuse/fuse_api.pxi":262
 *         raise RuntimeError("fuse_lowlevel_new() failed")
 * 
 *     log.debug('Calling fuse_set_signal_handlers')             # <<<<<<<<<<<<<<
 *     if fuse_set_signal_handlers(session) == -1:
 *         fuse_session_destroy(session)
 */
  __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_log); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 262; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_debug); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 262; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_tuple__61, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 262; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/llfuse/fuse_api.pxi":263
 * 
 *     log.debug('Calling fuse_set_signal_handlers')
 *     if fuse_set_signal_handlers(session) == -1:             # <<<<<<<<<<<<<<
 *         fuse_session_destroy(session)
 *         fuse_unmount(<char*>mountpoint_b, channel)
 */
  __pyx_t_4 = ((fuse_set_signal_handlers(__pyx_v_6llfuse_4capi_session) == -1) != 0);
  if (__pyx_t_4) {

    /* "src/llfuse/fuse_api.pxi":264
 *     log.debug('Calling fuse_set_signal_handlers')
 *     if fuse_set_signal_handlers(session) == -1:
 *         fuse_session_destroy(session)             # <<<<<<<<<<<<<<
 *         fuse_unmount(<char*>mountpoint_b, channel)
 *         raise RuntimeError("fuse_set_signal_handlers() failed")
 */
    fuse_session_destroy(__pyx_v_6llfuse_4capi_session);

    /* "src/llfuse/fuse_api.pxi":265
 *     if fuse_set_signal_handlers(session) == -1:
 *         fuse_session_destroy(session)
 *         fuse_unmount(<char*>mountpoint_b, channel)             # <<<<<<<<<<<<<<
 *         raise RuntimeError("fuse_set_signal_handlers() failed")
 * 
 */
    __pyx_t_7 = __Pyx_PyObject_AsString(__pyx_v_6llfuse_4capi_mountpoint_b); if (unlikely((!__pyx_t_7) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 265; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    fuse_unmount(((char *)__pyx_t_7), __pyx_v_6llfuse_4capi_channel);

    /* "src/llfuse/fuse_api.pxi":266
 *         fuse_session_destroy(session)
 *         fuse_unmount(<char*>mountpoint_b, channel)
 *         raise RuntimeError("fuse_set_signal_handlers() failed")             # <<<<<<<<<<<<<<
 * 
 *     log.debug('Calling fuse_session_add_chan')
 */
    __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__62, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 266; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_Raise(__pyx_t_2, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    {__pyx_filename = __pyx_f[2]; __pyx_lineno = 266; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  }

  /* "src/llfuse/fuse_api.pxi":268
 *         raise RuntimeError("fuse_set_signal_handlers() failed")
 * 
 *     log.debug('Calling fuse_session_add_chan')             # <<<<<<<<<<<<<<
 *     fuse_session_add_chan(session, channel)
 * 
 */
  __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_log); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 268; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_debug); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 268; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_tuple__63, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 268; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/llfuse/fuse_api.pxi":269
 * 
 *     log.debug('Calling fuse_session_add_chan')
 *     fuse_session_add_chan(session, channel)             # <<<<<<<<<<<<<<
 * 
 * def main(single=False):
 */
  fuse_session_add_chan(__pyx_v_6llfuse_4capi_session, __pyx_v_6llfuse_4capi_channel);

  /* "src/llfuse/fuse_api.pxi":218
 *         stdlib.free(buf)
 * 
 * def init(ops, mountpoint, list args):             # <<<<<<<<<<<<<<
 *     '''Initialize and mount FUSE file system
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("llfuse.capi.init", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/llfuse/fuse_api.pxi":271
 *     fuse_session_add_chan(session, channel)
 * 
 * def main(single=False):             # <<<<<<<<<<<<<<
 *     '''Run FUSE main loop
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_6llfuse_4capi_11main(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_6llfuse_4capi_10main[] = "main(single=False)\nRun FUSE main loop\n\n    If *single* is True, all requests will be handled sequentially by\n    the thread that has called `main`. If *single* is False, multiple\n    worker threads will be started and work on requests concurrently.\n    ";
static PyMethodDef __pyx_mdef_6llfuse_4capi_11main = {"main", (PyCFunction)__pyx_pw_6llfuse_4capi_11main, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6llfuse_4capi_10main};
static PyObject *__pyx_pw_6llfuse_4capi_11main(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_single = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("main (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_single,0};
    PyObject* values[1] = {0};
    values[0] = ((PyObject *)Py_False);
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_single);
          if (value) { values[0] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "main") < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 271; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_single = values[0];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("main", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 271; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("llfuse.capi.main", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6llfuse_4capi_10main(__pyx_self, __pyx_v_single);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6llfuse_4capi_10main(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_single) {
  int __pyx_v_ret;
  PyObject *__pyx_v_t = NULL;
  PyObject *__pyx_v_tmp = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  int __pyx_t_1;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("main", 0);

  /* "src/llfuse/fuse_api.pxi":282
 *     global exc_info
 * 
 *     if session == NULL:             # <<<<<<<<<<<<<<
 *         raise RuntimeError('Need to call init() before main()')
 * 
 */
  __pyx_t_1 = ((__pyx_v_6llfuse_4capi_session == NULL) != 0);
  if (__pyx_t_1) {

    /* "src/llfuse/fuse_api.pxi":283
 * 
 *     if session == NULL:
 *         raise RuntimeError('Need to call init() before main()')             # <<<<<<<<<<<<<<
 * 
 *     # Start notification handling thread
 */
    __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__64, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 283; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_Raise(__pyx_t_2, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    {__pyx_filename = __pyx_f[2]; __pyx_lineno = 283; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  }

  /* "src/llfuse/fuse_api.pxi":286
 * 
 *     # Start notification handling thread
 *     t = threading.Thread(target=_notify_loop)             # <<<<<<<<<<<<<<
 *     t.daemon = True
 *     t.start()
 */
  __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_threading); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 286; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_Thread); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 286; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyDict_New(); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 286; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_notify_loop); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 286; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_target, __pyx_t_4) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 286; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_empty_tuple, __pyx_t_2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 286; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_t = __pyx_t_4;
  __pyx_t_4 = 0;

  /* "src/llfuse/fuse_api.pxi":287
 *     # Start notification handling thread
 *     t = threading.Thread(target=_notify_loop)
 *     t.daemon = True             # <<<<<<<<<<<<<<
 *     t.start()
 * 
 */
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_t, __pyx_n_s_daemon, Py_True) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 287; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "src/llfuse/fuse_api.pxi":288
 *     t = threading.Thread(target=_notify_loop)
 *     t.daemon = True
 *     t.start()             # <<<<<<<<<<<<<<
 * 
 *     exc_info = None
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_t, __pyx_n_s_start); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 288; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  if (__pyx_t_3) {
    __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 288; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  } else {
    __pyx_t_4 = __Pyx_PyObject_CallNoArg(__pyx_t_2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 288; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  }
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

  /* "src/llfuse/fuse_api.pxi":290
 *     t.start()
 * 
 *     exc_info = None             # <<<<<<<<<<<<<<
 * 
 *     if single:
 */
  __Pyx_INCREF(Py_None);
  __Pyx_XGOTREF(__pyx_v_6llfuse_4capi_exc_info);
  __Pyx_DECREF_SET(__pyx_v_6llfuse_4capi_exc_info, Py_None);
  __Pyx_GIVEREF(Py_None);

  /* "src/llfuse/fuse_api.pxi":292
 *     exc_info = None
 * 
 *     if single:             # <<<<<<<<<<<<<<
 *         log.debug('Calling fuse_session_loop')
 *         with nogil:
 */
  __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_single); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 292; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_1) {

    /* "src/llfuse/fuse_api.pxi":293
 * 
 *     if single:
 *         log.debug('Calling fuse_session_loop')             # <<<<<<<<<<<<<<
 *         with nogil:
 *             ret = fuse_session_loop(session)
 */
    __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_log); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 293; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_debug); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 293; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_tuple__65, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 293; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;

    /* "src/llfuse/fuse_api.pxi":294
 *     if single:
 *         log.debug('Calling fuse_session_loop')
 *         with nogil:             # <<<<<<<<<<<<<<
 *             ret = fuse_session_loop(session)
 *         _notify_queue.put(None, block=True, timeout=5) # Stop notification thread
 */
    {
        #ifdef WITH_THREAD
        PyThreadState *_save;
        Py_UNBLOCK_THREADS
        #endif
        /*try:*/ {

          /* "src/llfuse/fuse_api.pxi":295
 *         log.debug('Calling fuse_session_loop')
 *         with nogil:
 *             ret = fuse_session_loop(session)             # <<<<<<<<<<<<<<
 *         _notify_queue.put(None, block=True, timeout=5) # Stop notification thread
 *         if ret != 0:
 */
          __pyx_v_ret = fuse_session_loop(__pyx_v_6llfuse_4capi_session);
        }

        /* "src/llfuse/fuse_api.pxi":294
 *     if single:
 *         log.debug('Calling fuse_session_loop')
 *         with nogil:             # <<<<<<<<<<<<<<
 *             ret = fuse_session_loop(session)
 *         _notify_queue.put(None, block=True, timeout=5) # Stop notification thread
 */
        /*finally:*/ {
          /*normal exit:*/{
            #ifdef WITH_THREAD
            Py_BLOCK_THREADS
            #endif
            goto __pyx_L7;
          }
          __pyx_L7:;
        }
    }

    /* "src/llfuse/fuse_api.pxi":296
 *         with nogil:
 *             ret = fuse_session_loop(session)
 *         _notify_queue.put(None, block=True, timeout=5) # Stop notification thread             # <<<<<<<<<<<<<<
 *         if ret != 0:
 *             raise RuntimeError("fuse_session_loop failed")
 */
    __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_notify_queue); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 296; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_put); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 296; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = PyDict_New(); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 296; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_block, Py_True) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 296; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_timeout, __pyx_int_5) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 296; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_tuple__66, __pyx_t_4); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 296; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "src/llfuse/fuse_api.pxi":297
 *             ret = fuse_session_loop(session)
 *         _notify_queue.put(None, block=True, timeout=5) # Stop notification thread
 *         if ret != 0:             # <<<<<<<<<<<<<<
 *             raise RuntimeError("fuse_session_loop failed")
 *     else:
 */
    __pyx_t_1 = ((__pyx_v_ret != 0) != 0);
    if (__pyx_t_1) {

      /* "src/llfuse/fuse_api.pxi":298
 *         _notify_queue.put(None, block=True, timeout=5) # Stop notification thread
 *         if ret != 0:
 *             raise RuntimeError("fuse_session_loop failed")             # <<<<<<<<<<<<<<
 *     else:
 *         log.debug('Calling fuse_session_loop_mt')
 */
      __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__67, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 298; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_Raise(__pyx_t_3, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      {__pyx_filename = __pyx_f[2]; __pyx_lineno = 298; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    }
    goto __pyx_L4;
  }
  /*else*/ {

    /* "src/llfuse/fuse_api.pxi":300
 *             raise RuntimeError("fuse_session_loop failed")
 *     else:
 *         log.debug('Calling fuse_session_loop_mt')             # <<<<<<<<<<<<<<
 *         with nogil:
 *             ret = fuse_session_loop_mt(session)
 */
    __pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s_log); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 300; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_debug); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 300; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_tuple__68, NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 300; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;

    /* "src/llfuse/fuse_api.pxi":301
 *     else:
 *         log.debug('Calling fuse_session_loop_mt')
 *         with nogil:             # <<<<<<<<<<<<<<
 *             ret = fuse_session_loop_mt(session)
 *         _notify_queue.put(None, block=True, timeout=5) # Stop notification thread
 */
    {
        #ifdef WITH_THREAD
        PyThreadState *_save;
        Py_UNBLOCK_THREADS
        #endif
        /*try:*/ {

          /* "src/llfuse/fuse_api.pxi":302
 *         log.debug('Calling fuse_session_loop_mt')
 *         with nogil:
 *             ret = fuse_session_loop_mt(session)             # <<<<<<<<<<<<<<
 *         _notify_queue.put(None, block=True, timeout=5) # Stop notification thread
 *         if ret != 0:
 */
          __pyx_v_ret = fuse_session_loop_mt(__pyx_v_6llfuse_4capi_session);
        }

        /* "src/llfuse/fuse_api.pxi":301
 *     else:
 *         log.debug('Calling fuse_session_loop_mt')
 *         with nogil:             # <<<<<<<<<<<<<<
 *             ret = fuse_session_loop_mt(session)
 *         _notify_queue.put(None, block=True, timeout=5) # Stop notification thread
 */
        /*finally:*/ {
          /*normal exit:*/{
            #ifdef WITH_THREAD
            Py_BLOCK_THREADS
            #endif
            goto __pyx_L11;
          }
          __pyx_L11:;
        }
    }

    /* "src/llfuse/fuse_api.pxi":303
 *         with nogil:
 *             ret = fuse_session_loop_mt(session)
 *         _notify_queue.put(None, block=True, timeout=5) # Stop notification thread             # <<<<<<<<<<<<<<
 *         if ret != 0:
 *             raise RuntimeError("fuse_session_loop_mt() failed")
 */
    __pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s_notify_queue); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 303; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_put); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 303; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 303; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_block, Py_True) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 303; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_timeout, __pyx_int_5) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 303; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_tuple__69, __pyx_t_3); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 303; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "src/llfuse/fuse_api.pxi":304
 *             ret = fuse_session_loop_mt(session)
 *         _notify_queue.put(None, block=True, timeout=5) # Stop notification thread
 *         if ret != 0:             # <<<<<<<<<<<<<<
 *             raise RuntimeError("fuse_session_loop_mt() failed")
 * 
 */
    __pyx_t_1 = ((__pyx_v_ret != 0) != 0);
    if (__pyx_t_1) {

      /* "src/llfuse/fuse_api.pxi":305
 *         _notify_queue.put(None, block=True, timeout=5) # Stop notification thread
 *         if ret != 0:
 *             raise RuntimeError("fuse_session_loop_mt() failed")             # <<<<<<<<<<<<<<
 * 
 *     if exc_info:
 */
      __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__70, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 305; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_Raise(__pyx_t_2, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      {__pyx_filename = __pyx_f[2]; __pyx_lineno = 305; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    }
  }
  __pyx_L4:;

  /* "src/llfuse/fuse_api.pxi":307
 *             raise RuntimeError("fuse_session_loop_mt() failed")
 * 
 *     if exc_info:             # <<<<<<<<<<<<<<
 *         # Re-raise expression from request handler
 *         log.debug('Terminated main loop because request handler raised exception, re-raising..')
 */
  __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_6llfuse_4capi_exc_info); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 307; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_1) {

    /* "src/llfuse/fuse_api.pxi":309
 *     if exc_info:
 *         # Re-raise expression from request handler
 *         log.debug('Terminated main loop because request handler raised exception, re-raising..')             # <<<<<<<<<<<<<<
 *         tmp = exc_info
 *         exc_info = None
 */
    __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_log); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 309; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_debug); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 309; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_tuple__71, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 309; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "src/llfuse/fuse_api.pxi":310
 *         # Re-raise expression from request handler
 *         log.debug('Terminated main loop because request handler raised exception, re-raising..')
 *         tmp = exc_info             # <<<<<<<<<<<<<<
 *         exc_info = None
 * 
 */
    __Pyx_INCREF(__pyx_v_6llfuse_4capi_exc_info);
    __pyx_v_tmp = __pyx_v_6llfuse_4capi_exc_info;

    /* "src/llfuse/fuse_api.pxi":311
 *         log.debug('Terminated main loop because request handler raised exception, re-raising..')
 *         tmp = exc_info
 *         exc_info = None             # <<<<<<<<<<<<<<
 * 
 *         # The explicit version check works around a Cython bug with
 */
    __Pyx_INCREF(Py_None);
    __Pyx_XGOTREF(__pyx_v_6llfuse_4capi_exc_info);
    __Pyx_DECREF_SET(__pyx_v_6llfuse_4capi_exc_info, Py_None);
    __Pyx_GIVEREF(Py_None);

    /* "src/llfuse/fuse_api.pxi":316
 *         # the 3-parameter version of the raise statement, c.f.
 *         # https://github.com/cython/cython/commit/a6195f1a44ab21f5aa4b2a1b1842dd93115a3f42
 *         if PY_MAJOR_VERSION < 3:             # <<<<<<<<<<<<<<
 *             raise tmp[0], tmp[1], tmp[2]
 *         else:
 */
    __pyx_t_1 = ((PY_MAJOR_VERSION < 3) != 0);
    if (__pyx_t_1) {

      /* "src/llfuse/fuse_api.pxi":317
 *         # https://github.com/cython/cython/commit/a6195f1a44ab21f5aa4b2a1b1842dd93115a3f42
 *         if PY_MAJOR_VERSION < 3:
 *             raise tmp[0], tmp[1], tmp[2]             # <<<<<<<<<<<<<<
 *         else:
 *             raise tmp[1].with_traceback(tmp[2])
 */
      __pyx_t_2 = __Pyx_GetItemInt(__pyx_v_tmp, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_2 == NULL)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 317; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_tmp, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_3 == NULL)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 317; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_4 = __Pyx_GetItemInt(__pyx_v_tmp, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_4 == NULL)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 317; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_Raise(__pyx_t_2, __pyx_t_3, __pyx_t_4, 0);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      {__pyx_filename = __pyx_f[2]; __pyx_lineno = 317; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    }
    /*else*/ {

      /* "src/llfuse/fuse_api.pxi":319
 *             raise tmp[0], tmp[1], tmp[2]
 *         else:
 *             raise tmp[1].with_traceback(tmp[2])             # <<<<<<<<<<<<<<
 * 
 * def close(unmount=True):
 */
      __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_tmp, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_3 == NULL)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 319; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_with_traceback); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 319; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_tmp, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_3 == NULL)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 319; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_5 = NULL;
      if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_2))) {
        __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_2);
        if (likely(__pyx_t_5)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
          __Pyx_INCREF(__pyx_t_5);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_2, function);
        }
      }
      if (!__pyx_t_5) {
        __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 319; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __Pyx_GOTREF(__pyx_t_4);
      } else {
        __pyx_t_6 = PyTuple_New(1+1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 319; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_6);
        PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_5); __Pyx_GIVEREF(__pyx_t_5); __pyx_t_5 = NULL;
        PyTuple_SET_ITEM(__pyx_t_6, 0+1, __pyx_t_3);
        __Pyx_GIVEREF(__pyx_t_3);
        __pyx_t_3 = 0;
        __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_6, NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 319; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      }
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_Raise(__pyx_t_4, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      {__pyx_filename = __pyx_f[2]; __pyx_lineno = 319; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    }
  }

  /* "src/llfuse/fuse_api.pxi":271
 *     fuse_session_add_chan(session, channel)
 * 
 * def main(single=False):             # <<<<<<<<<<<<<<
 *     '''Run FUSE main loop
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("llfuse.capi.main", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_t);
  __Pyx_XDECREF(__pyx_v_tmp);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/llfuse/fuse_api.pxi":321
 *             raise tmp[1].with_traceback(tmp[2])
 * 
 * def close(unmount=True):             # <<<<<<<<<<<<<<
 *     '''Unmount file system and clean up
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_6llfuse_4capi_13close(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_6llfuse_4capi_12close[] = "close(unmount=True)\nUnmount file system and clean up\n\n    If *unmount* is False, only clean up operations are peformed, but\n    the file system is not unmounted. As long as the file system\n    process is still running, all requests will hang. Once the process\n    has terminated, these (and all future) requests fail with ESHUTDOWN.\n    ";
static PyMethodDef __pyx_mdef_6llfuse_4capi_13close = {"close", (PyCFunction)__pyx_pw_6llfuse_4capi_13close, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6llfuse_4capi_12close};
static PyObject *__pyx_pw_6llfuse_4capi_13close(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_unmount = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("close (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_unmount,0};
    PyObject* values[1] = {0};
    values[0] = ((PyObject *)Py_True);
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_unmount);
          if (value) { values[0] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "close") < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 321; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_unmount = values[0];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("close", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 321; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("llfuse.capi.close", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6llfuse_4capi_12close(__pyx_self, __pyx_v_unmount);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6llfuse_4capi_12close(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_unmount) {
  PyObject *__pyx_v_tmp = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  char *__pyx_t_4;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("close", 0);

  /* "src/llfuse/fuse_api.pxi":335
 *     global exc_info
 * 
 *     log.debug('Calling fuse_session_remove_chan')             # <<<<<<<<<<<<<<
 *     fuse_session_remove_chan(channel)
 *     log.debug('Calling fuse_remove_signal_handlers')
 */
  __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_log); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 335; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_debug); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 335; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_tuple__72, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 335; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "src/llfuse/fuse_api.pxi":336
 * 
 *     log.debug('Calling fuse_session_remove_chan')
 *     fuse_session_remove_chan(channel)             # <<<<<<<<<<<<<<
 *     log.debug('Calling fuse_remove_signal_handlers')
 *     fuse_remove_signal_handlers(session)
 */
  fuse_session_remove_chan(__pyx_v_6llfuse_4capi_channel);

  /* "src/llfuse/fuse_api.pxi":337
 *     log.debug('Calling fuse_session_remove_chan')
 *     fuse_session_remove_chan(channel)
 *     log.debug('Calling fuse_remove_signal_handlers')             # <<<<<<<<<<<<<<
 *     fuse_remove_signal_handlers(session)
 *     log.debug('Calling fuse_session_destroy')
 */
  __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_log); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 337; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_debug); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 337; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_tuple__73, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 337; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "src/llfuse/fuse_api.pxi":338
 *     fuse_session_remove_chan(channel)
 *     log.debug('Calling fuse_remove_signal_handlers')
 *     fuse_remove_signal_handlers(session)             # <<<<<<<<<<<<<<
 *     log.debug('Calling fuse_session_destroy')
 *     fuse_session_destroy(session)
 */
  fuse_remove_signal_handlers(__pyx_v_6llfuse_4capi_session);

  /* "src/llfuse/fuse_api.pxi":339
 *     log.debug('Calling fuse_remove_signal_handlers')
 *     fuse_remove_signal_handlers(session)
 *     log.debug('Calling fuse_session_destroy')             # <<<<<<<<<<<<<<
 *     fuse_session_destroy(session)
 * 
 */
  __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_log); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 339; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_debug); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 339; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_tuple__74, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 339; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "src/llfuse/fuse_api.pxi":340
 *     fuse_remove_signal_handlers(session)
 *     log.debug('Calling fuse_session_destroy')
 *     fuse_session_destroy(session)             # <<<<<<<<<<<<<<
 * 
 *     if unmount:
 */
  fuse_session_destroy(__pyx_v_6llfuse_4capi_session);

  /* "src/llfuse/fuse_api.pxi":342
 *     fuse_session_destroy(session)
 * 
 *     if unmount:             # <<<<<<<<<<<<<<
 *         log.debug('Calling fuse_unmount')
 *         fuse_unmount(<char*>mountpoint_b, channel)
 */
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_unmount); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 342; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_3) {

    /* "src/llfuse/fuse_api.pxi":343
 * 
 *     if unmount:
 *         log.debug('Calling fuse_unmount')             # <<<<<<<<<<<<<<
 *         fuse_unmount(<char*>mountpoint_b, channel)
 *     else:
 */
    __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_log); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 343; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_debug); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 343; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_tuple__75, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 343; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "src/llfuse/fuse_api.pxi":344
 *     if unmount:
 *         log.debug('Calling fuse_unmount')
 *         fuse_unmount(<char*>mountpoint_b, channel)             # <<<<<<<<<<<<<<
 *     else:
 *         fuse_chan_destroy(channel)
 */
    __pyx_t_4 = __Pyx_PyObject_AsString(__pyx_v_6llfuse_4capi_mountpoint_b); if (unlikely((!__pyx_t_4) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 344; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    fuse_unmount(((char *)__pyx_t_4), __pyx_v_6llfuse_4capi_channel);
    goto __pyx_L3;
  }
  /*else*/ {

    /* "src/llfuse/fuse_api.pxi":346
 *         fuse_unmount(<char*>mountpoint_b, channel)
 *     else:
 *         fuse_chan_destroy(channel)             # <<<<<<<<<<<<<<
 * 
 *     mountpoint_b = None
 */
    fuse_chan_destroy(__pyx_v_6llfuse_4capi_channel);
  }
  __pyx_L3:;

  /* "src/llfuse/fuse_api.pxi":348
 *         fuse_chan_destroy(channel)
 * 
 *     mountpoint_b = None             # <<<<<<<<<<<<<<
 *     session = NULL
 *     channel = NULL
 */
  __Pyx_INCREF(Py_None);
  __Pyx_XGOTREF(__pyx_v_6llfuse_4capi_mountpoint_b);
  __Pyx_DECREF_SET(__pyx_v_6llfuse_4capi_mountpoint_b, Py_None);
  __Pyx_GIVEREF(Py_None);

  /* "src/llfuse/fuse_api.pxi":349
 * 
 *     mountpoint_b = None
 *     session = NULL             # <<<<<<<<<<<<<<
 *     channel = NULL
 * 
 */
  __pyx_v_6llfuse_4capi_session = NULL;

  /* "src/llfuse/fuse_api.pxi":350
 *     mountpoint_b = None
 *     session = NULL
 *     channel = NULL             # <<<<<<<<<<<<<<
 * 
 *     # destroy handler may have given us an exception
 */
  __pyx_v_6llfuse_4capi_channel = NULL;

  /* "src/llfuse/fuse_api.pxi":353
 * 
 *     # destroy handler may have given us an exception
 *     if exc_info:             # <<<<<<<<<<<<<<
 *         tmp = exc_info
 *         exc_info = None
 */
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_6llfuse_4capi_exc_info); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 353; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (__pyx_t_3) {

    /* "src/llfuse/fuse_api.pxi":354
 *     # destroy handler may have given us an exception
 *     if exc_info:
 *         tmp = exc_info             # <<<<<<<<<<<<<<
 *         exc_info = None
 * 
 */
    __Pyx_INCREF(__pyx_v_6llfuse_4capi_exc_info);
    __pyx_v_tmp = __pyx_v_6llfuse_4capi_exc_info;

    /* "src/llfuse/fuse_api.pxi":355
 *     if exc_info:
 *         tmp = exc_info
 *         exc_info = None             # <<<<<<<<<<<<<<
 * 
 *         # The explicit version check works around a Cython bug with
 */
    __Pyx_INCREF(Py_None);
    __Pyx_XGOTREF(__pyx_v_6llfuse_4capi_exc_info);
    __Pyx_DECREF_SET(__pyx_v_6llfuse_4capi_exc_info, Py_None);
    __Pyx_GIVEREF(Py_None);

    /* "src/llfuse/fuse_api.pxi":360
 *         # the 3-parameter version of the raise statement, c.f.
 *         # https://github.com/cython/cython/commit/a6195f1a44ab21f5aa4b2a1b1842dd93115a3f42
 *         if PY_MAJOR_VERSION < 3:             # <<<<<<<<<<<<<<
 *             raise tmp[0], tmp[1], tmp[2]
 *         else:
 */
    __pyx_t_3 = ((PY_MAJOR_VERSION < 3) != 0);
    if (__pyx_t_3) {

      /* "src/llfuse/fuse_api.pxi":361
 *         # https://github.com/cython/cython/commit/a6195f1a44ab21f5aa4b2a1b1842dd93115a3f42
 *         if PY_MAJOR_VERSION < 3:
 *             raise tmp[0], tmp[1], tmp[2]             # <<<<<<<<<<<<<<
 *         else:
 *             raise tmp[1].with_traceback(tmp[2])
 */
      __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_tmp, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 361; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_2 = __Pyx_GetItemInt(__pyx_v_tmp, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_2 == NULL)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 361; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_5 = __Pyx_GetItemInt(__pyx_v_tmp, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_5 == NULL)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 361; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_Raise(__pyx_t_1, __pyx_t_2, __pyx_t_5, 0);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      {__pyx_filename = __pyx_f[2]; __pyx_lineno = 361; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    }
    /*else*/ {

      /* "src/llfuse/fuse_api.pxi":363
 *             raise tmp[0], tmp[1], tmp[2]
 *         else:
 *             raise tmp[1].with_traceback(tmp[2])             # <<<<<<<<<<<<<<
 * 
 * def invalidate_inode(int inode, attr_only=False):
 */
      __pyx_t_2 = __Pyx_GetItemInt(__pyx_v_tmp, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_2 == NULL)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 363; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_with_traceback); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 363; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = __Pyx_GetItemInt(__pyx_v_tmp, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(__pyx_t_2 == NULL)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 363; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_6 = NULL;
      if (CYTHON_COMPILING_IN_CPYTHON && likely(PyMethod_Check(__pyx_t_1))) {
        __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_1);
        if (likely(__pyx_t_6)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
          __Pyx_INCREF(__pyx_t_6);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_1, function);
        }
      }
      if (!__pyx_t_6) {
        __pyx_t_5 = __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 363; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __Pyx_GOTREF(__pyx_t_5);
      } else {
        __pyx_t_7 = PyTuple_New(1+1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 363; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_7);
        PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_6); __Pyx_GIVEREF(__pyx_t_6); __pyx_t_6 = NULL;
        PyTuple_SET_ITEM(__pyx_t_7, 0+1, __pyx_t_2);
        __Pyx_GIVEREF(__pyx_t_2);
        __pyx_t_2 = 0;
        __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_7, NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 363; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
        __Pyx_GOTREF(__pyx_t_5);
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      }
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_Raise(__pyx_t_5, 0, 0, 0);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      {__pyx_filename = __pyx_f[2]; __pyx_lineno = 363; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    }
  }

  /* "src/llfuse/fuse_api.pxi":321
 *             raise tmp[1].with_traceback(tmp[2])
 * 
 * def close(unmount=True):             # <<<<<<<<<<<<<<
 *     '''Unmount file system and clean up
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_AddTraceback("llfuse.capi.close", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_tmp);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/llfuse/fuse_api.pxi":365
 *             raise tmp[1].with_traceback(tmp[2])
 * 
 * def invalidate_inode(int inode, attr_only=False):             # <<<<<<<<<<<<<<
 *     '''Invalidate cache for *inode*
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_6llfuse_4capi_15invalidate_inode(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_6llfuse_4capi_14invalidate_inode[] = "invalidate_inode(int inode, attr_only=False)\nInvalidate cache for *inode*\n\n    Instructs the FUSE kernel module to forgot cached attributes and\n    data (unless *attr_only* is True) for *inode*. This operation is\n    carried out asynchronously, i.e. the method may return before the\n    kernel has executed the request.\n    ";
static PyMethodDef __pyx_mdef_6llfuse_4capi_15invalidate_inode = {"invalidate_inode", (PyCFunction)__pyx_pw_6llfuse_4capi_15invalidate_inode, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6llfuse_4capi_14invalidate_inode};
static PyObject *__pyx_pw_6llfuse_4capi_15invalidate_inode(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  int __pyx_v_inode;
  PyObject *__pyx_v_attr_only = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("invalidate_inode (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_inode,&__pyx_n_s_attr_only,0};
    PyObject* values[2] = {0,0};
    values[1] = ((PyObject *)Py_False);
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_inode)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        if (kw_args > 0) {
          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s_attr_only);
          if (value) { values[1] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "invalidate_inode") < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 365; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_inode = __Pyx_PyInt_As_int(values[0]); if (unlikely((__pyx_v_inode == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 365; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    __pyx_v_attr_only = values[1];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("invalidate_inode", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 365; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("llfuse.capi.invalidate_inode", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6llfuse_4capi_14invalidate_inode(__pyx_self, __pyx_v_inode, __pyx_v_attr_only);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6llfuse_4capi_14invalidate_inode(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_inode, PyObject *__pyx_v_attr_only) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  Py_ssize_t __pyx_t_7;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("invalidate_inode", 0);

  /* "src/llfuse/fuse_api.pxi":374
 *     '''
 * 
 *     _notify_queue.put(inval_inode_req(inode, attr_only))             # <<<<<<<<<<<<<<
 * 
 * def invalidate_entry(int inode_p, bytes name):
 */
  __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_notify_queue); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 374; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_put); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 374; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_inval_inode_req); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 374; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyInt_From_int(__pyx_v_inode); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 374; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = NULL;
  __pyx_t_7 = 0;
  if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_6)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_6);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
      __pyx_t_7 = 1;
    }
  }
  __pyx_t_8 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 374; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_8);
  if (__pyx_t_6) {
    PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_6); __Pyx_GIVEREF(__pyx_t_6); __pyx_t_6 = NULL;
  }
  PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_7, __pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_5);
  __Pyx_INCREF(__pyx_v_attr_only);
  PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_7, __pyx_v_attr_only);
  __Pyx_GIVEREF(__pyx_v_attr_only);
  __pyx_t_5 = 0;
  __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_8, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 374; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = NULL;
  if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  if (!__pyx_t_4) {
    __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 374; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_GOTREF(__pyx_t_1);
  } else {
    __pyx_t_8 = PyTuple_New(1+1); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 374; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_8);
    PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_4); __pyx_t_4 = NULL;
    PyTuple_SET_ITEM(__pyx_t_8, 0+1, __pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_8, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 374; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  }
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "src/llfuse/fuse_api.pxi":365
 *             raise tmp[1].with_traceback(tmp[2])
 * 
 * def invalidate_inode(int inode, attr_only=False):             # <<<<<<<<<<<<<<
 *     '''Invalidate cache for *inode*
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("llfuse.capi.invalidate_inode", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/llfuse/fuse_api.pxi":376
 *     _notify_queue.put(inval_inode_req(inode, attr_only))
 * 
 * def invalidate_entry(int inode_p, bytes name):             # <<<<<<<<<<<<<<
 *     '''Invalidate directory entry
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_6llfuse_4capi_17invalidate_entry(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_6llfuse_4capi_16invalidate_entry[] = "invalidate_entry(int inode_p, bytes name)\nInvalidate directory entry\n\n    Instructs the FUSE kernel module to forget about the directory\n    entry *name* in the directory with inode *inode_p*. This operation\n    is carried out asynchronously, i.e. the method may return before\n    the kernel has executed the request.\n    ";
static PyMethodDef __pyx_mdef_6llfuse_4capi_17invalidate_entry = {"invalidate_entry", (PyCFunction)__pyx_pw_6llfuse_4capi_17invalidate_entry, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6llfuse_4capi_16invalidate_entry};
static PyObject *__pyx_pw_6llfuse_4capi_17invalidate_entry(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  int __pyx_v_inode_p;
  PyObject *__pyx_v_name = 0;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("invalidate_entry (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_inode_p,&__pyx_n_s_name,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_inode_p)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        case  1:
        if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_name)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("invalidate_entry", 1, 2, 2, 1); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 376; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "invalidate_entry") < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 376; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_inode_p = __Pyx_PyInt_As_int(values[0]); if (unlikely((__pyx_v_inode_p == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 376; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    __pyx_v_name = ((PyObject*)values[1]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("invalidate_entry", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 376; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("llfuse.capi.invalidate_entry", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_name), (&PyBytes_Type), 1, "name", 1))) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 376; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_r = __pyx_pf_6llfuse_4capi_16invalidate_entry(__pyx_self, __pyx_v_inode_p, __pyx_v_name);

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6llfuse_4capi_16invalidate_entry(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_inode_p, PyObject *__pyx_v_name) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  PyObject *__pyx_t_6 = NULL;
  Py_ssize_t __pyx_t_7;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("invalidate_entry", 0);

  /* "src/llfuse/fuse_api.pxi":385
 *     '''
 * 
 *     _notify_queue.put(inval_entry_req(inode_p, name))             # <<<<<<<<<<<<<<
 * 
 * def get_ino_t_bits():
 */
  __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_notify_queue); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 385; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_put); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 385; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_inval_entry_req); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 385; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyInt_From_int(__pyx_v_inode_p); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 385; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = NULL;
  __pyx_t_7 = 0;
  if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_6)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_6);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
      __pyx_t_7 = 1;
    }
  }
  __pyx_t_8 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 385; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_8);
  if (__pyx_t_6) {
    PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_6); __Pyx_GIVEREF(__pyx_t_6); __pyx_t_6 = NULL;
  }
  PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_7, __pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_5);
  __Pyx_INCREF(__pyx_v_name);
  PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_7, __pyx_v_name);
  __Pyx_GIVEREF(__pyx_v_name);
  __pyx_t_5 = 0;
  __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_8, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 385; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = NULL;
  if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  if (!__pyx_t_4) {
    __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 385; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_GOTREF(__pyx_t_1);
  } else {
    __pyx_t_8 = PyTuple_New(1+1); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 385; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_8);
    PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_4); __pyx_t_4 = NULL;
    PyTuple_SET_ITEM(__pyx_t_8, 0+1, __pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_8, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 385; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  }
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "src/llfuse/fuse_api.pxi":376
 *     _notify_queue.put(inval_inode_req(inode, attr_only))
 * 
 * def invalidate_entry(int inode_p, bytes name):             # <<<<<<<<<<<<<<
 *     '''Invalidate directory entry
 * 
 */

  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("llfuse.capi.invalidate_entry", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/llfuse/fuse_api.pxi":387
 *     _notify_queue.put(inval_entry_req(inode_p, name))
 * 
 * def get_ino_t_bits():             # <<<<<<<<<<<<<<
 *     '''Return number of bits available for inode numbers
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_6llfuse_4capi_19get_ino_t_bits(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_6llfuse_4capi_18get_ino_t_bits[] = "get_ino_t_bits()\nReturn number of bits available for inode numbers\n\n    Attempts to use inode values that need more bytes will result in\n    `OverflowError`.\n    ";
static PyMethodDef __pyx_mdef_6llfuse_4capi_19get_ino_t_bits = {"get_ino_t_bits", (PyCFunction)__pyx_pw_6llfuse_4capi_19get_ino_t_bits, METH_NOARGS, __pyx_doc_6llfuse_4capi_18get_ino_t_bits};
static PyObject *__pyx_pw_6llfuse_4capi_19get_ino_t_bits(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("get_ino_t_bits (wrapper)", 0);
  __pyx_r = __pyx_pf_6llfuse_4capi_18get_ino_t_bits(__pyx_self);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6llfuse_4capi_18get_ino_t_bits(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  size_t __pyx_t_1;
  size_t __pyx_t_2;
  size_t __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("get_ino_t_bits", 0);

  /* "src/llfuse/fuse_api.pxi":393
 *     `OverflowError`.
 *     '''
 *     return min(sizeof(ino_t), sizeof(fuse_ino_t)) * 8             # <<<<<<<<<<<<<<
 * 
 * def get_off_t_bits():
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = (sizeof(fuse_ino_t));
  __pyx_t_2 = (sizeof(ino_t));
  if (((__pyx_t_1 < __pyx_t_2) != 0)) {
    __pyx_t_3 = __pyx_t_1;
  } else {
    __pyx_t_3 = __pyx_t_2;
  }
  __pyx_t_4 = __Pyx_PyInt_FromSize_t((__pyx_t_3 * 8)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 393; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_r = __pyx_t_4;
  __pyx_t_4 = 0;
  goto __pyx_L0;

  /* "src/llfuse/fuse_api.pxi":387
 *     _notify_queue.put(inval_entry_req(inode_p, name))
 * 
 * def get_ino_t_bits():             # <<<<<<<<<<<<<<
 *     '''Return number of bits available for inode numbers
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("llfuse.capi.get_ino_t_bits", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* "src/llfuse/fuse_api.pxi":395
 *     return min(sizeof(ino_t), sizeof(fuse_ino_t)) * 8
 * 
 * def get_off_t_bits():             # <<<<<<<<<<<<<<
 *     '''Return number of bytes available for file offsets
 * 
 */

/* Python wrapper */
static PyObject *__pyx_pw_6llfuse_4capi_21get_off_t_bits(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static char __pyx_doc_6llfuse_4capi_20get_off_t_bits[] = "get_off_t_bits()\nReturn number of bytes available for file offsets\n\n    Attempts to use values whose representation needs more bytes will\n    result in `OverflowError`.\n    ";
static PyMethodDef __pyx_mdef_6llfuse_4capi_21get_off_t_bits = {"get_off_t_bits", (PyCFunction)__pyx_pw_6llfuse_4capi_21get_off_t_bits, METH_NOARGS, __pyx_doc_6llfuse_4capi_20get_off_t_bits};
static PyObject *__pyx_pw_6llfuse_4capi_21get_off_t_bits(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("get_off_t_bits (wrapper)", 0);
  __pyx_r = __pyx_pf_6llfuse_4capi_20get_off_t_bits(__pyx_self);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6llfuse_4capi_20get_off_t_bits(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("get_off_t_bits", 0);

  /* "src/llfuse/fuse_api.pxi":401
 *     result in `OverflowError`.
 *     '''
 *     return sizeof(off_t) * 8             # <<<<<<<<<<<<<<
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_FromSize_t(((sizeof(off_t)) * 8)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 401; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "src/llfuse/fuse_api.pxi":395
 *     return min(sizeof(ino_t), sizeof(fuse_ino_t)) * 8
 * 
 * def get_off_t_bits():             # <<<<<<<<<<<<<<
 *     '''Return number of bytes available for file offsets
 * 
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("llfuse.capi.get_off_t_bits", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_tp_new_6llfuse_4capi_Lock(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  return o;
}

static void __pyx_tp_dealloc_6llfuse_4capi_Lock(PyObject *o) {
  #if PY_VERSION_HEX >= 0x030400a1
  if (unlikely(Py_TYPE(o)->tp_finalize) && (!PyType_IS_GC(Py_TYPE(o)) || !_PyGC_FINALIZED(o))) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  (*Py_TYPE(o)->tp_free)(o);
}

static PyMethodDef __pyx_methods_6llfuse_4capi_Lock[] = {
  {"acquire", (PyCFunction)__pyx_pw_6llfuse_4capi_4Lock_3acquire, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6llfuse_4capi_4Lock_2acquire},
  {"release", (PyCFunction)__pyx_pw_6llfuse_4capi_4Lock_5release, METH_NOARGS, __pyx_doc_6llfuse_4capi_4Lock_4release},
  {"yield_", (PyCFunction)__pyx_pw_6llfuse_4capi_4Lock_7yield_, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6llfuse_4capi_4Lock_6yield_},
  {"__enter__", (PyCFunction)__pyx_pw_6llfuse_4capi_4Lock_9__enter__, METH_NOARGS, __pyx_doc_6llfuse_4capi_4Lock_8__enter__},
  {"__exit__", (PyCFunction)__pyx_pw_6llfuse_4capi_4Lock_11__exit__, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6llfuse_4capi_4Lock_10__exit__},
  {0, 0, 0, 0}
};

static PyTypeObject __pyx_type_6llfuse_4capi_Lock = {
  PyVarObject_HEAD_INIT(0, 0)
  "llfuse.capi.Lock", /*tp_name*/
  sizeof(struct __pyx_obj_6llfuse_4capi_Lock), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_6llfuse_4capi_Lock, /*tp_dealloc*/
  0, /*tp_print*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #else
  0, /*reserved*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  "Lock()\n\n    This is the class of lock itself as well as a context manager to\n    execute code while the global lock is being held.\n    ", /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_6llfuse_4capi_Lock, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  __pyx_pw_6llfuse_4capi_4Lock_1__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_6llfuse_4capi_Lock, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
};

static PyObject *__pyx_tp_new_6llfuse_4capi_NoLockManager(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
  PyObject *o;
  if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) {
    o = (*t->tp_alloc)(t, 0);
  } else {
    o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
  }
  if (unlikely(!o)) return 0;
  return o;
}

static void __pyx_tp_dealloc_6llfuse_4capi_NoLockManager(PyObject *o) {
  #if PY_VERSION_HEX >= 0x030400a1
  if (unlikely(Py_TYPE(o)->tp_finalize) && (!PyType_IS_GC(Py_TYPE(o)) || !_PyGC_FINALIZED(o))) {
    if (PyObject_CallFinalizerFromDealloc(o)) return;
  }
  #endif
  (*Py_TYPE(o)->tp_free)(o);
}

static PyMethodDef __pyx_methods_6llfuse_4capi_NoLockManager[] = {
  {"__enter__", (PyCFunction)__pyx_pw_6llfuse_4capi_13NoLockManager_3__enter__, METH_NOARGS, __pyx_doc_6llfuse_4capi_13NoLockManager_2__enter__},
  {"__exit__", (PyCFunction)__pyx_pw_6llfuse_4capi_13NoLockManager_5__exit__, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6llfuse_4capi_13NoLockManager_4__exit__},
  {0, 0, 0, 0}
};

static PyTypeObject __pyx_type_6llfuse_4capi_NoLockManager = {
  PyVarObject_HEAD_INIT(0, 0)
  "llfuse.capi.NoLockManager", /*tp_name*/
  sizeof(struct __pyx_obj_6llfuse_4capi_NoLockManager), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_6llfuse_4capi_NoLockManager, /*tp_dealloc*/
  0, /*tp_print*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  #if PY_MAJOR_VERSION < 3
  0, /*tp_compare*/
  #else
  0, /*reserved*/
  #endif
  0, /*tp_repr*/
  0, /*tp_as_number*/
  0, /*tp_as_sequence*/
  0, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  0, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  "NoLockManager()\nContext manager to execute code while the global lock is released", /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_6llfuse_4capi_NoLockManager, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  __pyx_pw_6llfuse_4capi_13NoLockManager_1__init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_6llfuse_4capi_NoLockManager, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
  0, /*tp_del*/
  0, /*tp_version_tag*/
  #if PY_VERSION_HEX >= 0x030400a1
  0, /*tp_finalize*/
  #endif
};

static PyMethodDef __pyx_methods[] = {
  {0, 0, 0, 0}
};

#if PY_MAJOR_VERSION >= 3
static struct PyModuleDef __pyx_moduledef = {
  #if PY_VERSION_HEX < 0x03020000
    { PyObject_HEAD_INIT(NULL) NULL, 0, NULL },
  #else
    PyModuleDef_HEAD_INIT,
  #endif
    "capi",
    __pyx_k_capi_pxy_Copyright_2013_Nikolau, /* m_doc */
    -1, /* m_size */
    __pyx_methods /* m_methods */,
    NULL, /* m_reload */
    NULL, /* m_traverse */
    NULL, /* m_clear */
    NULL /* m_free */
};
#endif

static __Pyx_StringTabEntry __pyx_string_tab[] = {
  {&__pyx_n_s_BaseException, __pyx_k_BaseException, sizeof(__pyx_k_BaseException), 0, 0, 1, 1},
  {&__pyx_kp_u_Calling_fuse_lowlevel_new, __pyx_k_Calling_fuse_lowlevel_new, sizeof(__pyx_k_Calling_fuse_lowlevel_new), 0, 1, 0, 0},
  {&__pyx_kp_u_Calling_fuse_mount, __pyx_k_Calling_fuse_mount, sizeof(__pyx_k_Calling_fuse_mount), 0, 1, 0, 0},
  {&__pyx_kp_u_Calling_fuse_remove_signal_handl, __pyx_k_Calling_fuse_remove_signal_handl, sizeof(__pyx_k_Calling_fuse_remove_signal_handl), 0, 1, 0, 0},
  {&__pyx_kp_u_Calling_fuse_session_add_chan, __pyx_k_Calling_fuse_session_add_chan, sizeof(__pyx_k_Calling_fuse_session_add_chan), 0, 1, 0, 0},
  {&__pyx_kp_u_Calling_fuse_session_destroy, __pyx_k_Calling_fuse_session_destroy, sizeof(__pyx_k_Calling_fuse_session_destroy), 0, 1, 0, 0},
  {&__pyx_kp_u_Calling_fuse_session_loop, __pyx_k_Calling_fuse_session_loop, sizeof(__pyx_k_Calling_fuse_session_loop), 0, 1, 0, 0},
  {&__pyx_kp_u_Calling_fuse_session_loop_mt, __pyx_k_Calling_fuse_session_loop_mt, sizeof(__pyx_k_Calling_fuse_session_loop_mt), 0, 1, 0, 0},
  {&__pyx_kp_u_Calling_fuse_session_remove_chan, __pyx_k_Calling_fuse_session_remove_chan, sizeof(__pyx_k_Calling_fuse_session_remove_chan), 0, 1, 0, 0},
  {&__pyx_kp_u_Calling_fuse_set_signal_handlers, __pyx_k_Calling_fuse_set_signal_handlers, sizeof(__pyx_k_Calling_fuse_set_signal_handlers), 0, 1, 0, 0},
  {&__pyx_kp_u_Calling_fuse_unmount, __pyx_k_Calling_fuse_unmount, sizeof(__pyx_k_Calling_fuse_unmount), 0, 1, 0, 0},
  {&__pyx_n_s_ENOATTR, __pyx_k_ENOATTR, sizeof(__pyx_k_ENOATTR), 0, 0, 1, 1},
  {&__pyx_n_s_EntryAttributes, __pyx_k_EntryAttributes, sizeof(__pyx_k_EntryAttributes), 0, 0, 1, 1},
  {&__pyx_kp_u_Exception_after_kill, __pyx_k_Exception_after_kill, sizeof(__pyx_k_Exception_after_kill), 0, 1, 0, 0},
  {&__pyx_n_s_FUSEError, __pyx_k_FUSEError, sizeof(__pyx_k_FUSEError), 0, 0, 1, 1},
  {&__pyx_kp_u_Global_lock_cannot_be_acquired_m, __pyx_k_Global_lock_cannot_be_acquired_m, sizeof(__pyx_k_Global_lock_cannot_be_acquired_m), 0, 1, 0, 0},
  {&__pyx_kp_u_Initializing_llfuse, __pyx_k_Initializing_llfuse, sizeof(__pyx_k_Initializing_llfuse), 0, 1, 0, 0},
  {&__pyx_kp_u_Lock_can_only_be_released_by_the, __pyx_k_Lock_can_only_be_released_by_the, sizeof(__pyx_k_Lock_can_only_be_released_by_the), 0, 1, 0, 0},
  {&__pyx_kp_u_Lock_not_initialized, __pyx_k_Lock_not_initialized, sizeof(__pyx_k_Lock_not_initialized), 0, 1, 0, 0},
  {&__pyx_kp_u_Lock_still_taken_after_receiving, __pyx_k_Lock_still_taken_after_receiving, sizeof(__pyx_k_Lock_still_taken_after_receiving), 0, 1, 0, 0},
  {&__pyx_kp_u_Need_to_call_init_before_main, __pyx_k_Need_to_call_init_before_main, sizeof(__pyx_k_Need_to_call_init_before_main), 0, 1, 0, 0},
  {&__pyx_n_s_OSError, __pyx_k_OSError, sizeof(__pyx_k_OSError), 0, 0, 1, 1},
  {&__pyx_n_s_Operations, __pyx_k_Operations, sizeof(__pyx_k_Operations), 0, 0, 1, 1},
  {&__pyx_kp_u_Other_thread_didn_t_take_lock, __pyx_k_Other_thread_didn_t_take_lock, sizeof(__pyx_k_Other_thread_didn_t_take_lock), 0, 1, 0, 0},
  {&__pyx_kp_b_Python_LLFUSE, __pyx_k_Python_LLFUSE, sizeof(__pyx_k_Python_LLFUSE), 0, 0, 0, 0},
  {&__pyx_n_s_Queue, __pyx_k_Queue, sizeof(__pyx_k_Queue), 0, 0, 1, 1},
  {&__pyx_n_s_ROOT_INODE, __pyx_k_ROOT_INODE, sizeof(__pyx_k_ROOT_INODE), 0, 0, 1, 1},
  {&__pyx_n_s_RequestContext, __pyx_k_RequestContext, sizeof(__pyx_k_RequestContext), 0, 0, 1, 1},
  {&__pyx_n_s_RuntimeError, __pyx_k_RuntimeError, sizeof(__pyx_k_RuntimeError), 0, 0, 1, 1},
  {&__pyx_kp_u_Terminated_main_loop_because_req, __pyx_k_Terminated_main_loop_because_req, sizeof(__pyx_k_Terminated_main_loop_because_req), 0, 1, 0, 0},
  {&__pyx_n_s_Thread, __pyx_k_Thread, sizeof(__pyx_k_Thread), 0, 0, 1, 1},
  {&__pyx_n_s_TypeError, __pyx_k_TypeError, sizeof(__pyx_k_TypeError), 0, 0, 1, 1},
  {&__pyx_n_s_ValueError, __pyx_k_ValueError, sizeof(__pyx_k_ValueError), 0, 0, 1, 1},
  {&__pyx_kp_u_Weird_request_received_r, __pyx_k_Weird_request_received_r, sizeof(__pyx_k_Weird_request_received_r), 0, 1, 0, 0},
  {&__pyx_kp_u_You_should_not_instantiate_this, __pyx_k_You_should_not_instantiate_this, sizeof(__pyx_k_You_should_not_instantiate_this), 0, 1, 0, 0},
  {&__pyx_kp_b__28, __pyx_k__28, sizeof(__pyx_k__28), 0, 0, 0, 0},
  {&__pyx_n_s_abspath, __pyx_k_abspath, sizeof(__pyx_k_abspath), 0, 0, 1, 1},
  {&__pyx_n_s_access, __pyx_k_access, sizeof(__pyx_k_access), 0, 0, 1, 1},
  {&__pyx_n_s_acquire, __pyx_k_acquire, sizeof(__pyx_k_acquire), 0, 0, 1, 1},
  {&__pyx_n_s_args, __pyx_k_args, sizeof(__pyx_k_args), 0, 0, 1, 1},
  {&__pyx_n_s_attr_only, __pyx_k_attr_only, sizeof(__pyx_k_attr_only), 0, 0, 1, 1},
  {&__pyx_n_u_attr_only, __pyx_k_attr_only, sizeof(__pyx_k_attr_only), 0, 1, 0, 1},
  {&__pyx_n_s_attr_timeout, __pyx_k_attr_timeout, sizeof(__pyx_k_attr_timeout), 0, 0, 1, 1},
  {&__pyx_n_s_block, __pyx_k_block, sizeof(__pyx_k_block), 0, 0, 1, 1},
  {&__pyx_n_s_buf, __pyx_k_buf, sizeof(__pyx_k_buf), 0, 0, 1, 1},
  {&__pyx_n_s_bufsize, __pyx_k_bufsize, sizeof(__pyx_k_bufsize), 0, 0, 1, 1},
  {&__pyx_n_s_close, __pyx_k_close, sizeof(__pyx_k_close), 0, 0, 1, 1},
  {&__pyx_n_s_cname, __pyx_k_cname, sizeof(__pyx_k_cname), 0, 0, 1, 1},
  {&__pyx_n_s_cnamespace, __pyx_k_cnamespace, sizeof(__pyx_k_cnamespace), 0, 0, 1, 1},
  {&__pyx_n_s_collections, __pyx_k_collections, sizeof(__pyx_k_collections), 0, 0, 1, 1},
  {&__pyx_n_s_count, __pyx_k_count, sizeof(__pyx_k_count), 0, 0, 1, 1},
  {&__pyx_n_s_cpath, __pyx_k_cpath, sizeof(__pyx_k_cpath), 0, 0, 1, 1},
  {&__pyx_n_s_create, __pyx_k_create, sizeof(__pyx_k_create), 0, 0, 1, 1},
  {&__pyx_n_s_cvalue, __pyx_k_cvalue, sizeof(__pyx_k_cvalue), 0, 0, 1, 1},
  {&__pyx_n_s_daemon, __pyx_k_daemon, sizeof(__pyx_k_daemon), 0, 0, 1, 1},
  {&__pyx_n_s_debug, __pyx_k_debug, sizeof(__pyx_k_debug), 0, 0, 1, 1},
  {&__pyx_n_s_decode, __pyx_k_decode, sizeof(__pyx_k_decode), 0, 0, 1, 1},
  {&__pyx_n_s_destroy, __pyx_k_destroy, sizeof(__pyx_k_destroy), 0, 0, 1, 1},
  {&__pyx_n_s_dirp, __pyx_k_dirp, sizeof(__pyx_k_dirp), 0, 0, 1, 1},
  {&__pyx_n_s_encode, __pyx_k_encode, sizeof(__pyx_k_encode), 0, 0, 1, 1},
  {&__pyx_n_s_ent, __pyx_k_ent, sizeof(__pyx_k_ent), 0, 0, 1, 1},
  {&__pyx_n_s_enter, __pyx_k_enter, sizeof(__pyx_k_enter), 0, 0, 1, 1},
  {&__pyx_n_s_entry_timeout, __pyx_k_entry_timeout, sizeof(__pyx_k_entry_timeout), 0, 0, 1, 1},
  {&__pyx_n_s_enumerate, __pyx_k_enumerate, sizeof(__pyx_k_enumerate), 0, 0, 1, 1},
  {&__pyx_n_s_errno, __pyx_k_errno, sizeof(__pyx_k_errno), 0, 0, 1, 1},
  {&__pyx_n_s_error, __pyx_k_error, sizeof(__pyx_k_error), 0, 0, 1, 1},
  {&__pyx_n_s_exc_info, __pyx_k_exc_info, sizeof(__pyx_k_exc_info), 0, 0, 1, 1},
  {&__pyx_n_s_exc_tb, __pyx_k_exc_tb, sizeof(__pyx_k_exc_tb), 0, 0, 1, 1},
  {&__pyx_n_s_exc_type, __pyx_k_exc_type, sizeof(__pyx_k_exc_type), 0, 0, 1, 1},
  {&__pyx_n_s_exc_val, __pyx_k_exc_val, sizeof(__pyx_k_exc_val), 0, 0, 1, 1},
  {&__pyx_n_s_exception, __pyx_k_exception, sizeof(__pyx_k_exception), 0, 0, 1, 1},
  {&__pyx_n_s_exit, __pyx_k_exit, sizeof(__pyx_k_exit), 0, 0, 1, 1},
  {&__pyx_n_s_f_args, __pyx_k_f_args, sizeof(__pyx_k_f_args), 0, 0, 1, 1},
  {&__pyx_n_s_f_bavail, __pyx_k_f_bavail, sizeof(__pyx_k_f_bavail), 0, 0, 1, 1},
  {&__pyx_n_s_f_bfree, __pyx_k_f_bfree, sizeof(__pyx_k_f_bfree), 0, 0, 1, 1},
  {&__pyx_n_s_f_blocks, __pyx_k_f_blocks, sizeof(__pyx_k_f_blocks), 0, 0, 1, 1},
  {&__pyx_n_s_f_bsize, __pyx_k_f_bsize, sizeof(__pyx_k_f_bsize), 0, 0, 1, 1},
  {&__pyx_n_s_f_favail, __pyx_k_f_favail, sizeof(__pyx_k_f_favail), 0, 0, 1, 1},
  {&__pyx_n_s_f_ffree, __pyx_k_f_ffree, sizeof(__pyx_k_f_ffree), 0, 0, 1, 1},
  {&__pyx_n_s_f_files, __pyx_k_f_files, sizeof(__pyx_k_f_files), 0, 0, 1, 1},
  {&__pyx_n_s_f_frsize, __pyx_k_f_frsize, sizeof(__pyx_k_f_frsize), 0, 0, 1, 1},
  {&__pyx_n_s_flush, __pyx_k_flush, sizeof(__pyx_k_flush), 0, 0, 1, 1},
  {&__pyx_n_s_forget, __pyx_k_forget, sizeof(__pyx_k_forget), 0, 0, 1, 1},
  {&__pyx_n_s_fse, __pyx_k_fse, sizeof(__pyx_k_fse), 0, 0, 1, 1},
  {&__pyx_n_s_fsync, __pyx_k_fsync, sizeof(__pyx_k_fsync), 0, 0, 1, 1},
  {&__pyx_n_s_fsyncdir, __pyx_k_fsyncdir, sizeof(__pyx_k_fsyncdir), 0, 0, 1, 1},
  {&__pyx_kp_u_fuse_access_fuse_reply__failed_w, __pyx_k_fuse_access_fuse_reply__failed_w, sizeof(__pyx_k_fuse_access_fuse_reply__failed_w), 0, 1, 0, 0},
  {&__pyx_kp_u_fuse_create_fuse_reply__failed_w, __pyx_k_fuse_create_fuse_reply__failed_w, sizeof(__pyx_k_fuse_create_fuse_reply__failed_w), 0, 1, 0, 0},
  {&__pyx_kp_u_fuse_flush_fuse_reply__failed_wi, __pyx_k_fuse_flush_fuse_reply__failed_wi, sizeof(__pyx_k_fuse_flush_fuse_reply__failed_wi), 0, 1, 0, 0},
  {&__pyx_kp_u_fuse_fsync_fuse_reply__failed_wi, __pyx_k_fuse_fsync_fuse_reply__failed_wi, sizeof(__pyx_k_fuse_fsync_fuse_reply__failed_wi), 0, 1, 0, 0},
  {&__pyx_kp_u_fuse_fsyncdir_fuse_reply__failed, __pyx_k_fuse_fsyncdir_fuse_reply__failed, sizeof(__pyx_k_fuse_fsyncdir_fuse_reply__failed), 0, 1, 0, 0},
  {&__pyx_kp_u_fuse_getattr_fuse_reply__failed, __pyx_k_fuse_getattr_fuse_reply__failed, sizeof(__pyx_k_fuse_getattr_fuse_reply__failed), 0, 1, 0, 0},
  {&__pyx_kp_u_fuse_getxattr_fuse_reply__failed, __pyx_k_fuse_getxattr_fuse_reply__failed, sizeof(__pyx_k_fuse_getxattr_fuse_reply__failed), 0, 1, 0, 0},
  {&__pyx_kp_u_fuse_link_fuse_reply__failed_wit, __pyx_k_fuse_link_fuse_reply__failed_wit, sizeof(__pyx_k_fuse_link_fuse_reply__failed_wit), 0, 1, 0, 0},
  {&__pyx_kp_u_fuse_listxattr_fuse_reply__faile, __pyx_k_fuse_listxattr_fuse_reply__faile, sizeof(__pyx_k_fuse_listxattr_fuse_reply__faile), 0, 1, 0, 0},
  {&__pyx_kp_u_fuse_lookup_fuse_reply__failed_w, __pyx_k_fuse_lookup_fuse_reply__failed_w, sizeof(__pyx_k_fuse_lookup_fuse_reply__failed_w), 0, 1, 0, 0},
  {&__pyx_kp_u_fuse_lowlevel_new_failed, __pyx_k_fuse_lowlevel_new_failed, sizeof(__pyx_k_fuse_lowlevel_new_failed), 0, 1, 0, 0},
  {&__pyx_kp_u_fuse_mkdir_fuse_reply__failed_wi, __pyx_k_fuse_mkdir_fuse_reply__failed_wi, sizeof(__pyx_k_fuse_mkdir_fuse_reply__failed_wi), 0, 1, 0, 0},
  {&__pyx_kp_u_fuse_mknod_fuse_reply__failed_wi, __pyx_k_fuse_mknod_fuse_reply__failed_wi, sizeof(__pyx_k_fuse_mknod_fuse_reply__failed_wi), 0, 1, 0, 0},
  {&__pyx_kp_u_fuse_mount_failed, __pyx_k_fuse_mount_failed, sizeof(__pyx_k_fuse_mount_failed), 0, 1, 0, 0},
  {&__pyx_kp_u_fuse_opendir_fuse_reply__failed, __pyx_k_fuse_opendir_fuse_reply__failed, sizeof(__pyx_k_fuse_opendir_fuse_reply__failed), 0, 1, 0, 0},
  {&__pyx_kp_u_fuse_options_must_be_of_type_str, __pyx_k_fuse_options_must_be_of_type_str, sizeof(__pyx_k_fuse_options_must_be_of_type_str), 0, 1, 0, 0},
  {&__pyx_kp_u_fuse_read_fuse_reply__failed_wit, __pyx_k_fuse_read_fuse_reply__failed_wit, sizeof(__pyx_k_fuse_read_fuse_reply__failed_wit), 0, 1, 0, 0},
  {&__pyx_kp_u_fuse_readdir_fuse_reply__failed, __pyx_k_fuse_readdir_fuse_reply__failed, sizeof(__pyx_k_fuse_readdir_fuse_reply__failed), 0, 1, 0, 0},
  {&__pyx_kp_u_fuse_readlink_fuse_reply__failed, __pyx_k_fuse_readlink_fuse_reply__failed, sizeof(__pyx_k_fuse_readlink_fuse_reply__failed), 0, 1, 0, 0},
  {&__pyx_kp_u_fuse_release_fuse_reply__failed, __pyx_k_fuse_release_fuse_reply__failed, sizeof(__pyx_k_fuse_release_fuse_reply__failed), 0, 1, 0, 0},
  {&__pyx_kp_u_fuse_releasedir_fuse_reply__fail, __pyx_k_fuse_releasedir_fuse_reply__fail, sizeof(__pyx_k_fuse_releasedir_fuse_reply__fail), 0, 1, 0, 0},
  {&__pyx_kp_u_fuse_removexattr_fuse_reply__fai, __pyx_k_fuse_removexattr_fuse_reply__fai, sizeof(__pyx_k_fuse_removexattr_fuse_reply__fai), 0, 1, 0, 0},
  {&__pyx_kp_u_fuse_rename_fuse_reply__failed_w, __pyx_k_fuse_rename_fuse_reply__failed_w, sizeof(__pyx_k_fuse_rename_fuse_reply__failed_w), 0, 1, 0, 0},
  {&__pyx_kp_u_fuse_rmdir_fuse_reply__failed_wi, __pyx_k_fuse_rmdir_fuse_reply__failed_wi, sizeof(__pyx_k_fuse_rmdir_fuse_reply__failed_wi), 0, 1, 0, 0},
  {&__pyx_kp_u_fuse_session_loop_failed, __pyx_k_fuse_session_loop_failed, sizeof(__pyx_k_fuse_session_loop_failed), 0, 1, 0, 0},
  {&__pyx_kp_u_fuse_session_loop_mt_failed, __pyx_k_fuse_session_loop_mt_failed, sizeof(__pyx_k_fuse_session_loop_mt_failed), 0, 1, 0, 0},
  {&__pyx_kp_u_fuse_set_signal_handlers_failed, __pyx_k_fuse_set_signal_handlers_failed, sizeof(__pyx_k_fuse_set_signal_handlers_failed), 0, 1, 0, 0},
  {&__pyx_kp_u_fuse_setattr_clock_gettime_CLOCK, __pyx_k_fuse_setattr_clock_gettime_CLOCK, sizeof(__pyx_k_fuse_setattr_clock_gettime_CLOCK), 0, 1, 0, 0},
  {&__pyx_kp_u_fuse_setattr_fuse_reply__failed, __pyx_k_fuse_setattr_fuse_reply__failed, sizeof(__pyx_k_fuse_setattr_fuse_reply__failed), 0, 1, 0, 0},
  {&__pyx_kp_u_fuse_setxattr_fuse_reply__failed, __pyx_k_fuse_setxattr_fuse_reply__failed, sizeof(__pyx_k_fuse_setxattr_fuse_reply__failed), 0, 1, 0, 0},
  {&__pyx_kp_u_fuse_statfs_fuse_reply__failed_w, __pyx_k_fuse_statfs_fuse_reply__failed_w, sizeof(__pyx_k_fuse_statfs_fuse_reply__failed_w), 0, 1, 0, 0},
  {&__pyx_kp_u_fuse_symlink_fuse_reply__failed, __pyx_k_fuse_symlink_fuse_reply__failed, sizeof(__pyx_k_fuse_symlink_fuse_reply__failed), 0, 1, 0, 0},
  {&__pyx_kp_u_fuse_unlink_fuse_reply__failed_w, __pyx_k_fuse_unlink_fuse_reply__failed_w, sizeof(__pyx_k_fuse_unlink_fuse_reply__failed_w), 0, 1, 0, 0},
  {&__pyx_kp_u_fuse_write_fuse_reply_err_d_fail, __pyx_k_fuse_write_fuse_reply_err_d_fail, sizeof(__pyx_k_fuse_write_fuse_reply_err_d_fail), 0, 1, 0, 0},
  {&__pyx_kp_u_fuse_write_fuse_reply_err_failed, __pyx_k_fuse_write_fuse_reply_err_failed, sizeof(__pyx_k_fuse_write_fuse_reply_err_failed), 0, 1, 0, 0},
  {&__pyx_kp_u_fuse_write_fuse_reply_write_fail, __pyx_k_fuse_write_fuse_reply_write_fail, sizeof(__pyx_k_fuse_write_fuse_reply_write_fail), 0, 1, 0, 0},
  {&__pyx_n_s_generation, __pyx_k_generation, sizeof(__pyx_k_generation), 0, 0, 1, 1},
  {&__pyx_n_s_get, __pyx_k_get, sizeof(__pyx_k_get), 0, 0, 1, 1},
  {&__pyx_n_s_getLogger, __pyx_k_getLogger, sizeof(__pyx_k_getLogger), 0, 0, 1, 1},
  {&__pyx_n_s_get_ino_t_bits, __pyx_k_get_ino_t_bits, sizeof(__pyx_k_get_ino_t_bits), 0, 0, 1, 1},
  {&__pyx_n_s_get_off_t_bits, __pyx_k_get_off_t_bits, sizeof(__pyx_k_get_off_t_bits), 0, 0, 1, 1},
  {&__pyx_n_s_getattr, __pyx_k_getattr, sizeof(__pyx_k_getattr), 0, 0, 1, 1},
  {&__pyx_n_s_getfilesystemencoding, __pyx_k_getfilesystemencoding, sizeof(__pyx_k_getfilesystemencoding), 0, 0, 1, 1},
  {&__pyx_n_s_getxattr, __pyx_k_getxattr, sizeof(__pyx_k_getxattr), 0, 0, 1, 1},
  {&__pyx_n_s_gid, __pyx_k_gid, sizeof(__pyx_k_gid), 0, 0, 1, 1},
  {&__pyx_kp_u_handler_raised_exception_sending, __pyx_k_handler_raised_exception_sending, sizeof(__pyx_k_handler_raised_exception_sending), 0, 1, 0, 0},
  {&__pyx_kp_s_home_nikratio_in_progress_pytho, __pyx_k_home_nikratio_in_progress_pytho, sizeof(__pyx_k_home_nikratio_in_progress_pytho), 0, 0, 1, 0},
  {&__pyx_kp_s_home_nikratio_in_progress_pytho_2, __pyx_k_home_nikratio_in_progress_pytho_2, sizeof(__pyx_k_home_nikratio_in_progress_pytho_2), 0, 0, 1, 0},
  {&__pyx_n_s_import, __pyx_k_import, sizeof(__pyx_k_import), 0, 0, 1, 1},
  {&__pyx_n_s_init, __pyx_k_init, sizeof(__pyx_k_init), 0, 0, 1, 1},
  {&__pyx_n_s_ino, __pyx_k_ino, sizeof(__pyx_k_ino), 0, 0, 1, 1},
  {&__pyx_n_s_inode, __pyx_k_inode, sizeof(__pyx_k_inode), 0, 0, 1, 1},
  {&__pyx_n_u_inode, __pyx_k_inode, sizeof(__pyx_k_inode), 0, 1, 0, 1},
  {&__pyx_n_s_inode_p, __pyx_k_inode_p, sizeof(__pyx_k_inode_p), 0, 0, 1, 1},
  {&__pyx_n_u_inode_p, __pyx_k_inode_p, sizeof(__pyx_k_inode_p), 0, 1, 0, 1},
  {&__pyx_n_s_inval_entry_req, __pyx_k_inval_entry_req, sizeof(__pyx_k_inval_entry_req), 0, 0, 1, 1},
  {&__pyx_n_u_inval_entry_req, __pyx_k_inval_entry_req, sizeof(__pyx_k_inval_entry_req), 0, 1, 0, 1},
  {&__pyx_n_s_inval_inode_req, __pyx_k_inval_inode_req, sizeof(__pyx_k_inval_inode_req), 0, 0, 1, 1},
  {&__pyx_n_u_inval_inode_req, __pyx_k_inval_inode_req, sizeof(__pyx_k_inval_inode_req), 0, 1, 0, 1},
  {&__pyx_n_s_invalidate_entry, __pyx_k_invalidate_entry, sizeof(__pyx_k_invalidate_entry), 0, 0, 1, 1},
  {&__pyx_n_s_invalidate_inode, __pyx_k_invalidate_inode, sizeof(__pyx_k_invalidate_inode), 0, 0, 1, 1},
  {&__pyx_n_s_join, __pyx_k_join, sizeof(__pyx_k_join), 0, 0, 1, 1},
  {&__pyx_n_s_len, __pyx_k_len, sizeof(__pyx_k_len), 0, 0, 1, 1},
  {&__pyx_n_s_link, __pyx_k_link, sizeof(__pyx_k_link), 0, 0, 1, 1},
  {&__pyx_n_s_listdir, __pyx_k_listdir, sizeof(__pyx_k_listdir), 0, 0, 1, 1},
  {&__pyx_n_s_listxattr, __pyx_k_listxattr, sizeof(__pyx_k_listxattr), 0, 0, 1, 1},
  {&__pyx_n_u_llfuse, __pyx_k_llfuse, sizeof(__pyx_k_llfuse), 0, 1, 0, 1},
  {&__pyx_n_s_llfuse_capi, __pyx_k_llfuse_capi, sizeof(__pyx_k_llfuse_capi), 0, 0, 1, 1},
  {&__pyx_n_s_llfuse_pyapi, __pyx_k_llfuse_pyapi, sizeof(__pyx_k_llfuse_pyapi), 0, 0, 1, 1},
  {&__pyx_n_s_lock, __pyx_k_lock, sizeof(__pyx_k_lock), 0, 0, 1, 1},
  {&__pyx_n_s_lock_released, __pyx_k_lock_released, sizeof(__pyx_k_lock_released), 0, 0, 1, 1},
  {&__pyx_n_s_log, __pyx_k_log, sizeof(__pyx_k_log), 0, 0, 1, 1},
  {&__pyx_n_s_logging, __pyx_k_logging, sizeof(__pyx_k_logging), 0, 0, 1, 1},
  {&__pyx_n_s_lookup, __pyx_k_lookup, sizeof(__pyx_k_lookup), 0, 0, 1, 1},
  {&__pyx_n_s_main, __pyx_k_main, sizeof(__pyx_k_main), 0, 0, 1, 1},
  {&__pyx_n_s_main_2, __pyx_k_main_2, sizeof(__pyx_k_main_2), 0, 0, 1, 1},
  {&__pyx_n_s_maxsize, __pyx_k_maxsize, sizeof(__pyx_k_maxsize), 0, 0, 1, 1},
  {&__pyx_n_s_mkdir, __pyx_k_mkdir, sizeof(__pyx_k_mkdir), 0, 0, 1, 1},
  {&__pyx_n_s_mknod, __pyx_k_mknod, sizeof(__pyx_k_mknod), 0, 0, 1, 1},
  {&__pyx_n_s_mountpoint, __pyx_k_mountpoint, sizeof(__pyx_k_mountpoint), 0, 0, 1, 1},
  {&__pyx_kp_u_mountpoint__argument_must_be_of, __pyx_k_mountpoint__argument_must_be_of, sizeof(__pyx_k_mountpoint__argument_must_be_of), 0, 1, 0, 0},
  {&__pyx_n_s_name, __pyx_k_name, sizeof(__pyx_k_name), 0, 0, 1, 1},
  {&__pyx_n_u_name, __pyx_k_name, sizeof(__pyx_k_name), 0, 1, 0, 1},
  {&__pyx_kp_u_name_argument_must_be_of_type_s, __pyx_k_name_argument_must_be_of_type_s, sizeof(__pyx_k_name_argument_must_be_of_type_s), 0, 1, 0, 0},
  {&__pyx_n_s_name_b, __pyx_k_name_b, sizeof(__pyx_k_name_b), 0, 0, 1, 1},
  {&__pyx_n_s_namedtuple, __pyx_k_namedtuple, sizeof(__pyx_k_namedtuple), 0, 0, 1, 1},
  {&__pyx_n_s_names, __pyx_k_names, sizeof(__pyx_k_names), 0, 0, 1, 1},
  {&__pyx_n_s_namespace, __pyx_k_namespace, sizeof(__pyx_k_namespace), 0, 0, 1, 1},
  {&__pyx_kp_u_namespace_parameter_must_be_sys, __pyx_k_namespace_parameter_must_be_sys, sizeof(__pyx_k_namespace_parameter_must_be_sys), 0, 1, 0, 0},
  {&__pyx_n_s_notify_loop, __pyx_k_notify_loop, sizeof(__pyx_k_notify_loop), 0, 0, 1, 1},
  {&__pyx_n_s_notify_queue, __pyx_k_notify_queue, sizeof(__pyx_k_notify_queue), 0, 0, 1, 1},
  {&__pyx_kp_b_o, __pyx_k_o, sizeof(__pyx_k_o), 0, 0, 0, 0},
  {&__pyx_n_s_open, __pyx_k_open, sizeof(__pyx_k_open), 0, 0, 1, 1},
  {&__pyx_n_s_opendir, __pyx_k_opendir, sizeof(__pyx_k_opendir), 0, 0, 1, 1},
  {&__pyx_n_s_ops, __pyx_k_ops, sizeof(__pyx_k_ops), 0, 0, 1, 1},
  {&__pyx_n_s_os, __pyx_k_os, sizeof(__pyx_k_os), 0, 0, 1, 1},
  {&__pyx_n_s_os_path, __pyx_k_os_path, sizeof(__pyx_k_os_path), 0, 0, 1, 1},
  {&__pyx_n_s_path, __pyx_k_path, sizeof(__pyx_k_path), 0, 0, 1, 1},
  {&__pyx_kp_u_path_argument_must_be_of_type_s, __pyx_k_path_argument_must_be_of_type_s, sizeof(__pyx_k_path_argument_must_be_of_type_s), 0, 1, 0, 0},
  {&__pyx_n_s_path_b, __pyx_k_path_b, sizeof(__pyx_k_path_b), 0, 0, 1, 1},
  {&__pyx_n_s_pid, __pyx_k_pid, sizeof(__pyx_k_pid), 0, 0, 1, 1},
  {&__pyx_n_s_put, __pyx_k_put, sizeof(__pyx_k_put), 0, 0, 1, 1},
  {&__pyx_n_s_queue, __pyx_k_queue, sizeof(__pyx_k_queue), 0, 0, 1, 1},
  {&__pyx_n_s_range, __pyx_k_range, sizeof(__pyx_k_range), 0, 0, 1, 1},
  {&__pyx_n_s_read, __pyx_k_read, sizeof(__pyx_k_read), 0, 0, 1, 1},
  {&__pyx_n_s_readdir, __pyx_k_readdir, sizeof(__pyx_k_readdir), 0, 0, 1, 1},
  {&__pyx_n_s_readlink, __pyx_k_readlink, sizeof(__pyx_k_readlink), 0, 0, 1, 1},
  {&__pyx_n_s_release, __pyx_k_release, sizeof(__pyx_k_release), 0, 0, 1, 1},
  {&__pyx_n_s_releasedir, __pyx_k_releasedir, sizeof(__pyx_k_releasedir), 0, 0, 1, 1},
  {&__pyx_n_s_removexattr, __pyx_k_removexattr, sizeof(__pyx_k_removexattr), 0, 0, 1, 1},
  {&__pyx_n_s_rename, __pyx_k_rename, sizeof(__pyx_k_rename), 0, 0, 1, 1},
  {&__pyx_n_s_req, __pyx_k_req, sizeof(__pyx_k_req), 0, 0, 1, 1},
  {&__pyx_n_s_res, __pyx_k_res, sizeof(__pyx_k_res), 0, 0, 1, 1},
  {&__pyx_n_s_ret, __pyx_k_ret, sizeof(__pyx_k_ret), 0, 0, 1, 1},
  {&__pyx_n_s_rmdir, __pyx_k_rmdir, sizeof(__pyx_k_rmdir), 0, 0, 1, 1},
  {&__pyx_n_s_setattr, __pyx_k_setattr, sizeof(__pyx_k_setattr), 0, 0, 1, 1},
  {&__pyx_n_s_setxattr, __pyx_k_setxattr, sizeof(__pyx_k_setxattr), 0, 0, 1, 1},
  {&__pyx_n_s_single, __pyx_k_single, sizeof(__pyx_k_single), 0, 0, 1, 1},
  {&__pyx_n_s_size_guess, __pyx_k_size_guess, sizeof(__pyx_k_size_guess), 0, 0, 1, 1},
  {&__pyx_n_s_st_atime, __pyx_k_st_atime, sizeof(__pyx_k_st_atime), 0, 0, 1, 1},
  {&__pyx_n_s_st_atime_ns, __pyx_k_st_atime_ns, sizeof(__pyx_k_st_atime_ns), 0, 0, 1, 1},
  {&__pyx_n_s_st_blksize, __pyx_k_st_blksize, sizeof(__pyx_k_st_blksize), 0, 0, 1, 1},
  {&__pyx_n_s_st_blocks, __pyx_k_st_blocks, sizeof(__pyx_k_st_blocks), 0, 0, 1, 1},
  {&__pyx_n_s_st_ctime, __pyx_k_st_ctime, sizeof(__pyx_k_st_ctime), 0, 0, 1, 1},
  {&__pyx_n_s_st_ctime_ns, __pyx_k_st_ctime_ns, sizeof(__pyx_k_st_ctime_ns), 0, 0, 1, 1},
  {&__pyx_n_s_st_gid, __pyx_k_st_gid, sizeof(__pyx_k_st_gid), 0, 0, 1, 1},
  {&__pyx_n_s_st_ino, __pyx_k_st_ino, sizeof(__pyx_k_st_ino), 0, 0, 1, 1},
  {&__pyx_n_s_st_mode, __pyx_k_st_mode, sizeof(__pyx_k_st_mode), 0, 0, 1, 1},
  {&__pyx_n_s_st_mtime, __pyx_k_st_mtime, sizeof(__pyx_k_st_mtime), 0, 0, 1, 1},
  {&__pyx_n_s_st_mtime_ns, __pyx_k_st_mtime_ns, sizeof(__pyx_k_st_mtime_ns), 0, 0, 1, 1},
  {&__pyx_n_s_st_nlink, __pyx_k_st_nlink, sizeof(__pyx_k_st_nlink), 0, 0, 1, 1},
  {&__pyx_n_s_st_rdev, __pyx_k_st_rdev, sizeof(__pyx_k_st_rdev), 0, 0, 1, 1},
  {&__pyx_n_s_st_size, __pyx_k_st_size, sizeof(__pyx_k_st_size), 0, 0, 1, 1},
  {&__pyx_n_s_st_uid, __pyx_k_st_uid, sizeof(__pyx_k_st_uid), 0, 0, 1, 1},
  {&__pyx_n_s_stacktrace, __pyx_k_stacktrace, sizeof(__pyx_k_stacktrace), 0, 0, 1, 1},
  {&__pyx_n_s_start, __pyx_k_start, sizeof(__pyx_k_start), 0, 0, 1, 1},
  {&__pyx_n_s_statfs, __pyx_k_statfs, sizeof(__pyx_k_statfs), 0, 0, 1, 1},
  {&__pyx_n_s_str_t, __pyx_k_str_t, sizeof(__pyx_k_str_t), 0, 0, 1, 1},
  {&__pyx_n_s_strerror, __pyx_k_strerror, sizeof(__pyx_k_strerror), 0, 0, 1, 1},
  {&__pyx_n_u_surrogateescape, __pyx_k_surrogateescape, sizeof(__pyx_k_surrogateescape), 0, 1, 0, 1},
  {&__pyx_n_s_symlink, __pyx_k_symlink, sizeof(__pyx_k_symlink), 0, 0, 1, 1},
  {&__pyx_n_s_sys, __pyx_k_sys, sizeof(__pyx_k_sys), 0, 0, 1, 1},
  {&__pyx_n_u_system, __pyx_k_system, sizeof(__pyx_k_system), 0, 1, 0, 1},
  {&__pyx_n_s_t, __pyx_k_t, sizeof(__pyx_k_t), 0, 0, 1, 1},
  {&__pyx_n_s_target, __pyx_k_target, sizeof(__pyx_k_target), 0, 0, 1, 1},
  {&__pyx_n_s_test, __pyx_k_test, sizeof(__pyx_k_test), 0, 0, 1, 1},
  {&__pyx_n_s_threading, __pyx_k_threading, sizeof(__pyx_k_threading), 0, 0, 1, 1},
  {&__pyx_n_s_timeout, __pyx_k_timeout, sizeof(__pyx_k_timeout), 0, 0, 1, 1},
  {&__pyx_n_s_tmp, __pyx_k_tmp, sizeof(__pyx_k_tmp), 0, 0, 1, 1},
  {&__pyx_n_s_uid, __pyx_k_uid, sizeof(__pyx_k_uid), 0, 0, 1, 1},
  {&__pyx_n_s_umask, __pyx_k_umask, sizeof(__pyx_k_umask), 0, 0, 1, 1},
  {&__pyx_n_s_unlink, __pyx_k_unlink, sizeof(__pyx_k_unlink), 0, 0, 1, 1},
  {&__pyx_n_s_unmount, __pyx_k_unmount, sizeof(__pyx_k_unmount), 0, 0, 1, 1},
  {&__pyx_kp_u_us_ascii, __pyx_k_us_ascii, sizeof(__pyx_k_us_ascii), 0, 1, 0, 0},
  {&__pyx_n_u_user, __pyx_k_user, sizeof(__pyx_k_user), 0, 1, 0, 1},
  {&__pyx_n_s_value, __pyx_k_value, sizeof(__pyx_k_value), 0, 0, 1, 1},
  {&__pyx_n_s_version, __pyx_k_version, sizeof(__pyx_k_version), 0, 0, 1, 1},
  {&__pyx_n_s_with_traceback, __pyx_k_with_traceback, sizeof(__pyx_k_with_traceback), 0, 0, 1, 1},
  {&__pyx_n_s_write, __pyx_k_write, sizeof(__pyx_k_write), 0, 0, 1, 1},
  {0, 0, 0, 0, 0, 0, 0}
};
static int __Pyx_InitCachedBuiltins(void) {
  __pyx_builtin_BaseException = __Pyx_GetBuiltinName(__pyx_n_s_BaseException); if (!__pyx_builtin_BaseException) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 18; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_builtin_TypeError = __Pyx_GetBuiltinName(__pyx_n_s_TypeError); if (!__pyx_builtin_TypeError) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 152; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_builtin_enumerate = __Pyx_GetBuiltinName(__pyx_n_s_enumerate); if (!__pyx_builtin_enumerate) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 169; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_builtin_range = __Pyx_GetBuiltinName(__pyx_n_s_range); if (!__pyx_builtin_range) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 178; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_builtin_RuntimeError = __Pyx_GetBuiltinName(__pyx_n_s_RuntimeError); if (!__pyx_builtin_RuntimeError) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 219; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_builtin_OSError = __Pyx_GetBuiltinName(__pyx_n_s_OSError); if (!__pyx_builtin_OSError) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 43; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_builtin_ValueError = __Pyx_GetBuiltinName(__pyx_n_s_ValueError); if (!__pyx_builtin_ValueError) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 88; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  return 0;
  __pyx_L1_error:;
  return -1;
}

static int __Pyx_InitCachedConstants(void) {
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__Pyx_InitCachedConstants", 0);

  /* "src/llfuse/handlers.pxi":16
 * cdef void fuse_init (void *userdata, fuse_conn_info *conn) with gil:
 *     try:
 *         with lock:             # <<<<<<<<<<<<<<
 *             operations.init()
 *     except BaseException as e:
 */
  __pyx_tuple_ = PyTuple_Pack(3, Py_None, Py_None, Py_None); if (unlikely(!__pyx_tuple_)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 16; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_tuple_);
  __Pyx_GIVEREF(__pyx_tuple_);

  /* "src/llfuse/handlers.pxi":32
 *             exc_info = sys.exc_info()
 *         else:
 *             log.exception('Exception after kill:')             # <<<<<<<<<<<<<<
 * 
 * cdef void fuse_lookup (fuse_req_t req, fuse_ino_t parent,
 */
  __pyx_tuple__2 = PyTuple_Pack(1, __pyx_kp_u_Exception_after_kill); if (unlikely(!__pyx_tuple__2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 32; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_tuple__2);
  __Pyx_GIVEREF(__pyx_tuple__2);

  /* "src/llfuse/handlers.pxi":40
 * 
 *     try:
 *         with lock:             # <<<<<<<<<<<<<<
 *             attr = operations.lookup(parent, PyBytes_FromString(name))
 *         fill_entry_param(attr, &entry)
 */
  __pyx_tuple__3 = PyTuple_Pack(3, Py_None, Py_None, Py_None); if (unlikely(!__pyx_tuple__3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 40; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_tuple__3);
  __Pyx_GIVEREF(__pyx_tuple__3);

  /* "src/llfuse/handlers.pxi":56
 *                        ulong_t nlookup) with gil:
 *     try:
 *         with lock:             # <<<<<<<<<<<<<<
 *             operations.forget([(ino, nlookup)])
 *     except BaseException as e:
 */
  __pyx_tuple__4 = PyTuple_Pack(3, Py_None, Py_None, Py_None); if (unlikely(!__pyx_tuple__4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 56; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_tuple__4);
  __Pyx_GIVEREF(__pyx_tuple__4);

  /* "src/llfuse/handlers.pxi":69
 * 
 *     try:
 *         with lock:             # <<<<<<<<<<<<<<
 *             attr = operations.getattr(ino)
 * 
 */
  __pyx_tuple__5 = PyTuple_Pack(3, Py_None, Py_None, Py_None); if (unlikely(!__pyx_tuple__5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 69; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_tuple__5);
  __Pyx_GIVEREF(__pyx_tuple__5);

  /* "src/llfuse/handlers.pxi":138
 *             attr.st_size = None
 * 
 *         with lock:             # <<<<<<<<<<<<<<
 *             attr = operations.setattr(ino, attr)
 * 
 */
  __pyx_tuple__6 = PyTuple_Pack(3, Py_None, Py_None, Py_None); if (unlikely(!__pyx_tuple__6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 138; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_tuple__6);
  __Pyx_GIVEREF(__pyx_tuple__6);

  /* "src/llfuse/handlers.pxi":156
 *     cdef char* name
 *     try:
 *         with lock:             # <<<<<<<<<<<<<<
 *             target = operations.readlink(ino)
 *         name = PyBytes_AsString(target)
 */
  __pyx_tuple__7 = PyTuple_Pack(3, Py_None, Py_None, Py_None); if (unlikely(!__pyx_tuple__7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 156; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_tuple__7);
  __Pyx_GIVEREF(__pyx_tuple__7);

  /* "src/llfuse/handlers.pxi":175
 *     try:
 *         ctx = get_request_context(req)
 *         with lock:             # <<<<<<<<<<<<<<
 *             attr = operations.mknod(parent, PyBytes_FromString(name), mode,
 *                                     rdev, ctx)
 */
  __pyx_tuple__8 = PyTuple_Pack(3, Py_None, Py_None, Py_None); if (unlikely(!__pyx_tuple__8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 175; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_tuple__8);
  __Pyx_GIVEREF(__pyx_tuple__8);

  /* "src/llfuse/handlers.pxi":198
 *         mode = <mode_t> ((mode & ~S_IFMT) | S_IFDIR)
 *         ctx = get_request_context(req)
 *         with lock:             # <<<<<<<<<<<<<<
 *             attr = operations.mkdir(parent, PyBytes_FromString(name), mode, ctx)
 *         fill_entry_param(attr, &entry)
 */
  __pyx_tuple__9 = PyTuple_Pack(3, Py_None, Py_None, Py_None); if (unlikely(!__pyx_tuple__9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 198; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_tuple__9);
  __Pyx_GIVEREF(__pyx_tuple__9);

  /* "src/llfuse/handlers.pxi":214
 * 
 *     try:
 *         with lock:             # <<<<<<<<<<<<<<
 *             operations.unlink(parent, PyBytes_FromString(name))
 *         ret = fuse_reply_err(req, 0)
 */
  __pyx_tuple__10 = PyTuple_Pack(3, Py_None, Py_None, Py_None); if (unlikely(!__pyx_tuple__10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_tuple__10);
  __Pyx_GIVEREF(__pyx_tuple__10);

  /* "src/llfuse/handlers.pxi":229
 * 
 *     try:
 *         with lock:             # <<<<<<<<<<<<<<
 *             operations.rmdir(parent, PyBytes_FromString(name))
 *         ret = fuse_reply_err(req, 0)
 */
  __pyx_tuple__11 = PyTuple_Pack(3, Py_None, Py_None, Py_None); if (unlikely(!__pyx_tuple__11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 229; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_tuple__11);
  __Pyx_GIVEREF(__pyx_tuple__11);

  /* "src/llfuse/handlers.pxi":247
 *     try:
 *         ctx = get_request_context(req)
 *         with lock:             # <<<<<<<<<<<<<<
 *             attr = operations.symlink(parent, PyBytes_FromString(name),
 *                                       PyBytes_FromString(link), ctx)
 */
  __pyx_tuple__12 = PyTuple_Pack(3, Py_None, Py_None, Py_None); if (unlikely(!__pyx_tuple__12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 247; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_tuple__12);
  __Pyx_GIVEREF(__pyx_tuple__12);

  /* "src/llfuse/handlers.pxi":265
 * 
 *     try:
 *         with lock:             # <<<<<<<<<<<<<<
 *             operations.rename(parent, PyBytes_FromString(name),
 *                               newparent, PyBytes_FromString(newname))
 */
  __pyx_tuple__13 = PyTuple_Pack(3, Py_None, Py_None, Py_None); if (unlikely(!__pyx_tuple__13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 265; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_tuple__13);
  __Pyx_GIVEREF(__pyx_tuple__13);

  /* "src/llfuse/handlers.pxi":283
 * 
 *     try:
 *         with lock:             # <<<<<<<<<<<<<<
 *             attr = operations.link(ino, newparent, PyBytes_FromString(newname))
 *         fill_entry_param(attr, &entry)
 */
  __pyx_tuple__14 = PyTuple_Pack(3, Py_None, Py_None, Py_None); if (unlikely(!__pyx_tuple__14)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 283; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_tuple__14);
  __Pyx_GIVEREF(__pyx_tuple__14);

  /* "src/llfuse/handlers.pxi":300
 * 
 *     try:
 *         with lock:             # <<<<<<<<<<<<<<
 *             fi.fh = operations.open(ino, fi.flags)
 * 
 */
  __pyx_tuple__15 = PyTuple_Pack(3, Py_None, Py_None, Py_None); if (unlikely(!__pyx_tuple__15)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 300; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_tuple__15);
  __Pyx_GIVEREF(__pyx_tuple__15);

  /* "src/llfuse/handlers.pxi":323
 * 
 *     try:
 *         with lock:             # <<<<<<<<<<<<<<
 *             buf = operations.read(fi.fh, off, size)
 *         PyBytes_AsStringAndSize(buf, &cbuf, &len_)
 */
  __pyx_tuple__16 = PyTuple_Pack(3, Py_None, Py_None, Py_None); if (unlikely(!__pyx_tuple__16)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 323; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_tuple__16);
  __Pyx_GIVEREF(__pyx_tuple__16);

  /* "src/llfuse/handlers.pxi":345
 *     try:
 *         pbuf = PyBytes_FromStringAndSize(buf, size)
 *         with lock:             # <<<<<<<<<<<<<<
 *             len_ = operations.write(fi.fh, off, pbuf)
 *         ret = fuse_reply_write(req, len_)
 */
  __pyx_tuple__17 = PyTuple_Pack(3, Py_None, Py_None, Py_None); if (unlikely(!__pyx_tuple__17)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 345; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_tuple__17);
  __Pyx_GIVEREF(__pyx_tuple__17);

  /* "src/llfuse/handlers.pxi":364
 * 
 *     try:
 *         with lock:             # <<<<<<<<<<<<<<
 *             operations.flush(fi.fh)
 *         ret = fuse_reply_err(req, 0)
 */
  __pyx_tuple__18 = PyTuple_Pack(3, Py_None, Py_None, Py_None); if (unlikely(!__pyx_tuple__18)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 364; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_tuple__18);
  __Pyx_GIVEREF(__pyx_tuple__18);

  /* "src/llfuse/handlers.pxi":379
 * 
 *     try:
 *         with lock:             # <<<<<<<<<<<<<<
 *             operations.release(fi.fh)
 *         ret = fuse_reply_err(req, 0)
 */
  __pyx_tuple__19 = PyTuple_Pack(3, Py_None, Py_None, Py_None); if (unlikely(!__pyx_tuple__19)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 379; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_tuple__19);
  __Pyx_GIVEREF(__pyx_tuple__19);

  /* "src/llfuse/handlers.pxi":395
 * 
 *     try:
 *         with lock:             # <<<<<<<<<<<<<<
 *             operations.fsync(fi.fh, datasync != 0)
 *         ret = fuse_reply_err(req, 0)
 */
  __pyx_tuple__20 = PyTuple_Pack(3, Py_None, Py_None, Py_None); if (unlikely(!__pyx_tuple__20)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 395; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_tuple__20);
  __Pyx_GIVEREF(__pyx_tuple__20);

  /* "src/llfuse/handlers.pxi":410
 * 
 *     try:
 *         with lock:             # <<<<<<<<<<<<<<
 *             fi.fh = operations.opendir(ino)
 * 
 */
  __pyx_tuple__21 = PyTuple_Pack(3, Py_None, Py_None, Py_None); if (unlikely(!__pyx_tuple__21)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 410; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_tuple__21);
  __Pyx_GIVEREF(__pyx_tuple__21);

  /* "src/llfuse/handlers.pxi":436
 *         acc_size = 0
 *         buf = NULL
 *         with lock:             # <<<<<<<<<<<<<<
 *             for (name, attr, next_) in operations.readdir(fi.fh, off):
 *                 if buf == NULL:
 */
  __pyx_tuple__22 = PyTuple_Pack(3, Py_None, Py_None, Py_None); if (unlikely(!__pyx_tuple__22)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 436; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_tuple__22);
  __Pyx_GIVEREF(__pyx_tuple__22);

  /* "src/llfuse/handlers.pxi":463
 * 
 *     try:
 *         with lock:             # <<<<<<<<<<<<<<
 *             operations.releasedir(fi.fh)
 *         ret = fuse_reply_err(req, 0)
 */
  __pyx_tuple__23 = PyTuple_Pack(3, Py_None, Py_None, Py_None); if (unlikely(!__pyx_tuple__23)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 463; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_tuple__23);
  __Pyx_GIVEREF(__pyx_tuple__23);

  /* "src/llfuse/handlers.pxi":480
 * 
 *     try:
 *         with lock:             # <<<<<<<<<<<<<<
 *             operations.fsyncdir(fi.fh, datasync != 0)
 *         ret = fuse_reply_err(req, 0)
 */
  __pyx_tuple__24 = PyTuple_Pack(3, Py_None, Py_None, Py_None); if (unlikely(!__pyx_tuple__24)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 480; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_tuple__24);
  __Pyx_GIVEREF(__pyx_tuple__24);

  /* "src/llfuse/handlers.pxi":499
 *     string.memset(&cstats, 0, sizeof(cstats))
 *     try:
 *         with lock:             # <<<<<<<<<<<<<<
 *             stats = operations.statfs()
 * 
 */
  __pyx_tuple__25 = PyTuple_Pack(3, Py_None, Py_None, Py_None); if (unlikely(!__pyx_tuple__25)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 499; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_tuple__25);
  __Pyx_GIVEREF(__pyx_tuple__25);

  /* "src/llfuse/handlers.pxi":548
 *             IF TARGET_PLATFORM == 'freebsd':
 *                 # No known flags
 *                 with lock:             # <<<<<<<<<<<<<<
 *                     operations.setxattr(ino, name, value)
 *             ELSE:
 */
  __pyx_tuple__26 = PyTuple_Pack(3, Py_None, Py_None, Py_None); if (unlikely(!__pyx_tuple__26)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 548; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_tuple__26);
  __Pyx_GIVEREF(__pyx_tuple__26);

  /* "src/llfuse/handlers.pxi":599
 *     try:
 *         name = PyBytes_FromString(cname)
 *         with lock:             # <<<<<<<<<<<<<<
 *             buf = operations.getxattr(ino, name)
 *         PyBytes_AsStringAndSize(buf, &cbuf, &len_)
 */
  __pyx_tuple__27 = PyTuple_Pack(3, Py_None, Py_None, Py_None); if (unlikely(!__pyx_tuple__27)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 599; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_tuple__27);
  __Pyx_GIVEREF(__pyx_tuple__27);

  /* "src/llfuse/handlers.pxi":622
 *     cdef char *cbuf
 *     try:
 *         with lock:             # <<<<<<<<<<<<<<
 *             buf = b'\0'.join(operations.listxattr(ino)) + b'\0'
 * 
 */
  __pyx_tuple__29 = PyTuple_Pack(3, Py_None, Py_None, Py_None); if (unlikely(!__pyx_tuple__29)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 622; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_tuple__29);
  __Pyx_GIVEREF(__pyx_tuple__29);

  /* "src/llfuse/handlers.pxi":648
 *     try:
 *         name = PyBytes_FromString(cname)
 *         with lock:             # <<<<<<<<<<<<<<
 *             operations.removexattr(ino, name)
 *         ret = fuse_reply_err(req, 0)
 */
  __pyx_tuple__30 = PyTuple_Pack(3, Py_None, Py_None, Py_None); if (unlikely(!__pyx_tuple__30)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 648; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_tuple__30);
  __Pyx_GIVEREF(__pyx_tuple__30);

  /* "src/llfuse/handlers.pxi":664
 *     try:
 *         ctx = get_request_context(req)
 *         with lock:             # <<<<<<<<<<<<<<
 *             allowed = operations.access(ino, mask, ctx)
 *         if allowed:
 */
  __pyx_tuple__31 = PyTuple_Pack(3, Py_None, Py_None, Py_None); if (unlikely(!__pyx_tuple__31)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 664; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_tuple__31);
  __Pyx_GIVEREF(__pyx_tuple__31);

  /* "src/llfuse/handlers.pxi":687
 *         ctx = get_request_context(req)
 *         name = PyBytes_FromString(cname)
 *         with lock:             # <<<<<<<<<<<<<<
 *             (fi.fh, attr) = operations.create(parent, name, mode, fi.flags, ctx)
 * 
 */
  __pyx_tuple__32 = PyTuple_Pack(3, Py_None, Py_None, Py_None); if (unlikely(!__pyx_tuple__32)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 687; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_tuple__32);
  __Pyx_GIVEREF(__pyx_tuple__32);

  /* "src/llfuse/misc.pxi":79
 *     if not exc_info:
 *         exc_info = sys.exc_info()
 *         log.debug('handler raised exception, sending SIGTERM to self.')             # <<<<<<<<<<<<<<
 *         kill(getpid(), SIGTERM)
 *     else:
 */
  __pyx_tuple__33 = PyTuple_Pack(1, __pyx_kp_u_handler_raised_exception_sending); if (unlikely(!__pyx_tuple__33)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 79; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_tuple__33);
  __Pyx_GIVEREF(__pyx_tuple__33);

  /* "src/llfuse/misc.pxi":82
 *         kill(getpid(), SIGTERM)
 *     else:
 *         log.exception('Exception after kill:')             # <<<<<<<<<<<<<<
 * 
 *     if req is NULL:
 */
  __pyx_tuple__34 = PyTuple_Pack(1, __pyx_kp_u_Exception_after_kill); if (unlikely(!__pyx_tuple__34)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 82; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_tuple__34);
  __Pyx_GIVEREF(__pyx_tuple__34);

  /* "src/llfuse/misc.pxi":152
 *     for el in args:
 *         if not isinstance(el, str_t):
 *             raise TypeError('fuse options must be of type str')             # <<<<<<<<<<<<<<
 *         args_new.append(b'-o')
 *         args_new.append(el.encode('us-ascii'))
 */
  __pyx_tuple__35 = PyTuple_Pack(1, __pyx_kp_u_fuse_options_must_be_of_type_str); if (unlikely(!__pyx_tuple__35)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 152; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_tuple__35);
  __Pyx_GIVEREF(__pyx_tuple__35);

  /* "src/llfuse/misc.pxi":154
 *             raise TypeError('fuse options must be of type str')
 *         args_new.append(b'-o')
 *         args_new.append(el.encode('us-ascii'))             # <<<<<<<<<<<<<<
 *     args = args_new
 * 
 */
  __pyx_tuple__36 = PyTuple_Pack(1, __pyx_kp_u_us_ascii); if (unlikely(!__pyx_tuple__36)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 154; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_tuple__36);
  __Pyx_GIVEREF(__pyx_tuple__36);

  /* "src/llfuse/misc.pxi":192
 * 
 *     def __init__(self):
 *         raise TypeError('You should not instantiate this class, use the '             # <<<<<<<<<<<<<<
 *                         'provided instance instead.')
 * 
 */
  __pyx_tuple__37 = PyTuple_Pack(1, __pyx_kp_u_You_should_not_instantiate_this); if (unlikely(!__pyx_tuple__37)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 192; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_tuple__37);
  __Pyx_GIVEREF(__pyx_tuple__37);

  /* "src/llfuse/misc.pxi":219
 *             return False
 *         elif ret == EDEADLK:
 *             raise RuntimeError("Global lock cannot be acquired more than once")             # <<<<<<<<<<<<<<
 *         elif ret == EPROTO:
 *             raise RuntimeError("Lock still taken after receiving unlock notification")
 */
  __pyx_tuple__38 = PyTuple_Pack(1, __pyx_kp_u_Global_lock_cannot_be_acquired_m); if (unlikely(!__pyx_tuple__38)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 219; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_tuple__38);
  __Pyx_GIVEREF(__pyx_tuple__38);

  /* "src/llfuse/misc.pxi":221
 *             raise RuntimeError("Global lock cannot be acquired more than once")
 *         elif ret == EPROTO:
 *             raise RuntimeError("Lock still taken after receiving unlock notification")             # <<<<<<<<<<<<<<
 *         elif ret == EINVAL:
 *             raise RuntimeError("Lock not initialized")
 */
  __pyx_tuple__39 = PyTuple_Pack(1, __pyx_kp_u_Lock_still_taken_after_receiving); if (unlikely(!__pyx_tuple__39)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 221; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_tuple__39);
  __Pyx_GIVEREF(__pyx_tuple__39);

  /* "src/llfuse/misc.pxi":223
 *             raise RuntimeError("Lock still taken after receiving unlock notification")
 *         elif ret == EINVAL:
 *             raise RuntimeError("Lock not initialized")             # <<<<<<<<<<<<<<
 *         else:
 *             raise RuntimeError(strerror(ret))
 */
  __pyx_tuple__40 = PyTuple_Pack(1, __pyx_kp_u_Lock_not_initialized); if (unlikely(!__pyx_tuple__40)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 223; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_tuple__40);
  __Pyx_GIVEREF(__pyx_tuple__40);

  /* "src/llfuse/misc.pxi":237
 *              return
 *         elif ret == EPERM:
 *             raise RuntimeError("Lock can only be released by the holding thread")             # <<<<<<<<<<<<<<
 *         elif ret == EINVAL:
 *             raise RuntimeError("Lock not initialized")
 */
  __pyx_tuple__41 = PyTuple_Pack(1, __pyx_kp_u_Lock_can_only_be_released_by_the); if (unlikely(!__pyx_tuple__41)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 237; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_tuple__41);
  __Pyx_GIVEREF(__pyx_tuple__41);

  /* "src/llfuse/misc.pxi":239
 *             raise RuntimeError("Lock can only be released by the holding thread")
 *         elif ret == EINVAL:
 *             raise RuntimeError("Lock not initialized")             # <<<<<<<<<<<<<<
 *         else:
 *             raise RuntimeError(strerror(ret))
 */
  __pyx_tuple__42 = PyTuple_Pack(1, __pyx_kp_u_Lock_not_initialized); if (unlikely(!__pyx_tuple__42)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 239; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_tuple__42);
  __Pyx_GIVEREF(__pyx_tuple__42);

  /* "src/llfuse/misc.pxi":261
 *             return
 *         elif ret == EPERM:
 *             raise RuntimeError("Lock can only be released by the holding thread")             # <<<<<<<<<<<<<<
 *         elif ret == EPROTO:
 *             raise RuntimeError("Lock still taken after receiving unlock notification")
 */
  __pyx_tuple__43 = PyTuple_Pack(1, __pyx_kp_u_Lock_can_only_be_released_by_the); if (unlikely(!__pyx_tuple__43)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 261; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_tuple__43);
  __Pyx_GIVEREF(__pyx_tuple__43);

  /* "src/llfuse/misc.pxi":263
 *             raise RuntimeError("Lock can only be released by the holding thread")
 *         elif ret == EPROTO:
 *             raise RuntimeError("Lock still taken after receiving unlock notification")             # <<<<<<<<<<<<<<
 *         elif ret == ENOMSG:
 *             raise RuntimeError("Other thread didn't take lock")
 */
  __pyx_tuple__44 = PyTuple_Pack(1, __pyx_kp_u_Lock_still_taken_after_receiving); if (unlikely(!__pyx_tuple__44)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 263; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_tuple__44);
  __Pyx_GIVEREF(__pyx_tuple__44);

  /* "src/llfuse/misc.pxi":265
 *             raise RuntimeError("Lock still taken after receiving unlock notification")
 *         elif ret == ENOMSG:
 *             raise RuntimeError("Other thread didn't take lock")             # <<<<<<<<<<<<<<
 *         elif ret == EINVAL:
 *             raise RuntimeError("Lock not initialized")
 */
  __pyx_tuple__45 = PyTuple_Pack(1, __pyx_kp_u_Other_thread_didn_t_take_lock); if (unlikely(!__pyx_tuple__45)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 265; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_tuple__45);
  __Pyx_GIVEREF(__pyx_tuple__45);

  /* "src/llfuse/misc.pxi":267
 *             raise RuntimeError("Other thread didn't take lock")
 *         elif ret == EINVAL:
 *             raise RuntimeError("Lock not initialized")             # <<<<<<<<<<<<<<
 *         else:
 *             raise RuntimeError(strerror(ret))
 */
  __pyx_tuple__46 = PyTuple_Pack(1, __pyx_kp_u_Lock_not_initialized); if (unlikely(!__pyx_tuple__46)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 267; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_tuple__46);
  __Pyx_GIVEREF(__pyx_tuple__46);

  /* "src/llfuse/misc.pxi":282
 * 
 *     def __init__(self):
 *         raise TypeError('You should not instantiate this class, use the '             # <<<<<<<<<<<<<<
 *                         'provided instance instead.')
 * 
 */
  __pyx_tuple__47 = PyTuple_Pack(1, __pyx_kp_u_You_should_not_instantiate_this); if (unlikely(!__pyx_tuple__47)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 282; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_tuple__47);
  __Pyx_GIVEREF(__pyx_tuple__47);

  /* "src/llfuse/fuse_api.pxi":28
 * 
 *     if not isinstance(path, str_t):
 *         raise TypeError('*path* argument must be of type str')             # <<<<<<<<<<<<<<
 * 
 *     cdef dirent.DIR* dirp
 */
  __pyx_tuple__48 = PyTuple_Pack(1, __pyx_kp_u_path_argument_must_be_of_type_s); if (unlikely(!__pyx_tuple__48)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 28; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_tuple__48);
  __Pyx_GIVEREF(__pyx_tuple__48);

  /* "src/llfuse/fuse_api.pxi":82
 * 
 *     if not isinstance(path, str_t):
 *         raise TypeError('*path* argument must be of type str')             # <<<<<<<<<<<<<<
 * 
 *     if not isinstance(name, str_t):
 */
  __pyx_tuple__51 = PyTuple_Pack(1, __pyx_kp_u_path_argument_must_be_of_type_s); if (unlikely(!__pyx_tuple__51)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 82; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_tuple__51);
  __Pyx_GIVEREF(__pyx_tuple__51);

  /* "src/llfuse/fuse_api.pxi":85
 * 
 *     if not isinstance(name, str_t):
 *         raise TypeError('*name* argument must be of type str')             # <<<<<<<<<<<<<<
 * 
 *     if namespace not in ('system', 'user'):
 */
  __pyx_tuple__52 = PyTuple_Pack(1, __pyx_kp_u_name_argument_must_be_of_type_s); if (unlikely(!__pyx_tuple__52)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 85; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_tuple__52);
  __Pyx_GIVEREF(__pyx_tuple__52);

  /* "src/llfuse/fuse_api.pxi":144
 * 
 *     if not isinstance(path, str_t):
 *         raise TypeError('*path* argument must be of type str')             # <<<<<<<<<<<<<<
 * 
 *     if not isinstance(name, str_t):
 */
  __pyx_tuple__53 = PyTuple_Pack(1, __pyx_kp_u_path_argument_must_be_of_type_s); if (unlikely(!__pyx_tuple__53)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 144; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_tuple__53);
  __Pyx_GIVEREF(__pyx_tuple__53);

  /* "src/llfuse/fuse_api.pxi":147
 * 
 *     if not isinstance(name, str_t):
 *         raise TypeError('*name* argument must be of type str')             # <<<<<<<<<<<<<<
 * 
 *     if namespace not in ('system', 'user'):
 */
  __pyx_tuple__54 = PyTuple_Pack(1, __pyx_kp_u_name_argument_must_be_of_type_s); if (unlikely(!__pyx_tuple__54)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 147; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_tuple__54);
  __Pyx_GIVEREF(__pyx_tuple__54);

  /* "src/llfuse/fuse_api.pxi":231
 *     '''
 * 
 *     log.debug('Initializing llfuse')             # <<<<<<<<<<<<<<
 *     cdef fuse_args f_args
 * 
 */
  __pyx_tuple__55 = PyTuple_Pack(1, __pyx_kp_u_Initializing_llfuse); if (unlikely(!__pyx_tuple__55)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 231; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_tuple__55);
  __Pyx_GIVEREF(__pyx_tuple__55);

  /* "src/llfuse/fuse_api.pxi":235
 * 
 *     if not isinstance(mountpoint, str_t):
 *         raise TypeError('*mountpoint_* argument must be of type str')             # <<<<<<<<<<<<<<
 * 
 *     global operations
 */
  __pyx_tuple__56 = PyTuple_Pack(1, __pyx_kp_u_mountpoint__argument_must_be_of); if (unlikely(!__pyx_tuple__56)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 235; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_tuple__56);
  __Pyx_GIVEREF(__pyx_tuple__56);

  /* "src/llfuse/fuse_api.pxi":250
 * 
 *     make_fuse_args(args, &f_args)
 *     log.debug('Calling fuse_mount')             # <<<<<<<<<<<<<<
 *     channel = fuse_mount(<char*>mountpoint_b, &f_args)
 *     if not channel:
 */
  __pyx_tuple__57 = PyTuple_Pack(1, __pyx_kp_u_Calling_fuse_mount); if (unlikely(!__pyx_tuple__57)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 250; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_tuple__57);
  __Pyx_GIVEREF(__pyx_tuple__57);

  /* "src/llfuse/fuse_api.pxi":253
 *     channel = fuse_mount(<char*>mountpoint_b, &f_args)
 *     if not channel:
 *         raise RuntimeError('fuse_mount failed')             # <<<<<<<<<<<<<<
 * 
 *     log.debug('Calling fuse_lowlevel_new')
 */
  __pyx_tuple__58 = PyTuple_Pack(1, __pyx_kp_u_fuse_mount_failed); if (unlikely(!__pyx_tuple__58)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 253; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_tuple__58);
  __Pyx_GIVEREF(__pyx_tuple__58);

  /* "src/llfuse/fuse_api.pxi":255
 *         raise RuntimeError('fuse_mount failed')
 * 
 *     log.debug('Calling fuse_lowlevel_new')             # <<<<<<<<<<<<<<
 *     init_fuse_ops()
 *     session = fuse_lowlevel_new(&f_args, &fuse_ops, sizeof(fuse_ops), NULL)
 */
  __pyx_tuple__59 = PyTuple_Pack(1, __pyx_kp_u_Calling_fuse_lowlevel_new); if (unlikely(!__pyx_tuple__59)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 255; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_tuple__59);
  __Pyx_GIVEREF(__pyx_tuple__59);

  /* "src/llfuse/fuse_api.pxi":260
 *     if not session:
 *         fuse_unmount(<char*>mountpoint_b, channel)
 *         raise RuntimeError("fuse_lowlevel_new() failed")             # <<<<<<<<<<<<<<
 * 
 *     log.debug('Calling fuse_set_signal_handlers')
 */
  __pyx_tuple__60 = PyTuple_Pack(1, __pyx_kp_u_fuse_lowlevel_new_failed); if (unlikely(!__pyx_tuple__60)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 260; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_tuple__60);
  __Pyx_GIVEREF(__pyx_tuple__60);

  /* "src/llfuse/fuse_api.pxi":262
 *         raise RuntimeError("fuse_lowlevel_new() failed")
 * 
 *     log.debug('Calling fuse_set_signal_handlers')             # <<<<<<<<<<<<<<
 *     if fuse_set_signal_handlers(session) == -1:
 *         fuse_session_destroy(session)
 */
  __pyx_tuple__61 = PyTuple_Pack(1, __pyx_kp_u_Calling_fuse_set_signal_handlers); if (unlikely(!__pyx_tuple__61)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 262; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_tuple__61);
  __Pyx_GIVEREF(__pyx_tuple__61);

  /* "src/llfuse/fuse_api.pxi":266
 *         fuse_session_destroy(session)
 *         fuse_unmount(<char*>mountpoint_b, channel)
 *         raise RuntimeError("fuse_set_signal_handlers() failed")             # <<<<<<<<<<<<<<
 * 
 *     log.debug('Calling fuse_session_add_chan')
 */
  __pyx_tuple__62 = PyTuple_Pack(1, __pyx_kp_u_fuse_set_signal_handlers_failed); if (unlikely(!__pyx_tuple__62)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 266; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_tuple__62);
  __Pyx_GIVEREF(__pyx_tuple__62);

  /* "src/llfuse/fuse_api.pxi":268
 *         raise RuntimeError("fuse_set_signal_handlers() failed")
 * 
 *     log.debug('Calling fuse_session_add_chan')             # <<<<<<<<<<<<<<
 *     fuse_session_add_chan(session, channel)
 * 
 */
  __pyx_tuple__63 = PyTuple_Pack(1, __pyx_kp_u_Calling_fuse_session_add_chan); if (unlikely(!__pyx_tuple__63)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 268; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_tuple__63);
  __Pyx_GIVEREF(__pyx_tuple__63);

  /* "src/llfuse/fuse_api.pxi":283
 * 
 *     if session == NULL:
 *         raise RuntimeError('Need to call init() before main()')             # <<<<<<<<<<<<<<
 * 
 *     # Start notification handling thread
 */
  __pyx_tuple__64 = PyTuple_Pack(1, __pyx_kp_u_Need_to_call_init_before_main); if (unlikely(!__pyx_tuple__64)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 283; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_tuple__64);
  __Pyx_GIVEREF(__pyx_tuple__64);

  /* "src/llfuse/fuse_api.pxi":293
 * 
 *     if single:
 *         log.debug('Calling fuse_session_loop')             # <<<<<<<<<<<<<<
 *         with nogil:
 *             ret = fuse_session_loop(session)
 */
  __pyx_tuple__65 = PyTuple_Pack(1, __pyx_kp_u_Calling_fuse_session_loop); if (unlikely(!__pyx_tuple__65)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 293; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_tuple__65);
  __Pyx_GIVEREF(__pyx_tuple__65);

  /* "src/llfuse/fuse_api.pxi":296
 *         with nogil:
 *             ret = fuse_session_loop(session)
 *         _notify_queue.put(None, block=True, timeout=5) # Stop notification thread             # <<<<<<<<<<<<<<
 *         if ret != 0:
 *             raise RuntimeError("fuse_session_loop failed")
 */
  __pyx_tuple__66 = PyTuple_Pack(1, Py_None); if (unlikely(!__pyx_tuple__66)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 296; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_tuple__66);
  __Pyx_GIVEREF(__pyx_tuple__66);

  /* "src/llfuse/fuse_api.pxi":298
 *         _notify_queue.put(None, block=True, timeout=5) # Stop notification thread
 *         if ret != 0:
 *             raise RuntimeError("fuse_session_loop failed")             # <<<<<<<<<<<<<<
 *     else:
 *         log.debug('Calling fuse_session_loop_mt')
 */
  __pyx_tuple__67 = PyTuple_Pack(1, __pyx_kp_u_fuse_session_loop_failed); if (unlikely(!__pyx_tuple__67)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 298; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_tuple__67);
  __Pyx_GIVEREF(__pyx_tuple__67);

  /* "src/llfuse/fuse_api.pxi":300
 *             raise RuntimeError("fuse_session_loop failed")
 *     else:
 *         log.debug('Calling fuse_session_loop_mt')             # <<<<<<<<<<<<<<
 *         with nogil:
 *             ret = fuse_session_loop_mt(session)
 */
  __pyx_tuple__68 = PyTuple_Pack(1, __pyx_kp_u_Calling_fuse_session_loop_mt); if (unlikely(!__pyx_tuple__68)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 300; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_tuple__68);
  __Pyx_GIVEREF(__pyx_tuple__68);

  /* "src/llfuse/fuse_api.pxi":303
 *         with nogil:
 *             ret = fuse_session_loop_mt(session)
 *         _notify_queue.put(None, block=True, timeout=5) # Stop notification thread             # <<<<<<<<<<<<<<
 *         if ret != 0:
 *             raise RuntimeError("fuse_session_loop_mt() failed")
 */
  __pyx_tuple__69 = PyTuple_Pack(1, Py_None); if (unlikely(!__pyx_tuple__69)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 303; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_tuple__69);
  __Pyx_GIVEREF(__pyx_tuple__69);

  /* "src/llfuse/fuse_api.pxi":305
 *         _notify_queue.put(None, block=True, timeout=5) # Stop notification thread
 *         if ret != 0:
 *             raise RuntimeError("fuse_session_loop_mt() failed")             # <<<<<<<<<<<<<<
 * 
 *     if exc_info:
 */
  __pyx_tuple__70 = PyTuple_Pack(1, __pyx_kp_u_fuse_session_loop_mt_failed); if (unlikely(!__pyx_tuple__70)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 305; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_tuple__70);
  __Pyx_GIVEREF(__pyx_tuple__70);

  /* "src/llfuse/fuse_api.pxi":309
 *     if exc_info:
 *         # Re-raise expression from request handler
 *         log.debug('Terminated main loop because request handler raised exception, re-raising..')             # <<<<<<<<<<<<<<
 *         tmp = exc_info
 *         exc_info = None
 */
  __pyx_tuple__71 = PyTuple_Pack(1, __pyx_kp_u_Terminated_main_loop_because_req); if (unlikely(!__pyx_tuple__71)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 309; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_tuple__71);
  __Pyx_GIVEREF(__pyx_tuple__71);

  /* "src/llfuse/fuse_api.pxi":335
 *     global exc_info
 * 
 *     log.debug('Calling fuse_session_remove_chan')             # <<<<<<<<<<<<<<
 *     fuse_session_remove_chan(channel)
 *     log.debug('Calling fuse_remove_signal_handlers')
 */
  __pyx_tuple__72 = PyTuple_Pack(1, __pyx_kp_u_Calling_fuse_session_remove_chan); if (unlikely(!__pyx_tuple__72)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 335; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_tuple__72);
  __Pyx_GIVEREF(__pyx_tuple__72);

  /* "src/llfuse/fuse_api.pxi":337
 *     log.debug('Calling fuse_session_remove_chan')
 *     fuse_session_remove_chan(channel)
 *     log.debug('Calling fuse_remove_signal_handlers')             # <<<<<<<<<<<<<<
 *     fuse_remove_signal_handlers(session)
 *     log.debug('Calling fuse_session_destroy')
 */
  __pyx_tuple__73 = PyTuple_Pack(1, __pyx_kp_u_Calling_fuse_remove_signal_handl); if (unlikely(!__pyx_tuple__73)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 337; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_tuple__73);
  __Pyx_GIVEREF(__pyx_tuple__73);

  /* "src/llfuse/fuse_api.pxi":339
 *     log.debug('Calling fuse_remove_signal_handlers')
 *     fuse_remove_signal_handlers(session)
 *     log.debug('Calling fuse_session_destroy')             # <<<<<<<<<<<<<<
 *     fuse_session_destroy(session)
 * 
 */
  __pyx_tuple__74 = PyTuple_Pack(1, __pyx_kp_u_Calling_fuse_session_destroy); if (unlikely(!__pyx_tuple__74)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 339; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_tuple__74);
  __Pyx_GIVEREF(__pyx_tuple__74);

  /* "src/llfuse/fuse_api.pxi":343
 * 
 *     if unmount:
 *         log.debug('Calling fuse_unmount')             # <<<<<<<<<<<<<<
 *         fuse_unmount(<char*>mountpoint_b, channel)
 *     else:
 */
  __pyx_tuple__75 = PyTuple_Pack(1, __pyx_kp_u_Calling_fuse_unmount); if (unlikely(!__pyx_tuple__75)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 343; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_tuple__75);
  __Pyx_GIVEREF(__pyx_tuple__75);

  /* "llfuse/capi.pyx":93
 * ##################
 * 
 * log = logging.getLogger("llfuse")             # <<<<<<<<<<<<<<
 * fse = sys.getfilesystemencoding()
 * 
 */
  __pyx_tuple__76 = PyTuple_Pack(1, __pyx_n_u_llfuse); if (unlikely(!__pyx_tuple__76)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 93; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_tuple__76);
  __Pyx_GIVEREF(__pyx_tuple__76);

  /* "src/llfuse/misc.pxi":291
 *         lock.acquire()
 * 
 * def _notify_loop():             # <<<<<<<<<<<<<<
 *     '''Read notifications from queue and send to FUSE kernel module'''
 * 
 */
  __pyx_tuple__77 = PyTuple_Pack(4, __pyx_n_s_len, __pyx_n_s_ino, __pyx_n_s_cname, __pyx_n_s_req); if (unlikely(!__pyx_tuple__77)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 291; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_tuple__77);
  __Pyx_GIVEREF(__pyx_tuple__77);
  __pyx_codeobj__78 = (PyObject*)__Pyx_PyCode_New(0, 0, 4, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__77, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_home_nikratio_in_progress_pytho, __pyx_n_s_notify_loop, 291, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__78)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 291; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "src/llfuse/fuse_api.pxi":14
 * '''
 * 
 * def listdir(path):             # <<<<<<<<<<<<<<
 *     '''Like `os.listdir`, but releases the GIL.
 * 
 */
  __pyx_tuple__79 = PyTuple_Pack(8, __pyx_n_s_path, __pyx_n_s_dirp, __pyx_n_s_ent, __pyx_n_s_res, __pyx_n_s_ret, __pyx_n_s_buf, __pyx_n_s_path_b, __pyx_n_s_names); if (unlikely(!__pyx_tuple__79)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 14; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_tuple__79);
  __Pyx_GIVEREF(__pyx_tuple__79);
  __pyx_codeobj__80 = (PyObject*)__Pyx_PyCode_New(1, 0, 8, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__79, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_home_nikratio_in_progress_pytho_2, __pyx_n_s_listdir, 14, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__80)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 14; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "src/llfuse/fuse_api.pxi":66
 * 
 * 
 * def setxattr(path, name, bytes value, namespace='user'):             # <<<<<<<<<<<<<<
 *     '''Set extended attribute
 * 
 */
  __pyx_tuple__81 = PyTuple_Pack(12, __pyx_n_s_path, __pyx_n_s_name, __pyx_n_s_value, __pyx_n_s_namespace, __pyx_n_s_ret, __pyx_n_s_len, __pyx_n_s_cvalue, __pyx_n_s_cpath, __pyx_n_s_cname, __pyx_n_s_cnamespace, __pyx_n_s_path_b, __pyx_n_s_name_b); if (unlikely(!__pyx_tuple__81)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 66; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_tuple__81);
  __Pyx_GIVEREF(__pyx_tuple__81);
  __pyx_codeobj__82 = (PyObject*)__Pyx_PyCode_New(4, 0, 12, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__81, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_home_nikratio_in_progress_pytho_2, __pyx_n_s_setxattr, 66, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__82)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 66; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "src/llfuse/fuse_api.pxi":122
 * 
 * 
 * def getxattr(path, name, int size_guess=128, namespace='user'):             # <<<<<<<<<<<<<<
 *     '''Get extended attribute
 * 
 */
  __pyx_tuple__83 = PyTuple_Pack(12, __pyx_n_s_path, __pyx_n_s_name, __pyx_n_s_size_guess, __pyx_n_s_namespace, __pyx_n_s_ret, __pyx_n_s_buf, __pyx_n_s_cpath, __pyx_n_s_cname, __pyx_n_s_bufsize, __pyx_n_s_cnamespace, __pyx_n_s_path_b, __pyx_n_s_name_b); if (unlikely(!__pyx_tuple__83)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 122; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_tuple__83);
  __Pyx_GIVEREF(__pyx_tuple__83);
  __pyx_codeobj__84 = (PyObject*)__Pyx_PyCode_New(4, 0, 12, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__83, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_home_nikratio_in_progress_pytho_2, __pyx_n_s_getxattr, 122, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__84)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 122; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "src/llfuse/fuse_api.pxi":218
 *         stdlib.free(buf)
 * 
 * def init(ops, mountpoint, list args):             # <<<<<<<<<<<<<<
 *     '''Initialize and mount FUSE file system
 * 
 */
  __pyx_tuple__85 = PyTuple_Pack(4, __pyx_n_s_ops, __pyx_n_s_mountpoint, __pyx_n_s_args, __pyx_n_s_f_args); if (unlikely(!__pyx_tuple__85)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 218; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_tuple__85);
  __Pyx_GIVEREF(__pyx_tuple__85);
  __pyx_codeobj__86 = (PyObject*)__Pyx_PyCode_New(3, 0, 4, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__85, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_home_nikratio_in_progress_pytho_2, __pyx_n_s_init, 218, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__86)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 218; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "src/llfuse/fuse_api.pxi":271
 *     fuse_session_add_chan(session, channel)
 * 
 * def main(single=False):             # <<<<<<<<<<<<<<
 *     '''Run FUSE main loop
 * 
 */
  __pyx_tuple__87 = PyTuple_Pack(4, __pyx_n_s_single, __pyx_n_s_ret, __pyx_n_s_t, __pyx_n_s_tmp); if (unlikely(!__pyx_tuple__87)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 271; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_tuple__87);
  __Pyx_GIVEREF(__pyx_tuple__87);
  __pyx_codeobj__88 = (PyObject*)__Pyx_PyCode_New(1, 0, 4, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__87, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_home_nikratio_in_progress_pytho_2, __pyx_n_s_main_2, 271, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__88)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 271; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "src/llfuse/fuse_api.pxi":321
 *             raise tmp[1].with_traceback(tmp[2])
 * 
 * def close(unmount=True):             # <<<<<<<<<<<<<<
 *     '''Unmount file system and clean up
 * 
 */
  __pyx_tuple__89 = PyTuple_Pack(2, __pyx_n_s_unmount, __pyx_n_s_tmp); if (unlikely(!__pyx_tuple__89)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 321; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_tuple__89);
  __Pyx_GIVEREF(__pyx_tuple__89);
  __pyx_codeobj__90 = (PyObject*)__Pyx_PyCode_New(1, 0, 2, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__89, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_home_nikratio_in_progress_pytho_2, __pyx_n_s_close, 321, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__90)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 321; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "src/llfuse/fuse_api.pxi":365
 *             raise tmp[1].with_traceback(tmp[2])
 * 
 * def invalidate_inode(int inode, attr_only=False):             # <<<<<<<<<<<<<<
 *     '''Invalidate cache for *inode*
 * 
 */
  __pyx_tuple__91 = PyTuple_Pack(2, __pyx_n_s_inode, __pyx_n_s_attr_only); if (unlikely(!__pyx_tuple__91)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 365; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_tuple__91);
  __Pyx_GIVEREF(__pyx_tuple__91);
  __pyx_codeobj__92 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__91, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_home_nikratio_in_progress_pytho_2, __pyx_n_s_invalidate_inode, 365, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__92)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 365; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "src/llfuse/fuse_api.pxi":376
 *     _notify_queue.put(inval_inode_req(inode, attr_only))
 * 
 * def invalidate_entry(int inode_p, bytes name):             # <<<<<<<<<<<<<<
 *     '''Invalidate directory entry
 * 
 */
  __pyx_tuple__93 = PyTuple_Pack(2, __pyx_n_s_inode_p, __pyx_n_s_name); if (unlikely(!__pyx_tuple__93)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 376; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_tuple__93);
  __Pyx_GIVEREF(__pyx_tuple__93);
  __pyx_codeobj__94 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__93, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_home_nikratio_in_progress_pytho_2, __pyx_n_s_invalidate_entry, 376, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__94)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 376; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "src/llfuse/fuse_api.pxi":387
 *     _notify_queue.put(inval_entry_req(inode_p, name))
 * 
 * def get_ino_t_bits():             # <<<<<<<<<<<<<<
 *     '''Return number of bits available for inode numbers
 * 
 */
  __pyx_codeobj__95 = (PyObject*)__Pyx_PyCode_New(0, 0, 0, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_home_nikratio_in_progress_pytho_2, __pyx_n_s_get_ino_t_bits, 387, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__95)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 387; __pyx_clineno = __LINE__; goto __pyx_L1_error;}

  /* "src/llfuse/fuse_api.pxi":395
 *     return min(sizeof(ino_t), sizeof(fuse_ino_t)) * 8
 * 
 * def get_off_t_bits():             # <<<<<<<<<<<<<<
 *     '''Return number of bytes available for file offsets
 * 
 */
  __pyx_codeobj__96 = (PyObject*)__Pyx_PyCode_New(0, 0, 0, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_home_nikratio_in_progress_pytho_2, __pyx_n_s_get_off_t_bits, 395, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__96)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 395; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_RefNannyFinishContext();
  return 0;
  __pyx_L1_error:;
  __Pyx_RefNannyFinishContext();
  return -1;
}

static int __Pyx_InitGlobals(void) {
  if (__Pyx_InitStrings(__pyx_string_tab) < 0) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
  __pyx_float_1e9 = PyFloat_FromDouble(1e9); if (unlikely(!__pyx_float_1e9)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_int_0 = PyInt_FromLong(0); if (unlikely(!__pyx_int_0)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_int_1 = PyInt_FromLong(1); if (unlikely(!__pyx_int_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_int_5 = PyInt_FromLong(5); if (unlikely(!__pyx_int_5)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_int_1000 = PyInt_FromLong(1000); if (unlikely(!__pyx_int_1000)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_int_1000000000 = PyInt_FromLong(1000000000L); if (unlikely(!__pyx_int_1000000000)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  return 0;
  __pyx_L1_error:;
  return -1;
}

#if PY_MAJOR_VERSION < 3
PyMODINIT_FUNC initcapi(void); /*proto*/
PyMODINIT_FUNC initcapi(void)
#else
PyMODINIT_FUNC PyInit_capi(void); /*proto*/
PyMODINIT_FUNC PyInit_capi(void)
#endif
{
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  int __pyx_t_3;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  Py_ssize_t __pyx_t_6;
  PyObject *__pyx_t_7 = NULL;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannyDeclarations
  #if CYTHON_REFNANNY
  __Pyx_RefNanny = __Pyx_RefNannyImportAPI("refnanny");
  if (!__Pyx_RefNanny) {
      PyErr_Clear();
      __Pyx_RefNanny = __Pyx_RefNannyImportAPI("Cython.Runtime.refnanny");
      if (!__Pyx_RefNanny)
          Py_FatalError("failed to import 'refnanny' module");
  }
  #endif
  __Pyx_RefNannySetupContext("PyMODINIT_FUNC PyInit_capi(void)", 0);
  if ( __Pyx_check_binary_version() < 0) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_empty_tuple = PyTuple_New(0); if (unlikely(!__pyx_empty_tuple)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_empty_bytes = PyBytes_FromStringAndSize("", 0); if (unlikely(!__pyx_empty_bytes)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  #ifdef __Pyx_CyFunction_USED
  if (__Pyx_CyFunction_init() < 0) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  #endif
  #ifdef __Pyx_FusedFunction_USED
  if (__pyx_FusedFunction_init() < 0) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  #endif
  #ifdef __Pyx_Generator_USED
  if (__pyx_Generator_init() < 0) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  #endif
  /*--- Library function declarations ---*/
  /*--- Threads initialization code ---*/
  #if defined(__PYX_FORCE_INIT_THREADS) && __PYX_FORCE_INIT_THREADS
  #ifdef WITH_THREAD /* Python build with threading support? */
  PyEval_InitThreads();
  #endif
  #endif
  /*--- Module creation code ---*/
  #if PY_MAJOR_VERSION < 3
  __pyx_m = Py_InitModule4("capi", __pyx_methods, __pyx_k_capi_pxy_Copyright_2013_Nikolau, 0, PYTHON_API_VERSION); Py_XINCREF(__pyx_m);
  #else
  __pyx_m = PyModule_Create(&__pyx_moduledef);
  #endif
  if (unlikely(!__pyx_m)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_d = PyModule_GetDict(__pyx_m); if (unlikely(!__pyx_d)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  Py_INCREF(__pyx_d);
  __pyx_b = PyImport_AddModule(__Pyx_BUILTIN_MODULE_NAME); if (unlikely(!__pyx_b)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  #if CYTHON_COMPILING_IN_PYPY
  Py_INCREF(__pyx_b);
  #endif
  if (PyObject_SetAttrString(__pyx_m, "__builtins__", __pyx_b) < 0) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
  /*--- Initialize various global constants etc. ---*/
  if (unlikely(__Pyx_InitGlobals() < 0)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  #if PY_MAJOR_VERSION < 3 && (__PYX_DEFAULT_STRING_ENCODING_IS_ASCII || __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT)
  if (__Pyx_init_sys_getdefaultencoding_params() < 0) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  #endif
  if (__pyx_module_is_main_llfuse__capi) {
    if (PyObject_SetAttrString(__pyx_m, "__name__", __pyx_n_s_main) < 0) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
  }
  #if PY_MAJOR_VERSION >= 3
  {
    PyObject *modules = PyImport_GetModuleDict(); if (unlikely(!modules)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    if (!PyDict_GetItemString(modules, "llfuse.capi")) {
      if (unlikely(PyDict_SetItemString(modules, "llfuse.capi", __pyx_m) < 0)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    }
  }
  #endif
  /*--- Builtin init code ---*/
  if (unlikely(__Pyx_InitCachedBuiltins() < 0)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  /*--- Constants init code ---*/
  if (unlikely(__Pyx_InitCachedConstants() < 0)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  /*--- Global init code ---*/
  __pyx_v_6llfuse_4capi_operations = Py_None; Py_INCREF(Py_None);
  __pyx_v_6llfuse_4capi_mountpoint_b = Py_None; Py_INCREF(Py_None);
  __pyx_v_6llfuse_4capi_exc_info = Py_None; Py_INCREF(Py_None);
  /*--- Variable export code ---*/
  /*--- Function export code ---*/
  /*--- Type init code ---*/
  if (PyType_Ready(&__pyx_type_6llfuse_4capi_Lock) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 185; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_type_6llfuse_4capi_Lock.tp_print = 0;
  if (PyObject_SetAttrString(__pyx_m, "Lock", (PyObject *)&__pyx_type_6llfuse_4capi_Lock) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 185; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_ptype_6llfuse_4capi_Lock = &__pyx_type_6llfuse_4capi_Lock;
  if (PyType_Ready(&__pyx_type_6llfuse_4capi_NoLockManager) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 278; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_type_6llfuse_4capi_NoLockManager.tp_print = 0;
  if (PyObject_SetAttrString(__pyx_m, "NoLockManager", (PyObject *)&__pyx_type_6llfuse_4capi_NoLockManager) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 278; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_ptype_6llfuse_4capi_NoLockManager = &__pyx_type_6llfuse_4capi_NoLockManager;
  /*--- Type import code ---*/
  /*--- Variable import code ---*/
  /*--- Function import code ---*/
  /*--- Execution code ---*/

  /* "llfuse/capi.pyx":13
 * cdef extern from *:
 *     char* LLFUSE_VERSION
 * __version__ = LLFUSE_VERSION.decode('utf-8')             # <<<<<<<<<<<<<<
 * 
 * 
 */
  __pyx_t_1 = __Pyx_decode_c_string(LLFUSE_VERSION, 0, strlen(LLFUSE_VERSION), NULL, NULL, PyUnicode_DecodeUTF8); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 13; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_version, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 13; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "llfuse/capi.pyx":74
 * ################
 * 
 * import os             # <<<<<<<<<<<<<<
 * import logging
 * import sys
 */
  __pyx_t_1 = __Pyx_Import(__pyx_n_s_os, 0, 0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 74; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_os, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 74; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "llfuse/capi.pyx":75
 * 
 * import os
 * import logging             # <<<<<<<<<<<<<<
 * import sys
 * import os.path
 */
  __pyx_t_1 = __Pyx_Import(__pyx_n_s_logging, 0, 0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 75; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_logging, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 75; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "llfuse/capi.pyx":76
 * import os
 * import logging
 * import sys             # <<<<<<<<<<<<<<
 * import os.path
 * import threading
 */
  __pyx_t_1 = __Pyx_Import(__pyx_n_s_sys, 0, 0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 76; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_sys, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 76; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "llfuse/capi.pyx":77
 * import logging
 * import sys
 * import os.path             # <<<<<<<<<<<<<<
 * import threading
 * from llfuse.pyapi import FUSEError, strerror, Operations, RequestContext, EntryAttributes
 */
  __pyx_t_1 = __Pyx_Import(__pyx_n_s_os_path, 0, 0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 77; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_os, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 77; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "llfuse/capi.pyx":78
 * import sys
 * import os.path
 * import threading             # <<<<<<<<<<<<<<
 * from llfuse.pyapi import FUSEError, strerror, Operations, RequestContext, EntryAttributes
 * from collections import namedtuple
 */
  __pyx_t_1 = __Pyx_Import(__pyx_n_s_threading, 0, 0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 78; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_threading, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 78; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "llfuse/capi.pyx":79
 * import os.path
 * import threading
 * from llfuse.pyapi import FUSEError, strerror, Operations, RequestContext, EntryAttributes             # <<<<<<<<<<<<<<
 * from collections import namedtuple
 * 
 */
  __pyx_t_1 = PyList_New(5); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 79; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_n_s_FUSEError);
  PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_FUSEError);
  __Pyx_GIVEREF(__pyx_n_s_FUSEError);
  __Pyx_INCREF(__pyx_n_s_strerror);
  PyList_SET_ITEM(__pyx_t_1, 1, __pyx_n_s_strerror);
  __Pyx_GIVEREF(__pyx_n_s_strerror);
  __Pyx_INCREF(__pyx_n_s_Operations);
  PyList_SET_ITEM(__pyx_t_1, 2, __pyx_n_s_Operations);
  __Pyx_GIVEREF(__pyx_n_s_Operations);
  __Pyx_INCREF(__pyx_n_s_RequestContext);
  PyList_SET_ITEM(__pyx_t_1, 3, __pyx_n_s_RequestContext);
  __Pyx_GIVEREF(__pyx_n_s_RequestContext);
  __Pyx_INCREF(__pyx_n_s_EntryAttributes);
  PyList_SET_ITEM(__pyx_t_1, 4, __pyx_n_s_EntryAttributes);
  __Pyx_GIVEREF(__pyx_n_s_EntryAttributes);
  __pyx_t_2 = __Pyx_Import(__pyx_n_s_llfuse_pyapi, __pyx_t_1, 0); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 79; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_FUSEError); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 79; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_FUSEError, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 79; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_strerror); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 79; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_strerror, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 79; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_Operations); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 79; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_Operations, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 79; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_RequestContext); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 79; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_RequestContext, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 79; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_EntryAttributes); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 79; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_EntryAttributes, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 79; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "llfuse/capi.pyx":80
 * import threading
 * from llfuse.pyapi import FUSEError, strerror, Operations, RequestContext, EntryAttributes
 * from collections import namedtuple             # <<<<<<<<<<<<<<
 * 
 * if PY_MAJOR_VERSION < 3:
 */
  __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 80; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_n_s_namedtuple);
  PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_namedtuple);
  __Pyx_GIVEREF(__pyx_n_s_namedtuple);
  __pyx_t_1 = __Pyx_Import(__pyx_n_s_collections, __pyx_t_2, 0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 80; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_namedtuple); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 80; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_namedtuple, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 80; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "llfuse/capi.pyx":82
 * from collections import namedtuple
 * 
 * if PY_MAJOR_VERSION < 3:             # <<<<<<<<<<<<<<
 *     from Queue import Queue
 *     str_t = bytes
 */
  __pyx_t_3 = ((PY_MAJOR_VERSION < 3) != 0);
  if (__pyx_t_3) {

    /* "llfuse/capi.pyx":83
 * 
 * if PY_MAJOR_VERSION < 3:
 *     from Queue import Queue             # <<<<<<<<<<<<<<
 *     str_t = bytes
 * else:
 */
    __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 83; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_n_s_Queue);
    PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_Queue);
    __Pyx_GIVEREF(__pyx_n_s_Queue);
    __pyx_t_2 = __Pyx_Import(__pyx_n_s_Queue, __pyx_t_1, 0); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 83; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_Queue); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 83; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    if (PyDict_SetItem(__pyx_d, __pyx_n_s_Queue, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 83; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

    /* "llfuse/capi.pyx":84
 * if PY_MAJOR_VERSION < 3:
 *     from Queue import Queue
 *     str_t = bytes             # <<<<<<<<<<<<<<
 * else:
 *     from queue import Queue
 */
    if (PyDict_SetItem(__pyx_d, __pyx_n_s_str_t, ((PyObject *)((PyObject*)(&PyBytes_Type)))) < 0) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 84; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    goto __pyx_L2;
  }
  /*else*/ {

    /* "llfuse/capi.pyx":86
 *     str_t = bytes
 * else:
 *     from queue import Queue             # <<<<<<<<<<<<<<
 *     str_t = str
 * 
 */
    __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 86; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_n_s_Queue);
    PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_Queue);
    __Pyx_GIVEREF(__pyx_n_s_Queue);
    __pyx_t_1 = __Pyx_Import(__pyx_n_s_queue, __pyx_t_2, 0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 86; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_Queue); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 86; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_GOTREF(__pyx_t_2);
    if (PyDict_SetItem(__pyx_d, __pyx_n_s_Queue, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 86; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

    /* "llfuse/capi.pyx":87
 * else:
 *     from queue import Queue
 *     str_t = str             # <<<<<<<<<<<<<<
 * 
 * ##################
 */
    if (PyDict_SetItem(__pyx_d, __pyx_n_s_str_t, ((PyObject *)((PyObject*)(&PyUnicode_Type)))) < 0) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 87; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  }
  __pyx_L2:;

  /* "llfuse/capi.pyx":93
 * ##################
 * 
 * log = logging.getLogger("llfuse")             # <<<<<<<<<<<<<<
 * fse = sys.getfilesystemencoding()
 * 
 */
  __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_logging); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 93; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_getLogger); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 93; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_tuple__76, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 93; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_log, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 93; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "llfuse/capi.pyx":94
 * 
 * log = logging.getLogger("llfuse")
 * fse = sys.getfilesystemencoding()             # <<<<<<<<<<<<<<
 * 
 * cdef object operations
 */
  __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_sys); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 94; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_getfilesystemencoding); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 94; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = NULL;
  if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_2)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
    }
  }
  if (__pyx_t_2) {
    __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 94; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  } else {
    __pyx_t_1 = __Pyx_PyObject_CallNoArg(__pyx_t_4); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 94; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  }
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_fse, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 94; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "llfuse/capi.pyx":98
 * cdef object operations
 * cdef object mountpoint_b
 * cdef fuse_session* session = NULL             # <<<<<<<<<<<<<<
 * cdef fuse_chan* channel = NULL
 * cdef fuse_lowlevel_ops fuse_ops
 */
  __pyx_v_6llfuse_4capi_session = NULL;

  /* "llfuse/capi.pyx":99
 * cdef object mountpoint_b
 * cdef fuse_session* session = NULL
 * cdef fuse_chan* channel = NULL             # <<<<<<<<<<<<<<
 * cdef fuse_lowlevel_ops fuse_ops
 * cdef object exc_info
 */
  __pyx_v_6llfuse_4capi_channel = NULL;

  /* "llfuse/capi.pyx":103
 * cdef object exc_info
 * 
 * init_lock()             # <<<<<<<<<<<<<<
 * lock = Lock.__new__(Lock)
 * lock_released = NoLockManager.__new__(NoLockManager)
 */
  init_lock();

  /* "llfuse/capi.pyx":104
 * 
 * init_lock()
 * lock = Lock.__new__(Lock)             # <<<<<<<<<<<<<<
 * lock_released = NoLockManager.__new__(NoLockManager)
 * 
 */
  __pyx_t_1 = __pyx_tp_new_6llfuse_4capi_Lock(((PyTypeObject *)((PyObject*)__pyx_ptype_6llfuse_4capi_Lock)), __pyx_empty_tuple, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 104; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_lock, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 104; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "llfuse/capi.pyx":105
 * init_lock()
 * lock = Lock.__new__(Lock)
 * lock_released = NoLockManager.__new__(NoLockManager)             # <<<<<<<<<<<<<<
 * 
 * _notify_queue = Queue(maxsize=1000)
 */
  __pyx_t_1 = __pyx_tp_new_6llfuse_4capi_NoLockManager(((PyTypeObject *)((PyObject*)__pyx_ptype_6llfuse_4capi_NoLockManager)), __pyx_empty_tuple, NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 105; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_lock_released, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 105; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "llfuse/capi.pyx":107
 * lock_released = NoLockManager.__new__(NoLockManager)
 * 
 * _notify_queue = Queue(maxsize=1000)             # <<<<<<<<<<<<<<
 * inval_inode_req = namedtuple('inval_inode_req', [ 'inode', 'attr_only' ])
 * inval_entry_req = namedtuple('inval_entry_req', [ 'inode_p', 'name' ])
 */
  __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_Queue); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 107; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_4 = PyDict_New(); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 107; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_maxsize, __pyx_int_1000) < 0) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 107; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_empty_tuple, __pyx_t_4); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 107; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_notify_queue, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 107; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "llfuse/capi.pyx":108
 * 
 * _notify_queue = Queue(maxsize=1000)
 * inval_inode_req = namedtuple('inval_inode_req', [ 'inode', 'attr_only' ])             # <<<<<<<<<<<<<<
 * inval_entry_req = namedtuple('inval_entry_req', [ 'inode_p', 'name' ])
 * 
 */
  __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_namedtuple); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 108; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_1 = PyList_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 108; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_n_u_inode);
  PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_u_inode);
  __Pyx_GIVEREF(__pyx_n_u_inode);
  __Pyx_INCREF(__pyx_n_u_attr_only);
  PyList_SET_ITEM(__pyx_t_1, 1, __pyx_n_u_attr_only);
  __Pyx_GIVEREF(__pyx_n_u_attr_only);
  __pyx_t_5 = NULL;
  __pyx_t_6 = 0;
  if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
      __pyx_t_6 = 1;
    }
  }
  __pyx_t_7 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 108; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_7);
  if (__pyx_t_5) {
    PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5); __Pyx_GIVEREF(__pyx_t_5); __pyx_t_5 = NULL;
  }
  __Pyx_INCREF(__pyx_n_u_inval_inode_req);
  PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_6, __pyx_n_u_inval_inode_req);
  __Pyx_GIVEREF(__pyx_n_u_inval_inode_req);
  PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_6, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_7, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 108; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_inval_inode_req, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 108; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "llfuse/capi.pyx":109
 * _notify_queue = Queue(maxsize=1000)
 * inval_inode_req = namedtuple('inval_inode_req', [ 'inode', 'attr_only' ])
 * inval_entry_req = namedtuple('inval_entry_req', [ 'inode_p', 'name' ])             # <<<<<<<<<<<<<<
 * 
 * # Exported for access from Python code
 */
  __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_namedtuple); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 109; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_7 = PyList_New(2); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 109; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_INCREF(__pyx_n_u_inode_p);
  PyList_SET_ITEM(__pyx_t_7, 0, __pyx_n_u_inode_p);
  __Pyx_GIVEREF(__pyx_n_u_inode_p);
  __Pyx_INCREF(__pyx_n_u_name);
  PyList_SET_ITEM(__pyx_t_7, 1, __pyx_n_u_name);
  __Pyx_GIVEREF(__pyx_n_u_name);
  __pyx_t_1 = NULL;
  __pyx_t_6 = 0;
  if (CYTHON_COMPILING_IN_CPYTHON && unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_1)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_1);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
      __pyx_t_6 = 1;
    }
  }
  __pyx_t_5 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 109; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_5);
  if (__pyx_t_1) {
    PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __pyx_t_1 = NULL;
  }
  __Pyx_INCREF(__pyx_n_u_inval_entry_req);
  PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_6, __pyx_n_u_inval_entry_req);
  __Pyx_GIVEREF(__pyx_n_u_inval_entry_req);
  PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_6, __pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_7);
  __pyx_t_7 = 0;
  __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_5, NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 109; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_inval_entry_req, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 109; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "llfuse/capi.pyx":112
 * 
 * # Exported for access from Python code
 * ROOT_INODE = FUSE_ROOT_ID             # <<<<<<<<<<<<<<
 * ENOATTR = errno.ENOATTR
 * 
 */
  __pyx_t_2 = __Pyx_PyInt_From_int(FUSE_ROOT_ID); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 112; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_ROOT_INODE, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 112; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "llfuse/capi.pyx":113
 * # Exported for access from Python code
 * ROOT_INODE = FUSE_ROOT_ID
 * ENOATTR = errno.ENOATTR             # <<<<<<<<<<<<<<
 * 
 * #######################
 */
  __pyx_t_2 = __Pyx_PyInt_From_int(ENOATTR); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 113; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_ENOATTR, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 113; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/llfuse/misc.pxi":291
 *         lock.acquire()
 * 
 * def _notify_loop():             # <<<<<<<<<<<<<<
 *     '''Read notifications from queue and send to FUSE kernel module'''
 * 
 */
  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_6llfuse_4capi_1_notify_loop, NULL, __pyx_n_s_llfuse_capi); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 291; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_notify_loop, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 291; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/llfuse/fuse_api.pxi":14
 * '''
 * 
 * def listdir(path):             # <<<<<<<<<<<<<<
 *     '''Like `os.listdir`, but releases the GIL.
 * 
 */
  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_6llfuse_4capi_3listdir, NULL, __pyx_n_s_llfuse_capi); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 14; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_listdir, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 14; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/llfuse/fuse_api.pxi":66
 * 
 * 
 * def setxattr(path, name, bytes value, namespace='user'):             # <<<<<<<<<<<<<<
 *     '''Set extended attribute
 * 
 */
  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_6llfuse_4capi_5setxattr, NULL, __pyx_n_s_llfuse_capi); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 66; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_setxattr, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 66; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/llfuse/fuse_api.pxi":122
 * 
 * 
 * def getxattr(path, name, int size_guess=128, namespace='user'):             # <<<<<<<<<<<<<<
 *     '''Get extended attribute
 * 
 */
  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_6llfuse_4capi_7getxattr, NULL, __pyx_n_s_llfuse_capi); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 122; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_getxattr, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 122; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/llfuse/fuse_api.pxi":218
 *         stdlib.free(buf)
 * 
 * def init(ops, mountpoint, list args):             # <<<<<<<<<<<<<<
 *     '''Initialize and mount FUSE file system
 * 
 */
  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_6llfuse_4capi_9init, NULL, __pyx_n_s_llfuse_capi); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 218; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_init, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 218; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/llfuse/fuse_api.pxi":271
 *     fuse_session_add_chan(session, channel)
 * 
 * def main(single=False):             # <<<<<<<<<<<<<<
 *     '''Run FUSE main loop
 * 
 */
  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_6llfuse_4capi_11main, NULL, __pyx_n_s_llfuse_capi); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 271; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_main_2, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 271; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/llfuse/fuse_api.pxi":321
 *             raise tmp[1].with_traceback(tmp[2])
 * 
 * def close(unmount=True):             # <<<<<<<<<<<<<<
 *     '''Unmount file system and clean up
 * 
 */
  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_6llfuse_4capi_13close, NULL, __pyx_n_s_llfuse_capi); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 321; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_close, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 321; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/llfuse/fuse_api.pxi":365
 *             raise tmp[1].with_traceback(tmp[2])
 * 
 * def invalidate_inode(int inode, attr_only=False):             # <<<<<<<<<<<<<<
 *     '''Invalidate cache for *inode*
 * 
 */
  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_6llfuse_4capi_15invalidate_inode, NULL, __pyx_n_s_llfuse_capi); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 365; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_invalidate_inode, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 365; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/llfuse/fuse_api.pxi":376
 *     _notify_queue.put(inval_inode_req(inode, attr_only))
 * 
 * def invalidate_entry(int inode_p, bytes name):             # <<<<<<<<<<<<<<
 *     '''Invalidate directory entry
 * 
 */
  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_6llfuse_4capi_17invalidate_entry, NULL, __pyx_n_s_llfuse_capi); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 376; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_invalidate_entry, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 376; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/llfuse/fuse_api.pxi":387
 *     _notify_queue.put(inval_entry_req(inode_p, name))
 * 
 * def get_ino_t_bits():             # <<<<<<<<<<<<<<
 *     '''Return number of bits available for inode numbers
 * 
 */
  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_6llfuse_4capi_19get_ino_t_bits, NULL, __pyx_n_s_llfuse_capi); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 387; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_get_ino_t_bits, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 387; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "src/llfuse/fuse_api.pxi":395
 *     return min(sizeof(ino_t), sizeof(fuse_ino_t)) * 8
 * 
 * def get_off_t_bits():             # <<<<<<<<<<<<<<
 *     '''Return number of bytes available for file offsets
 * 
 */
  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_6llfuse_4capi_21get_off_t_bits, NULL, __pyx_n_s_llfuse_capi); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 395; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_get_off_t_bits, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 395; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /* "llfuse/capi.pyx":1
 * '''             # <<<<<<<<<<<<<<
 * capi.pxy
 * 
 */
  __pyx_t_2 = PyDict_New(); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_test, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;

  /*--- Wrapped vars code ---*/

  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_7);
  if (__pyx_m) {
    if (__pyx_d) {
      __Pyx_AddTraceback("init llfuse.capi", __pyx_clineno, __pyx_lineno, __pyx_filename);
    }
    Py_DECREF(__pyx_m); __pyx_m = 0;
  } else if (!PyErr_Occurred()) {
    PyErr_SetString(PyExc_ImportError, "init llfuse.capi");
  }
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  #if PY_MAJOR_VERSION < 3
  return;
  #else
  return __pyx_m;
  #endif
}

/* Runtime support code */
#if CYTHON_REFNANNY
static __Pyx_RefNannyAPIStruct *__Pyx_RefNannyImportAPI(const char *modname) {
    PyObject *m = NULL, *p = NULL;
    void *r = NULL;
    m = PyImport_ImportModule((char *)modname);
    if (!m) goto end;
    p = PyObject_GetAttrString(m, (char *)"RefNannyAPI");
    if (!p) goto end;
    r = PyLong_AsVoidPtr(p);
end:
    Py_XDECREF(p);
    Py_XDECREF(m);
    return (__Pyx_RefNannyAPIStruct *)r;
}
#endif

static PyObject *__Pyx_GetBuiltinName(PyObject *name) {
    PyObject* result = __Pyx_PyObject_GetAttrStr(__pyx_b, name);
    if (unlikely(!result)) {
        PyErr_Format(PyExc_NameError,
#if PY_MAJOR_VERSION >= 3
            "name '%U' is not defined", name);
#else
            "name '%.200s' is not defined", PyString_AS_STRING(name));
#endif
    }
    return result;
}

static CYTHON_INLINE PyObject *__Pyx_GetModuleGlobalName(PyObject *name) {
    PyObject *result;
#if CYTHON_COMPILING_IN_CPYTHON
    result = PyDict_GetItem(__pyx_d, name);
    if (likely(result)) {
        Py_INCREF(result);
    } else {
#else
    result = PyObject_GetItem(__pyx_d, name);
    if (!result) {
        PyErr_Clear();
#endif
        result = __Pyx_GetBuiltinName(name);
    }
    return result;
}

#if CYTHON_COMPILING_IN_CPYTHON
static CYTHON_INLINE PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg, PyObject *kw) {
    PyObject *result;
    ternaryfunc call = func->ob_type->tp_call;
    if (unlikely(!call))
        return PyObject_Call(func, arg, kw);
    if (unlikely(Py_EnterRecursiveCall((char*)" while calling a Python object")))
        return NULL;
    result = (*call)(func, arg, kw);
    Py_LeaveRecursiveCall();
    if (unlikely(!result) && unlikely(!PyErr_Occurred())) {
        PyErr_SetString(
            PyExc_SystemError,
            "NULL result without error in PyObject_Call");
    }
    return result;
}
#endif

#if CYTHON_COMPILING_IN_CPYTHON
static CYTHON_INLINE PyObject* __Pyx_PyObject_CallMethO(PyObject *func, PyObject *arg) {
    PyObject *self, *result;
    PyCFunction cfunc;
    cfunc = PyCFunction_GET_FUNCTION(func);
    self = PyCFunction_GET_SELF(func);
    if (unlikely(Py_EnterRecursiveCall((char*)" while calling a Python object")))
        return NULL;
    result = cfunc(self, arg);
    Py_LeaveRecursiveCall();
    if (unlikely(!result) && unlikely(!PyErr_Occurred())) {
        PyErr_SetString(
            PyExc_SystemError,
            "NULL result without error in PyObject_Call");
    }
    return result;
}
#endif

#if CYTHON_COMPILING_IN_CPYTHON
static PyObject* __Pyx__PyObject_CallOneArg(PyObject *func, PyObject *arg) {
    PyObject *result;
    PyObject *args = PyTuple_New(1);
    if (unlikely(!args)) return NULL;
    Py_INCREF(arg);
    PyTuple_SET_ITEM(args, 0, arg);
    result = __Pyx_PyObject_Call(func, args, NULL);
    Py_DECREF(args);
    return result;
}
static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg) {
#ifdef __Pyx_CyFunction_USED
    if (likely(PyCFunction_Check(func) || PyObject_TypeCheck(func, __pyx_CyFunctionType))) {
#else
    if (likely(PyCFunction_Check(func))) {
#endif
        if (likely(PyCFunction_GET_FLAGS(func) & METH_O)) {
            return __Pyx_PyObject_CallMethO(func, arg);
        }
    }
    return __Pyx__PyObject_CallOneArg(func, arg);
}
#else
static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg) {
    PyObject* args = PyTuple_Pack(1, arg);
    return (likely(args)) ? __Pyx_PyObject_Call(func, args, NULL) : NULL;
}
#endif

#if CYTHON_COMPILING_IN_CPYTHON
static CYTHON_INLINE PyObject* __Pyx_PyObject_CallNoArg(PyObject *func) {
#ifdef __Pyx_CyFunction_USED
    if (likely(PyCFunction_Check(func) || PyObject_TypeCheck(func, __pyx_CyFunctionType))) {
#else
    if (likely(PyCFunction_Check(func))) {
#endif
        if (likely(PyCFunction_GET_FLAGS(func) & METH_NOARGS)) {
            return __Pyx_PyObject_CallMethO(func, NULL);
        }
    }
    return __Pyx_PyObject_Call(func, __pyx_empty_tuple, NULL);
}
#endif

static CYTHON_INLINE void __Pyx_ExceptionSave(PyObject **type, PyObject **value, PyObject **tb) {
#if CYTHON_COMPILING_IN_CPYTHON
    PyThreadState *tstate = PyThreadState_GET();
    *type = tstate->exc_type;
    *value = tstate->exc_value;
    *tb = tstate->exc_traceback;
    Py_XINCREF(*type);
    Py_XINCREF(*value);
    Py_XINCREF(*tb);
#else
    PyErr_GetExcInfo(type, value, tb);
#endif
}
static void __Pyx_ExceptionReset(PyObject *type, PyObject *value, PyObject *tb) {
#if CYTHON_COMPILING_IN_CPYTHON
    PyObject *tmp_type, *tmp_value, *tmp_tb;
    PyThreadState *tstate = PyThreadState_GET();
    tmp_type = tstate->exc_type;
    tmp_value = tstate->exc_value;
    tmp_tb = tstate->exc_traceback;
    tstate->exc_type = type;
    tstate->exc_value = value;
    tstate->exc_traceback = tb;
    Py_XDECREF(tmp_type);
    Py_XDECREF(tmp_value);
    Py_XDECREF(tmp_tb);
#else
    PyErr_SetExcInfo(type, value, tb);
#endif
}

static int __Pyx_GetException(PyObject **type, PyObject **value, PyObject **tb) {
    PyObject *local_type, *local_value, *local_tb;
#if CYTHON_COMPILING_IN_CPYTHON
    PyObject *tmp_type, *tmp_value, *tmp_tb;
    PyThreadState *tstate = PyThreadState_GET();
    local_type = tstate->curexc_type;
    local_value = tstate->curexc_value;
    local_tb = tstate->curexc_traceback;
    tstate->curexc_type = 0;
    tstate->curexc_value = 0;
    tstate->curexc_traceback = 0;
#else
    PyErr_Fetch(&local_type, &local_value, &local_tb);
#endif
    PyErr_NormalizeException(&local_type, &local_value, &local_tb);
#if CYTHON_COMPILING_IN_CPYTHON
    if (unlikely(tstate->curexc_type))
#else
    if (unlikely(PyErr_Occurred()))
#endif
        goto bad;
    #if PY_MAJOR_VERSION >= 3
    if (local_tb) {
        if (unlikely(PyException_SetTraceback(local_value, local_tb) < 0))
            goto bad;
    }
    #endif
    Py_XINCREF(local_tb);
    Py_XINCREF(local_type);
    Py_XINCREF(local_value);
    *type = local_type;
    *value = local_value;
    *tb = local_tb;
#if CYTHON_COMPILING_IN_CPYTHON
    tmp_type = tstate->exc_type;
    tmp_value = tstate->exc_value;
    tmp_tb = tstate->exc_traceback;
    tstate->exc_type = local_type;
    tstate->exc_value = local_value;
    tstate->exc_traceback = local_tb;
    Py_XDECREF(tmp_type);
    Py_XDECREF(tmp_value);
    Py_XDECREF(tmp_tb);
#else
    PyErr_SetExcInfo(local_type, local_value, local_tb);
#endif
    return 0;
bad:
    *type = 0;
    *value = 0;
    *tb = 0;
    Py_XDECREF(local_type);
    Py_XDECREF(local_value);
    Py_XDECREF(local_tb);
    return -1;
}

static CYTHON_INLINE void __Pyx_ErrRestore(PyObject *type, PyObject *value, PyObject *tb) {
#if CYTHON_COMPILING_IN_CPYTHON
    PyObject *tmp_type, *tmp_value, *tmp_tb;
    PyThreadState *tstate = PyThreadState_GET();
    tmp_type = tstate->curexc_type;
    tmp_value = tstate->curexc_value;
    tmp_tb = tstate->curexc_traceback;
    tstate->curexc_type = type;
    tstate->curexc_value = value;
    tstate->curexc_traceback = tb;
    Py_XDECREF(tmp_type);
    Py_XDECREF(tmp_value);
    Py_XDECREF(tmp_tb);
#else
    PyErr_Restore(type, value, tb);
#endif
}
static CYTHON_INLINE void __Pyx_ErrFetch(PyObject **type, PyObject **value, PyObject **tb) {
#if CYTHON_COMPILING_IN_CPYTHON
    PyThreadState *tstate = PyThreadState_GET();
    *type = tstate->curexc_type;
    *value = tstate->curexc_value;
    *tb = tstate->curexc_traceback;
    tstate->curexc_type = 0;
    tstate->curexc_value = 0;
    tstate->curexc_traceback = 0;
#else
    PyErr_Fetch(type, value, tb);
#endif
}

static void __Pyx_WriteUnraisable(const char *name, CYTHON_UNUSED int clineno,
                                  CYTHON_UNUSED int lineno, CYTHON_UNUSED const char *filename,
                                  int full_traceback) {
    PyObject *old_exc, *old_val, *old_tb;
    PyObject *ctx;
    __Pyx_ErrFetch(&old_exc, &old_val, &old_tb);
    if (full_traceback) {
        Py_XINCREF(old_exc);
        Py_XINCREF(old_val);
        Py_XINCREF(old_tb);
        __Pyx_ErrRestore(old_exc, old_val, old_tb);
        PyErr_PrintEx(1);
    }
    #if PY_MAJOR_VERSION < 3
    ctx = PyString_FromString(name);
    #else
    ctx = PyUnicode_FromString(name);
    #endif
    __Pyx_ErrRestore(old_exc, old_val, old_tb);
    if (!ctx) {
        PyErr_WriteUnraisable(Py_None);
    } else {
        PyErr_WriteUnraisable(ctx);
        Py_DECREF(ctx);
    }
}

static CYTHON_INLINE void __Pyx_RaiseUnboundLocalError(const char *varname) {
    PyErr_Format(PyExc_UnboundLocalError, "local variable '%s' referenced before assignment", varname);
}

static CYTHON_INLINE void __Pyx_ExceptionSwap(PyObject **type, PyObject **value, PyObject **tb) {
    PyObject *tmp_type, *tmp_value, *tmp_tb;
#if CYTHON_COMPILING_IN_CPYTHON
    PyThreadState *tstate = PyThreadState_GET();
    tmp_type = tstate->exc_type;
    tmp_value = tstate->exc_value;
    tmp_tb = tstate->exc_traceback;
    tstate->exc_type = *type;
    tstate->exc_value = *value;
    tstate->exc_traceback = *tb;
#else
    PyErr_GetExcInfo(&tmp_type, &tmp_value, &tmp_tb);
    PyErr_SetExcInfo(*type, *value, *tb);
#endif
    *type = tmp_type;
    *value = tmp_value;
    *tb = tmp_tb;
}

static CYTHON_INLINE void __Pyx_RaiseTooManyValuesError(Py_ssize_t expected) {
    PyErr_Format(PyExc_ValueError,
                 "too many values to unpack (expected %" CYTHON_FORMAT_SSIZE_T "d)", expected);
}

static CYTHON_INLINE void __Pyx_RaiseNeedMoreValuesError(Py_ssize_t index) {
    PyErr_Format(PyExc_ValueError,
                 "need more than %" CYTHON_FORMAT_SSIZE_T "d value%.1s to unpack",
                 index, (index == 1) ? "" : "s");
}

static CYTHON_INLINE int __Pyx_IterFinish(void) {
#if CYTHON_COMPILING_IN_CPYTHON
    PyThreadState *tstate = PyThreadState_GET();
    PyObject* exc_type = tstate->curexc_type;
    if (unlikely(exc_type)) {
        if (likely(exc_type == PyExc_StopIteration) || PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration)) {
            PyObject *exc_value, *exc_tb;
            exc_value = tstate->curexc_value;
            exc_tb = tstate->curexc_traceback;
            tstate->curexc_type = 0;
            tstate->curexc_value = 0;
            tstate->curexc_traceback = 0;
            Py_DECREF(exc_type);
            Py_XDECREF(exc_value);
            Py_XDECREF(exc_tb);
            return 0;
        } else {
            return -1;
        }
    }
    return 0;
#else
    if (unlikely(PyErr_Occurred())) {
        if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) {
            PyErr_Clear();
            return 0;
        } else {
            return -1;
        }
    }
    return 0;
#endif
}

static int __Pyx_IternextUnpackEndCheck(PyObject *retval, Py_ssize_t expected) {
    if (unlikely(retval)) {
        Py_DECREF(retval);
        __Pyx_RaiseTooManyValuesError(expected);
        return -1;
    } else {
        return __Pyx_IterFinish();
    }
    return 0;
}

#if !CYTHON_COMPILING_IN_CPYTHON
static CYTHON_INLINE PyObject* __Pyx_PyBytes_Join(PyObject* sep, PyObject* values) {
    return PyObject_CallMethodObjArgs(sep, __pyx_n_s_join, values, NULL);
}
#endif

#if PY_MAJOR_VERSION < 3
static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb,
                        CYTHON_UNUSED PyObject *cause) {
    Py_XINCREF(type);
    if (!value || value == Py_None)
        value = NULL;
    else
        Py_INCREF(value);
    if (!tb || tb == Py_None)
        tb = NULL;
    else {
        Py_INCREF(tb);
        if (!PyTraceBack_Check(tb)) {
            PyErr_SetString(PyExc_TypeError,
                "raise: arg 3 must be a traceback or None");
            goto raise_error;
        }
    }
    if (PyType_Check(type)) {
#if CYTHON_COMPILING_IN_PYPY
        if (!value) {
            Py_INCREF(Py_None);
            value = Py_None;
        }
#endif
        PyErr_NormalizeException(&type, &value, &tb);
    } else {
        if (value) {
            PyErr_SetString(PyExc_TypeError,
                "instance exception may not have a separate value");
            goto raise_error;
        }
        value = type;
        type = (PyObject*) Py_TYPE(type);
        Py_INCREF(type);
        if (!PyType_IsSubtype((PyTypeObject *)type, (PyTypeObject *)PyExc_BaseException)) {
            PyErr_SetString(PyExc_TypeError,
                "raise: exception class must be a subclass of BaseException");
            goto raise_error;
        }
    }
    __Pyx_ErrRestore(type, value, tb);
    return;
raise_error:
    Py_XDECREF(value);
    Py_XDECREF(type);
    Py_XDECREF(tb);
    return;
}
#else
static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause) {
    PyObject* owned_instance = NULL;
    if (tb == Py_None) {
        tb = 0;
    } else if (tb && !PyTraceBack_Check(tb)) {
        PyErr_SetString(PyExc_TypeError,
            "raise: arg 3 must be a traceback or None");
        goto bad;
    }
    if (value == Py_None)
        value = 0;
    if (PyExceptionInstance_Check(type)) {
        if (value) {
            PyErr_SetString(PyExc_TypeError,
                "instance exception may not have a separate value");
            goto bad;
        }
        value = type;
        type = (PyObject*) Py_TYPE(value);
    } else if (PyExceptionClass_Check(type)) {
        PyObject *instance_class = NULL;
        if (value && PyExceptionInstance_Check(value)) {
            instance_class = (PyObject*) Py_TYPE(value);
            if (instance_class != type) {
                if (PyObject_IsSubclass(instance_class, type)) {
                    type = instance_class;
                } else {
                    instance_class = NULL;
                }
            }
        }
        if (!instance_class) {
            PyObject *args;
            if (!value)
                args = PyTuple_New(0);
            else if (PyTuple_Check(value)) {
                Py_INCREF(value);
                args = value;
            } else
                args = PyTuple_Pack(1, value);
            if (!args)
                goto bad;
            owned_instance = PyObject_Call(type, args, NULL);
            Py_DECREF(args);
            if (!owned_instance)
                goto bad;
            value = owned_instance;
            if (!PyExceptionInstance_Check(value)) {
                PyErr_Format(PyExc_TypeError,
                             "calling %R should have returned an instance of "
                             "BaseException, not %R",
                             type, Py_TYPE(value));
                goto bad;
            }
        }
    } else {
        PyErr_SetString(PyExc_TypeError,
            "raise: exception class must be a subclass of BaseException");
        goto bad;
    }
#if PY_VERSION_HEX >= 0x03030000
    if (cause) {
#else
    if (cause && cause != Py_None) {
#endif
        PyObject *fixed_cause;
        if (cause == Py_None) {
            fixed_cause = NULL;
        } else if (PyExceptionClass_Check(cause)) {
            fixed_cause = PyObject_CallObject(cause, NULL);
            if (fixed_cause == NULL)
                goto bad;
        } else if (PyExceptionInstance_Check(cause)) {
            fixed_cause = cause;
            Py_INCREF(fixed_cause);
        } else {
            PyErr_SetString(PyExc_TypeError,
                            "exception causes must derive from "
                            "BaseException");
            goto bad;
        }
        PyException_SetCause(value, fixed_cause);
    }
    PyErr_SetObject(type, value);
    if (tb) {
#if CYTHON_COMPILING_IN_PYPY
        PyObject *tmp_type, *tmp_value, *tmp_tb;
        PyErr_Fetch(tmp_type, tmp_value, tmp_tb);
        Py_INCREF(tb);
        PyErr_Restore(tmp_type, tmp_value, tb);
        Py_XDECREF(tmp_tb);
#else
        PyThreadState *tstate = PyThreadState_GET();
        PyObject* tmp_tb = tstate->curexc_traceback;
        if (tb != tmp_tb) {
            Py_INCREF(tb);
            tstate->curexc_traceback = tb;
            Py_XDECREF(tmp_tb);
        }
#endif
    }
bad:
    Py_XDECREF(owned_instance);
    return;
}
#endif

static void __Pyx_RaiseArgtupleInvalid(
    const char* func_name,
    int exact,
    Py_ssize_t num_min,
    Py_ssize_t num_max,
    Py_ssize_t num_found)
{
    Py_ssize_t num_expected;
    const char *more_or_less;
    if (num_found < num_min) {
        num_expected = num_min;
        more_or_less = "at least";
    } else {
        num_expected = num_max;
        more_or_less = "at most";
    }
    if (exact) {
        more_or_less = "exactly";
    }
    PyErr_Format(PyExc_TypeError,
                 "%.200s() takes %.8s %" CYTHON_FORMAT_SSIZE_T "d positional argument%.1s (%" CYTHON_FORMAT_SSIZE_T "d given)",
                 func_name, more_or_less, num_expected,
                 (num_expected == 1) ? "" : "s", num_found);
}

static CYTHON_INLINE int __Pyx_CheckKeywordStrings(
    PyObject *kwdict,
    const char* function_name,
    int kw_allowed)
{
    PyObject* key = 0;
    Py_ssize_t pos = 0;
#if CYTHON_COMPILING_IN_PYPY
    if (!kw_allowed && PyDict_Next(kwdict, &pos, &key, 0))
        goto invalid_keyword;
    return 1;
#else
    while (PyDict_Next(kwdict, &pos, &key, 0)) {
        #if PY_MAJOR_VERSION < 3
        if (unlikely(!PyString_CheckExact(key)) && unlikely(!PyString_Check(key)))
        #endif
            if (unlikely(!PyUnicode_Check(key)))
                goto invalid_keyword_type;
    }
    if ((!kw_allowed) && unlikely(key))
        goto invalid_keyword;
    return 1;
invalid_keyword_type:
    PyErr_Format(PyExc_TypeError,
        "%.200s() keywords must be strings", function_name);
    return 0;
#endif
invalid_keyword:
    PyErr_Format(PyExc_TypeError,
    #if PY_MAJOR_VERSION < 3
        "%.200s() got an unexpected keyword argument '%.200s'",
        function_name, PyString_AsString(key));
    #else
        "%s() got an unexpected keyword argument '%U'",
        function_name, key);
    #endif
    return 0;
}

static void __Pyx_RaiseDoubleKeywordsError(
    const char* func_name,
    PyObject* kw_name)
{
    PyErr_Format(PyExc_TypeError,
        #if PY_MAJOR_VERSION >= 3
        "%s() got multiple values for keyword argument '%U'", func_name, kw_name);
        #else
        "%s() got multiple values for keyword argument '%s'", func_name,
        PyString_AsString(kw_name));
        #endif
}

static int __Pyx_ParseOptionalKeywords(
    PyObject *kwds,
    PyObject **argnames[],
    PyObject *kwds2,
    PyObject *values[],
    Py_ssize_t num_pos_args,
    const char* function_name)
{
    PyObject *key = 0, *value = 0;
    Py_ssize_t pos = 0;
    PyObject*** name;
    PyObject*** first_kw_arg = argnames + num_pos_args;
    while (PyDict_Next(kwds, &pos, &key, &value)) {
        name = first_kw_arg;
        while (*name && (**name != key)) name++;
        if (*name) {
            values[name-argnames] = value;
            continue;
        }
        name = first_kw_arg;
        #if PY_MAJOR_VERSION < 3
        if (likely(PyString_CheckExact(key)) || likely(PyString_Check(key))) {
            while (*name) {
                if ((CYTHON_COMPILING_IN_PYPY || PyString_GET_SIZE(**name) == PyString_GET_SIZE(key))
                        && _PyString_Eq(**name, key)) {
                    values[name-argnames] = value;
                    break;
                }
                name++;
            }
            if (*name) continue;
            else {
                PyObject*** argname = argnames;
                while (argname != first_kw_arg) {
                    if ((**argname == key) || (
                            (CYTHON_COMPILING_IN_PYPY || PyString_GET_SIZE(**argname) == PyString_GET_SIZE(key))
                             && _PyString_Eq(**argname, key))) {
                        goto arg_passed_twice;
                    }
                    argname++;
                }
            }
        } else
        #endif
        if (likely(PyUnicode_Check(key))) {
            while (*name) {
                int cmp = (**name == key) ? 0 :
                #if !CYTHON_COMPILING_IN_PYPY && PY_MAJOR_VERSION >= 3
                    (PyUnicode_GET_SIZE(**name) != PyUnicode_GET_SIZE(key)) ? 1 :
                #endif
                    PyUnicode_Compare(**name, key);
                if (cmp < 0 && unlikely(PyErr_Occurred())) goto bad;
                if (cmp == 0) {
                    values[name-argnames] = value;
                    break;
                }
                name++;
            }
            if (*name) continue;
            else {
                PyObject*** argname = argnames;
                while (argname != first_kw_arg) {
                    int cmp = (**argname == key) ? 0 :
                    #if !CYTHON_COMPILING_IN_PYPY && PY_MAJOR_VERSION >= 3
                        (PyUnicode_GET_SIZE(**argname) != PyUnicode_GET_SIZE(key)) ? 1 :
                    #endif
                        PyUnicode_Compare(**argname, key);
                    if (cmp < 0 && unlikely(PyErr_Occurred())) goto bad;
                    if (cmp == 0) goto arg_passed_twice;
                    argname++;
                }
            }
        } else
            goto invalid_keyword_type;
        if (kwds2) {
            if (unlikely(PyDict_SetItem(kwds2, key, value))) goto bad;
        } else {
            goto invalid_keyword;
        }
    }
    return 0;
arg_passed_twice:
    __Pyx_RaiseDoubleKeywordsError(function_name, key);
    goto bad;
invalid_keyword_type:
    PyErr_Format(PyExc_TypeError,
        "%.200s() keywords must be strings", function_name);
    goto bad;
invalid_keyword:
    PyErr_Format(PyExc_TypeError,
    #if PY_MAJOR_VERSION < 3
        "%.200s() got an unexpected keyword argument '%.200s'",
        function_name, PyString_AsString(key));
    #else
        "%s() got an unexpected keyword argument '%U'",
        function_name, key);
    #endif
bad:
    return -1;
}

static void __Pyx_RaiseArgumentTypeInvalid(const char* name, PyObject *obj, PyTypeObject *type) {
    PyErr_Format(PyExc_TypeError,
        "Argument '%.200s' has incorrect type (expected %.200s, got %.200s)",
        name, type->tp_name, Py_TYPE(obj)->tp_name);
}
static CYTHON_INLINE int __Pyx_ArgTypeTest(PyObject *obj, PyTypeObject *type, int none_allowed,
    const char *name, int exact)
{
    if (unlikely(!type)) {
        PyErr_SetString(PyExc_SystemError, "Missing type object");
        return 0;
    }
    if (none_allowed && obj == Py_None) return 1;
    else if (exact) {
        if (likely(Py_TYPE(obj) == type)) return 1;
        #if PY_MAJOR_VERSION == 2
        else if ((type == &PyBaseString_Type) && likely(__Pyx_PyBaseString_CheckExact(obj))) return 1;
        #endif
    }
    else {
        if (likely(PyObject_TypeCheck(obj, type))) return 1;
    }
    __Pyx_RaiseArgumentTypeInvalid(name, obj, type);
    return 0;
}

static CYTHON_INLINE int __Pyx_PyBytes_Equals(PyObject* s1, PyObject* s2, int equals) {
#if CYTHON_COMPILING_IN_PYPY
    return PyObject_RichCompareBool(s1, s2, equals);
#else
    if (s1 == s2) {
        return (equals == Py_EQ);
    } else if (PyBytes_CheckExact(s1) & PyBytes_CheckExact(s2)) {
        const char *ps1, *ps2;
        Py_ssize_t length = PyBytes_GET_SIZE(s1);
        if (length != PyBytes_GET_SIZE(s2))
            return (equals == Py_NE);
        ps1 = PyBytes_AS_STRING(s1);
        ps2 = PyBytes_AS_STRING(s2);
        if (ps1[0] != ps2[0]) {
            return (equals == Py_NE);
        } else if (length == 1) {
            return (equals == Py_EQ);
        } else {
            int result = memcmp(ps1, ps2, (size_t)length);
            return (equals == Py_EQ) ? (result == 0) : (result != 0);
        }
    } else if ((s1 == Py_None) & PyBytes_CheckExact(s2)) {
        return (equals == Py_NE);
    } else if ((s2 == Py_None) & PyBytes_CheckExact(s1)) {
        return (equals == Py_NE);
    } else {
        int result;
        PyObject* py_result = PyObject_RichCompare(s1, s2, equals);
        if (!py_result)
            return -1;
        result = __Pyx_PyObject_IsTrue(py_result);
        Py_DECREF(py_result);
        return result;
    }
#endif
}

static CYTHON_INLINE int __Pyx_PyUnicode_Equals(PyObject* s1, PyObject* s2, int equals) {
#if CYTHON_COMPILING_IN_PYPY
    return PyObject_RichCompareBool(s1, s2, equals);
#else
#if PY_MAJOR_VERSION < 3
    PyObject* owned_ref = NULL;
#endif
    int s1_is_unicode, s2_is_unicode;
    if (s1 == s2) {
        goto return_eq;
    }
    s1_is_unicode = PyUnicode_CheckExact(s1);
    s2_is_unicode = PyUnicode_CheckExact(s2);
#if PY_MAJOR_VERSION < 3
    if ((s1_is_unicode & (!s2_is_unicode)) && PyString_CheckExact(s2)) {
        owned_ref = PyUnicode_FromObject(s2);
        if (unlikely(!owned_ref))
            return -1;
        s2 = owned_ref;
        s2_is_unicode = 1;
    } else if ((s2_is_unicode & (!s1_is_unicode)) && PyString_CheckExact(s1)) {
        owned_ref = PyUnicode_FromObject(s1);
        if (unlikely(!owned_ref))
            return -1;
        s1 = owned_ref;
        s1_is_unicode = 1;
    } else if (((!s2_is_unicode) & (!s1_is_unicode))) {
        return __Pyx_PyBytes_Equals(s1, s2, equals);
    }
#endif
    if (s1_is_unicode & s2_is_unicode) {
        Py_ssize_t length;
        int kind;
        void *data1, *data2;
        if (unlikely(__Pyx_PyUnicode_READY(s1) < 0) || unlikely(__Pyx_PyUnicode_READY(s2) < 0))
            return -1;
        length = __Pyx_PyUnicode_GET_LENGTH(s1);
        if (length != __Pyx_PyUnicode_GET_LENGTH(s2)) {
            goto return_ne;
        }
        kind = __Pyx_PyUnicode_KIND(s1);
        if (kind != __Pyx_PyUnicode_KIND(s2)) {
            goto return_ne;
        }
        data1 = __Pyx_PyUnicode_DATA(s1);
        data2 = __Pyx_PyUnicode_DATA(s2);
        if (__Pyx_PyUnicode_READ(kind, data1, 0) != __Pyx_PyUnicode_READ(kind, data2, 0)) {
            goto return_ne;
        } else if (length == 1) {
            goto return_eq;
        } else {
            int result = memcmp(data1, data2, (size_t)(length * kind));
            #if PY_MAJOR_VERSION < 3
            Py_XDECREF(owned_ref);
            #endif
            return (equals == Py_EQ) ? (result == 0) : (result != 0);
        }
    } else if ((s1 == Py_None) & s2_is_unicode) {
        goto return_ne;
    } else if ((s2 == Py_None) & s1_is_unicode) {
        goto return_ne;
    } else {
        int result;
        PyObject* py_result = PyObject_RichCompare(s1, s2, equals);
        if (!py_result)
            return -1;
        result = __Pyx_PyObject_IsTrue(py_result);
        Py_DECREF(py_result);
        return result;
    }
return_eq:
    #if PY_MAJOR_VERSION < 3
    Py_XDECREF(owned_ref);
    #endif
    return (equals == Py_EQ);
return_ne:
    #if PY_MAJOR_VERSION < 3
    Py_XDECREF(owned_ref);
    #endif
    return (equals == Py_NE);
#endif
}

static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Generic(PyObject *o, PyObject* j) {
    PyObject *r;
    if (!j) return NULL;
    r = PyObject_GetItem(o, j);
    Py_DECREF(j);
    return r;
}
static CYTHON_INLINE PyObject *__Pyx_GetItemInt_List_Fast(PyObject *o, Py_ssize_t i,
                                                              int wraparound, int boundscheck) {
#if CYTHON_COMPILING_IN_CPYTHON
    if (wraparound & unlikely(i < 0)) i += PyList_GET_SIZE(o);
    if ((!boundscheck) || likely((0 <= i) & (i < PyList_GET_SIZE(o)))) {
        PyObject *r = PyList_GET_ITEM(o, i);
        Py_INCREF(r);
        return r;
    }
    return __Pyx_GetItemInt_Generic(o, PyInt_FromSsize_t(i));
#else
    return PySequence_GetItem(o, i);
#endif
}
static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Tuple_Fast(PyObject *o, Py_ssize_t i,
                                                              int wraparound, int boundscheck) {
#if CYTHON_COMPILING_IN_CPYTHON
    if (wraparound & unlikely(i < 0)) i += PyTuple_GET_SIZE(o);
    if ((!boundscheck) || likely((0 <= i) & (i < PyTuple_GET_SIZE(o)))) {
        PyObject *r = PyTuple_GET_ITEM(o, i);
        Py_INCREF(r);
        return r;
    }
    return __Pyx_GetItemInt_Generic(o, PyInt_FromSsize_t(i));
#else
    return PySequence_GetItem(o, i);
#endif
}
static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Fast(PyObject *o, Py_ssize_t i,
                                                     int is_list, int wraparound, int boundscheck) {
#if CYTHON_COMPILING_IN_CPYTHON
    if (is_list || PyList_CheckExact(o)) {
        Py_ssize_t n = ((!wraparound) | likely(i >= 0)) ? i : i + PyList_GET_SIZE(o);
        if ((!boundscheck) || (likely((n >= 0) & (n < PyList_GET_SIZE(o))))) {
            PyObject *r = PyList_GET_ITEM(o, n);
            Py_INCREF(r);
            return r;
        }
    }
    else if (PyTuple_CheckExact(o)) {
        Py_ssize_t n = ((!wraparound) | likely(i >= 0)) ? i : i + PyTuple_GET_SIZE(o);
        if ((!boundscheck) || likely((n >= 0) & (n < PyTuple_GET_SIZE(o)))) {
            PyObject *r = PyTuple_GET_ITEM(o, n);
            Py_INCREF(r);
            return r;
        }
    } else {
        PySequenceMethods *m = Py_TYPE(o)->tp_as_sequence;
        if (likely(m && m->sq_item)) {
            if (wraparound && unlikely(i < 0) && likely(m->sq_length)) {
                Py_ssize_t l = m->sq_length(o);
                if (likely(l >= 0)) {
                    i += l;
                } else {
                    if (PyErr_ExceptionMatches(PyExc_OverflowError))
                        PyErr_Clear();
                    else
                        return NULL;
                }
            }
            return m->sq_item(o, i);
        }
    }
#else
    if (is_list || PySequence_Check(o)) {
        return PySequence_GetItem(o, i);
    }
#endif
    return __Pyx_GetItemInt_Generic(o, PyInt_FromSsize_t(i));
}

static CYTHON_INLINE PyObject* __Pyx_decode_c_string(
         const char* cstring, Py_ssize_t start, Py_ssize_t stop,
         const char* encoding, const char* errors,
         PyObject* (*decode_func)(const char *s, Py_ssize_t size, const char *errors)) {
    Py_ssize_t length;
    if (unlikely((start < 0) | (stop < 0))) {
        length = strlen(cstring);
        if (start < 0) {
            start += length;
            if (start < 0)
                start = 0;
        }
        if (stop < 0)
            stop += length;
    }
    length = stop - start;
    if (unlikely(length <= 0))
        return PyUnicode_FromUnicode(NULL, 0);
    cstring += start;
    if (decode_func) {
        return decode_func(cstring, length, errors);
    } else {
        return PyUnicode_Decode(cstring, length, encoding, errors);
    }
}

static PyObject* __Pyx_ImportFrom(PyObject* module, PyObject* name) {
    PyObject* value = __Pyx_PyObject_GetAttrStr(module, name);
    if (unlikely(!value) && PyErr_ExceptionMatches(PyExc_AttributeError)) {
        PyErr_Format(PyExc_ImportError,
        #if PY_MAJOR_VERSION < 3
            "cannot import name %.230s", PyString_AS_STRING(name));
        #else
            "cannot import name %S", name);
        #endif
    }
    return value;
}

static int __pyx_bisect_code_objects(__Pyx_CodeObjectCacheEntry* entries, int count, int code_line) {
    int start = 0, mid = 0, end = count - 1;
    if (end >= 0 && code_line > entries[end].code_line) {
        return count;
    }
    while (start < end) {
        mid = (start + end) / 2;
        if (code_line < entries[mid].code_line) {
            end = mid;
        } else if (code_line > entries[mid].code_line) {
             start = mid + 1;
        } else {
            return mid;
        }
    }
    if (code_line <= entries[mid].code_line) {
        return mid;
    } else {
        return mid + 1;
    }
}
static PyCodeObject *__pyx_find_code_object(int code_line) {
    PyCodeObject* code_object;
    int pos;
    if (unlikely(!code_line) || unlikely(!__pyx_code_cache.entries)) {
        return NULL;
    }
    pos = __pyx_bisect_code_objects(__pyx_code_cache.entries, __pyx_code_cache.count, code_line);
    if (unlikely(pos >= __pyx_code_cache.count) || unlikely(__pyx_code_cache.entries[pos].code_line != code_line)) {
        return NULL;
    }
    code_object = __pyx_code_cache.entries[pos].code_object;
    Py_INCREF(code_object);
    return code_object;
}
static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object) {
    int pos, i;
    __Pyx_CodeObjectCacheEntry* entries = __pyx_code_cache.entries;
    if (unlikely(!code_line)) {
        return;
    }
    if (unlikely(!entries)) {
        entries = (__Pyx_CodeObjectCacheEntry*)PyMem_Malloc(64*sizeof(__Pyx_CodeObjectCacheEntry));
        if (likely(entries)) {
            __pyx_code_cache.entries = entries;
            __pyx_code_cache.max_count = 64;
            __pyx_code_cache.count = 1;
            entries[0].code_line = code_line;
            entries[0].code_object = code_object;
            Py_INCREF(code_object);
        }
        return;
    }
    pos = __pyx_bisect_code_objects(__pyx_code_cache.entries, __pyx_code_cache.count, code_line);
    if ((pos < __pyx_code_cache.count) && unlikely(__pyx_code_cache.entries[pos].code_line == code_line)) {
        PyCodeObject* tmp = entries[pos].code_object;
        entries[pos].code_object = code_object;
        Py_DECREF(tmp);
        return;
    }
    if (__pyx_code_cache.count == __pyx_code_cache.max_count) {
        int new_max = __pyx_code_cache.max_count + 64;
        entries = (__Pyx_CodeObjectCacheEntry*)PyMem_Realloc(
            __pyx_code_cache.entries, (size_t)new_max*sizeof(__Pyx_CodeObjectCacheEntry));
        if (unlikely(!entries)) {
            return;
        }
        __pyx_code_cache.entries = entries;
        __pyx_code_cache.max_count = new_max;
    }
    for (i=__pyx_code_cache.count; i>pos; i--) {
        entries[i] = entries[i-1];
    }
    entries[pos].code_line = code_line;
    entries[pos].code_object = code_object;
    __pyx_code_cache.count++;
    Py_INCREF(code_object);
}

#include "compile.h"
#include "frameobject.h"
#include "traceback.h"
static PyCodeObject* __Pyx_CreateCodeObjectForTraceback(
            const char *funcname, int c_line,
            int py_line, const char *filename) {
    PyCodeObject *py_code = 0;
    PyObject *py_srcfile = 0;
    PyObject *py_funcname = 0;
    #if PY_MAJOR_VERSION < 3
    py_srcfile = PyString_FromString(filename);
    #else
    py_srcfile = PyUnicode_FromString(filename);
    #endif
    if (!py_srcfile) goto bad;
    if (c_line) {
        #if PY_MAJOR_VERSION < 3
        py_funcname = PyString_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line);
        #else
        py_funcname = PyUnicode_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line);
        #endif
    }
    else {
        #if PY_MAJOR_VERSION < 3
        py_funcname = PyString_FromString(funcname);
        #else
        py_funcname = PyUnicode_FromString(funcname);
        #endif
    }
    if (!py_funcname) goto bad;
    py_code = __Pyx_PyCode_New(
        0,
        0,
        0,
        0,
        0,
        __pyx_empty_bytes, /*PyObject *code,*/
        __pyx_empty_tuple, /*PyObject *consts,*/
        __pyx_empty_tuple, /*PyObject *names,*/
        __pyx_empty_tuple, /*PyObject *varnames,*/
        __pyx_empty_tuple, /*PyObject *freevars,*/
        __pyx_empty_tuple, /*PyObject *cellvars,*/
        py_srcfile,   /*PyObject *filename,*/
        py_funcname,  /*PyObject *name,*/
        py_line,
        __pyx_empty_bytes  /*PyObject *lnotab*/
    );
    Py_DECREF(py_srcfile);
    Py_DECREF(py_funcname);
    return py_code;
bad:
    Py_XDECREF(py_srcfile);
    Py_XDECREF(py_funcname);
    return NULL;
}
static void __Pyx_AddTraceback(const char *funcname, int c_line,
                               int py_line, const char *filename) {
    PyCodeObject *py_code = 0;
    PyFrameObject *py_frame = 0;
    py_code = __pyx_find_code_object(c_line ? c_line : py_line);
    if (!py_code) {
        py_code = __Pyx_CreateCodeObjectForTraceback(
            funcname, c_line, py_line, filename);
        if (!py_code) goto bad;
        __pyx_insert_code_object(c_line ? c_line : py_line, py_code);
    }
    py_frame = PyFrame_New(
        PyThreadState_GET(), /*PyThreadState *tstate,*/
        py_code,             /*PyCodeObject *code,*/
        __pyx_d,      /*PyObject *globals,*/
        0                    /*PyObject *locals*/
    );
    if (!py_frame) goto bad;
    py_frame->f_lineno = py_line;
    PyTraceBack_Here(py_frame);
bad:
    Py_XDECREF(py_code);
    Py_XDECREF(py_frame);
}

static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list, int level) {
    PyObject *empty_list = 0;
    PyObject *module = 0;
    PyObject *global_dict = 0;
    PyObject *empty_dict = 0;
    PyObject *list;
    #if PY_VERSION_HEX < 0x03030000
    PyObject *py_import;
    py_import = __Pyx_PyObject_GetAttrStr(__pyx_b, __pyx_n_s_import);
    if (!py_import)
        goto bad;
    #endif
    if (from_list)
        list = from_list;
    else {
        empty_list = PyList_New(0);
        if (!empty_list)
            goto bad;
        list = empty_list;
    }
    global_dict = PyModule_GetDict(__pyx_m);
    if (!global_dict)
        goto bad;
    empty_dict = PyDict_New();
    if (!empty_dict)
        goto bad;
    {
        #if PY_MAJOR_VERSION >= 3
        if (level == -1) {
            if (strchr(__Pyx_MODULE_NAME, '.')) {
                #if PY_VERSION_HEX < 0x03030000
                PyObject *py_level = PyInt_FromLong(1);
                if (!py_level)
                    goto bad;
                module = PyObject_CallFunctionObjArgs(py_import,
                    name, global_dict, empty_dict, list, py_level, NULL);
                Py_DECREF(py_level);
                #else
                module = PyImport_ImportModuleLevelObject(
                    name, global_dict, empty_dict, list, 1);
                #endif
                if (!module) {
                    if (!PyErr_ExceptionMatches(PyExc_ImportError))
                        goto bad;
                    PyErr_Clear();
                }
            }
            level = 0;
        }
        #endif
        if (!module) {
            #if PY_VERSION_HEX < 0x03030000
            PyObject *py_level = PyInt_FromLong(level);
            if (!py_level)
                goto bad;
            module = PyObject_CallFunctionObjArgs(py_import,
                name, global_dict, empty_dict, list, py_level, NULL);
            Py_DECREF(py_level);
            #else
            module = PyImport_ImportModuleLevelObject(
                name, global_dict, empty_dict, list, level);
            #endif
        }
    }
bad:
    #if PY_VERSION_HEX < 0x03030000
    Py_XDECREF(py_import);
    #endif
    Py_XDECREF(empty_list);
    Py_XDECREF(empty_dict);
    return module;
}

static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value) {
    const int neg_one = (int) -1, const_zero = 0;
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(int) < sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(int) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
        } else if (sizeof(int) <= sizeof(unsigned long long)) {
            return PyLong_FromUnsignedLongLong((unsigned long long) value);
        }
    } else {
        if (sizeof(int) <= sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(int) <= sizeof(long long)) {
            return PyLong_FromLongLong((long long) value);
        }
    }
    {
        int one = 1; int little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&value;
        return _PyLong_FromByteArray(bytes, sizeof(int),
                                     little, !is_unsigned);
    }
}

#define __PYX_VERIFY_RETURN_INT(target_type, func_type, func_value)       \
    {                                                                     \
        func_type value = func_value;                                     \
        if (sizeof(target_type) < sizeof(func_type)) {                    \
            if (unlikely(value != (func_type) (target_type) value)) {     \
                func_type zero = 0;                                       \
                if (is_unsigned && unlikely(value < zero))                \
                    goto raise_neg_overflow;                              \
                else                                                      \
                    goto raise_overflow;                                  \
            }                                                             \
        }                                                                 \
        return (target_type) value;                                       \
    }

#if CYTHON_COMPILING_IN_CPYTHON && PY_MAJOR_VERSION >= 3
 #if CYTHON_USE_PYLONG_INTERNALS
  #include "longintrepr.h"
 #endif
#endif

static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *x) {
    const int neg_one = (int) -1, const_zero = 0;
    const int is_unsigned = neg_one > const_zero;
#if PY_MAJOR_VERSION < 3
    if (likely(PyInt_Check(x))) {
        if (sizeof(int) < sizeof(long)) {
            __PYX_VERIFY_RETURN_INT(int, long, PyInt_AS_LONG(x))
        } else {
            long val = PyInt_AS_LONG(x);
            if (is_unsigned && unlikely(val < 0)) {
                goto raise_neg_overflow;
            }
            return (int) val;
        }
    } else
#endif
    if (likely(PyLong_Check(x))) {
        if (is_unsigned) {
#if CYTHON_COMPILING_IN_CPYTHON && PY_MAJOR_VERSION >= 3
 #if CYTHON_USE_PYLONG_INTERNALS
            switch (Py_SIZE(x)) {
                case  0: return 0;
                case  1: __PYX_VERIFY_RETURN_INT(int, digit, ((PyLongObject*)x)->ob_digit[0]);
            }
 #endif
#endif
            if (unlikely(Py_SIZE(x) < 0)) {
                goto raise_neg_overflow;
            }
            if (sizeof(int) <= sizeof(unsigned long)) {
                __PYX_VERIFY_RETURN_INT(int, unsigned long, PyLong_AsUnsignedLong(x))
            } else if (sizeof(int) <= sizeof(unsigned long long)) {
                __PYX_VERIFY_RETURN_INT(int, unsigned long long, PyLong_AsUnsignedLongLong(x))
            }
        } else {
#if CYTHON_COMPILING_IN_CPYTHON && PY_MAJOR_VERSION >= 3
 #if CYTHON_USE_PYLONG_INTERNALS
            switch (Py_SIZE(x)) {
                case  0: return 0;
                case  1: __PYX_VERIFY_RETURN_INT(int,  digit, +(((PyLongObject*)x)->ob_digit[0]));
                case -1: __PYX_VERIFY_RETURN_INT(int, sdigit, -(sdigit) ((PyLongObject*)x)->ob_digit[0]);
            }
 #endif
#endif
            if (sizeof(int) <= sizeof(long)) {
                __PYX_VERIFY_RETURN_INT(int, long, PyLong_AsLong(x))
            } else if (sizeof(int) <= sizeof(long long)) {
                __PYX_VERIFY_RETURN_INT(int, long long, PyLong_AsLongLong(x))
            }
        }
        {
#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray)
            PyErr_SetString(PyExc_RuntimeError,
                            "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers");
#else
            int val;
            PyObject *v = __Pyx_PyNumber_Int(x);
 #if PY_MAJOR_VERSION < 3
            if (likely(v) && !PyLong_Check(v)) {
                PyObject *tmp = v;
                v = PyNumber_Long(tmp);
                Py_DECREF(tmp);
            }
 #endif
            if (likely(v)) {
                int one = 1; int is_little = (int)*(unsigned char *)&one;
                unsigned char *bytes = (unsigned char *)&val;
                int ret = _PyLong_AsByteArray((PyLongObject *)v,
                                              bytes, sizeof(val),
                                              is_little, !is_unsigned);
                Py_DECREF(v);
                if (likely(!ret))
                    return val;
            }
#endif
            return (int) -1;
        }
    } else {
        int val;
        PyObject *tmp = __Pyx_PyNumber_Int(x);
        if (!tmp) return (int) -1;
        val = __Pyx_PyInt_As_int(tmp);
        Py_DECREF(tmp);
        return val;
    }
raise_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "value too large to convert to int");
    return (int) -1;
raise_neg_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "can't convert negative value to int");
    return (int) -1;
}

static CYTHON_INLINE PyObject* __Pyx_PyInt_From_fuse_ino_t(fuse_ino_t value) {
    const fuse_ino_t neg_one = (fuse_ino_t) -1, const_zero = 0;
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(fuse_ino_t) < sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(fuse_ino_t) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
        } else if (sizeof(fuse_ino_t) <= sizeof(unsigned long long)) {
            return PyLong_FromUnsignedLongLong((unsigned long long) value);
        }
    } else {
        if (sizeof(fuse_ino_t) <= sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(fuse_ino_t) <= sizeof(long long)) {
            return PyLong_FromLongLong((long long) value);
        }
    }
    {
        int one = 1; int little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&value;
        return _PyLong_FromByteArray(bytes, sizeof(fuse_ino_t),
                                     little, !is_unsigned);
    }
}

static CYTHON_INLINE PyObject* __Pyx_PyInt_From_unsigned_long(unsigned long value) {
    const unsigned long neg_one = (unsigned long) -1, const_zero = 0;
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(unsigned long) < sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(unsigned long) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
        } else if (sizeof(unsigned long) <= sizeof(unsigned long long)) {
            return PyLong_FromUnsignedLongLong((unsigned long long) value);
        }
    } else {
        if (sizeof(unsigned long) <= sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(unsigned long) <= sizeof(long long)) {
            return PyLong_FromLongLong((long long) value);
        }
    }
    {
        int one = 1; int little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&value;
        return _PyLong_FromByteArray(bytes, sizeof(unsigned long),
                                     little, !is_unsigned);
    }
}

static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value) {
    const long neg_one = (long) -1, const_zero = 0;
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(long) < sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(long) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
        } else if (sizeof(long) <= sizeof(unsigned long long)) {
            return PyLong_FromUnsignedLongLong((unsigned long long) value);
        }
    } else {
        if (sizeof(long) <= sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(long) <= sizeof(long long)) {
            return PyLong_FromLongLong((long long) value);
        }
    }
    {
        int one = 1; int little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&value;
        return _PyLong_FromByteArray(bytes, sizeof(long),
                                     little, !is_unsigned);
    }
}

static CYTHON_INLINE PyObject* __Pyx_PyInt_From_time_t(time_t value) {
    const time_t neg_one = (time_t) -1, const_zero = 0;
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(time_t) < sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(time_t) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
        } else if (sizeof(time_t) <= sizeof(unsigned long long)) {
            return PyLong_FromUnsignedLongLong((unsigned long long) value);
        }
    } else {
        if (sizeof(time_t) <= sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(time_t) <= sizeof(long long)) {
            return PyLong_FromLongLong((long long) value);
        }
    }
    {
        int one = 1; int little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&value;
        return _PyLong_FromByteArray(bytes, sizeof(time_t),
                                     little, !is_unsigned);
    }
}

static CYTHON_INLINE PyObject* __Pyx_PyInt_From_mode_t(mode_t value) {
    const mode_t neg_one = (mode_t) -1, const_zero = 0;
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(mode_t) < sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(mode_t) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
        } else if (sizeof(mode_t) <= sizeof(unsigned long long)) {
            return PyLong_FromUnsignedLongLong((unsigned long long) value);
        }
    } else {
        if (sizeof(mode_t) <= sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(mode_t) <= sizeof(long long)) {
            return PyLong_FromLongLong((long long) value);
        }
    }
    {
        int one = 1; int little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&value;
        return _PyLong_FromByteArray(bytes, sizeof(mode_t),
                                     little, !is_unsigned);
    }
}

static CYTHON_INLINE PyObject* __Pyx_PyInt_From_uid_t(uid_t value) {
    const uid_t neg_one = (uid_t) -1, const_zero = 0;
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(uid_t) < sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(uid_t) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
        } else if (sizeof(uid_t) <= sizeof(unsigned long long)) {
            return PyLong_FromUnsignedLongLong((unsigned long long) value);
        }
    } else {
        if (sizeof(uid_t) <= sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(uid_t) <= sizeof(long long)) {
            return PyLong_FromLongLong((long long) value);
        }
    }
    {
        int one = 1; int little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&value;
        return _PyLong_FromByteArray(bytes, sizeof(uid_t),
                                     little, !is_unsigned);
    }
}

static CYTHON_INLINE PyObject* __Pyx_PyInt_From_gid_t(gid_t value) {
    const gid_t neg_one = (gid_t) -1, const_zero = 0;
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(gid_t) < sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(gid_t) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
        } else if (sizeof(gid_t) <= sizeof(unsigned long long)) {
            return PyLong_FromUnsignedLongLong((unsigned long long) value);
        }
    } else {
        if (sizeof(gid_t) <= sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(gid_t) <= sizeof(long long)) {
            return PyLong_FromLongLong((long long) value);
        }
    }
    {
        int one = 1; int little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&value;
        return _PyLong_FromByteArray(bytes, sizeof(gid_t),
                                     little, !is_unsigned);
    }
}

static CYTHON_INLINE PyObject* __Pyx_PyInt_From_off_t(off_t value) {
    const off_t neg_one = (off_t) -1, const_zero = 0;
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(off_t) < sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(off_t) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
        } else if (sizeof(off_t) <= sizeof(unsigned long long)) {
            return PyLong_FromUnsignedLongLong((unsigned long long) value);
        }
    } else {
        if (sizeof(off_t) <= sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(off_t) <= sizeof(long long)) {
            return PyLong_FromLongLong((long long) value);
        }
    }
    {
        int one = 1; int little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&value;
        return _PyLong_FromByteArray(bytes, sizeof(off_t),
                                     little, !is_unsigned);
    }
}

static CYTHON_INLINE PyObject* __Pyx_PyInt_From_dev_t(dev_t value) {
    const dev_t neg_one = (dev_t) -1, const_zero = 0;
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(dev_t) < sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(dev_t) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
        } else if (sizeof(dev_t) <= sizeof(unsigned long long)) {
            return PyLong_FromUnsignedLongLong((unsigned long long) value);
        }
    } else {
        if (sizeof(dev_t) <= sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(dev_t) <= sizeof(long long)) {
            return PyLong_FromLongLong((long long) value);
        }
    }
    {
        int one = 1; int little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&value;
        return _PyLong_FromByteArray(bytes, sizeof(dev_t),
                                     little, !is_unsigned);
    }
}

static CYTHON_INLINE uint64_t __Pyx_PyInt_As_uint64_t(PyObject *x) {
    const uint64_t neg_one = (uint64_t) -1, const_zero = 0;
    const int is_unsigned = neg_one > const_zero;
#if PY_MAJOR_VERSION < 3
    if (likely(PyInt_Check(x))) {
        if (sizeof(uint64_t) < sizeof(long)) {
            __PYX_VERIFY_RETURN_INT(uint64_t, long, PyInt_AS_LONG(x))
        } else {
            long val = PyInt_AS_LONG(x);
            if (is_unsigned && unlikely(val < 0)) {
                goto raise_neg_overflow;
            }
            return (uint64_t) val;
        }
    } else
#endif
    if (likely(PyLong_Check(x))) {
        if (is_unsigned) {
#if CYTHON_COMPILING_IN_CPYTHON && PY_MAJOR_VERSION >= 3
 #if CYTHON_USE_PYLONG_INTERNALS
            switch (Py_SIZE(x)) {
                case  0: return 0;
                case  1: __PYX_VERIFY_RETURN_INT(uint64_t, digit, ((PyLongObject*)x)->ob_digit[0]);
            }
 #endif
#endif
            if (unlikely(Py_SIZE(x) < 0)) {
                goto raise_neg_overflow;
            }
            if (sizeof(uint64_t) <= sizeof(unsigned long)) {
                __PYX_VERIFY_RETURN_INT(uint64_t, unsigned long, PyLong_AsUnsignedLong(x))
            } else if (sizeof(uint64_t) <= sizeof(unsigned long long)) {
                __PYX_VERIFY_RETURN_INT(uint64_t, unsigned long long, PyLong_AsUnsignedLongLong(x))
            }
        } else {
#if CYTHON_COMPILING_IN_CPYTHON && PY_MAJOR_VERSION >= 3
 #if CYTHON_USE_PYLONG_INTERNALS
            switch (Py_SIZE(x)) {
                case  0: return 0;
                case  1: __PYX_VERIFY_RETURN_INT(uint64_t,  digit, +(((PyLongObject*)x)->ob_digit[0]));
                case -1: __PYX_VERIFY_RETURN_INT(uint64_t, sdigit, -(sdigit) ((PyLongObject*)x)->ob_digit[0]);
            }
 #endif
#endif
            if (sizeof(uint64_t) <= sizeof(long)) {
                __PYX_VERIFY_RETURN_INT(uint64_t, long, PyLong_AsLong(x))
            } else if (sizeof(uint64_t) <= sizeof(long long)) {
                __PYX_VERIFY_RETURN_INT(uint64_t, long long, PyLong_AsLongLong(x))
            }
        }
        {
#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray)
            PyErr_SetString(PyExc_RuntimeError,
                            "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers");
#else
            uint64_t val;
            PyObject *v = __Pyx_PyNumber_Int(x);
 #if PY_MAJOR_VERSION < 3
            if (likely(v) && !PyLong_Check(v)) {
                PyObject *tmp = v;
                v = PyNumber_Long(tmp);
                Py_DECREF(tmp);
            }
 #endif
            if (likely(v)) {
                int one = 1; int is_little = (int)*(unsigned char *)&one;
                unsigned char *bytes = (unsigned char *)&val;
                int ret = _PyLong_AsByteArray((PyLongObject *)v,
                                              bytes, sizeof(val),
                                              is_little, !is_unsigned);
                Py_DECREF(v);
                if (likely(!ret))
                    return val;
            }
#endif
            return (uint64_t) -1;
        }
    } else {
        uint64_t val;
        PyObject *tmp = __Pyx_PyNumber_Int(x);
        if (!tmp) return (uint64_t) -1;
        val = __Pyx_PyInt_As_uint64_t(tmp);
        Py_DECREF(tmp);
        return val;
    }
raise_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "value too large to convert to uint64_t");
    return (uint64_t) -1;
raise_neg_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "can't convert negative value to uint64_t");
    return (uint64_t) -1;
}

static CYTHON_INLINE PyObject* __Pyx_PyInt_From_uint64_t(uint64_t value) {
    const uint64_t neg_one = (uint64_t) -1, const_zero = 0;
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(uint64_t) < sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(uint64_t) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
        } else if (sizeof(uint64_t) <= sizeof(unsigned long long)) {
            return PyLong_FromUnsignedLongLong((unsigned long long) value);
        }
    } else {
        if (sizeof(uint64_t) <= sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(uint64_t) <= sizeof(long long)) {
            return PyLong_FromLongLong((long long) value);
        }
    }
    {
        int one = 1; int little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&value;
        return _PyLong_FromByteArray(bytes, sizeof(uint64_t),
                                     little, !is_unsigned);
    }
}

static CYTHON_INLINE size_t __Pyx_PyInt_As_size_t(PyObject *x) {
    const size_t neg_one = (size_t) -1, const_zero = 0;
    const int is_unsigned = neg_one > const_zero;
#if PY_MAJOR_VERSION < 3
    if (likely(PyInt_Check(x))) {
        if (sizeof(size_t) < sizeof(long)) {
            __PYX_VERIFY_RETURN_INT(size_t, long, PyInt_AS_LONG(x))
        } else {
            long val = PyInt_AS_LONG(x);
            if (is_unsigned && unlikely(val < 0)) {
                goto raise_neg_overflow;
            }
            return (size_t) val;
        }
    } else
#endif
    if (likely(PyLong_Check(x))) {
        if (is_unsigned) {
#if CYTHON_COMPILING_IN_CPYTHON && PY_MAJOR_VERSION >= 3
 #if CYTHON_USE_PYLONG_INTERNALS
            switch (Py_SIZE(x)) {
                case  0: return 0;
                case  1: __PYX_VERIFY_RETURN_INT(size_t, digit, ((PyLongObject*)x)->ob_digit[0]);
            }
 #endif
#endif
            if (unlikely(Py_SIZE(x) < 0)) {
                goto raise_neg_overflow;
            }
            if (sizeof(size_t) <= sizeof(unsigned long)) {
                __PYX_VERIFY_RETURN_INT(size_t, unsigned long, PyLong_AsUnsignedLong(x))
            } else if (sizeof(size_t) <= sizeof(unsigned long long)) {
                __PYX_VERIFY_RETURN_INT(size_t, unsigned long long, PyLong_AsUnsignedLongLong(x))
            }
        } else {
#if CYTHON_COMPILING_IN_CPYTHON && PY_MAJOR_VERSION >= 3
 #if CYTHON_USE_PYLONG_INTERNALS
            switch (Py_SIZE(x)) {
                case  0: return 0;
                case  1: __PYX_VERIFY_RETURN_INT(size_t,  digit, +(((PyLongObject*)x)->ob_digit[0]));
                case -1: __PYX_VERIFY_RETURN_INT(size_t, sdigit, -(sdigit) ((PyLongObject*)x)->ob_digit[0]);
            }
 #endif
#endif
            if (sizeof(size_t) <= sizeof(long)) {
                __PYX_VERIFY_RETURN_INT(size_t, long, PyLong_AsLong(x))
            } else if (sizeof(size_t) <= sizeof(long long)) {
                __PYX_VERIFY_RETURN_INT(size_t, long long, PyLong_AsLongLong(x))
            }
        }
        {
#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray)
            PyErr_SetString(PyExc_RuntimeError,
                            "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers");
#else
            size_t val;
            PyObject *v = __Pyx_PyNumber_Int(x);
 #if PY_MAJOR_VERSION < 3
            if (likely(v) && !PyLong_Check(v)) {
                PyObject *tmp = v;
                v = PyNumber_Long(tmp);
                Py_DECREF(tmp);
            }
 #endif
            if (likely(v)) {
                int one = 1; int is_little = (int)*(unsigned char *)&one;
                unsigned char *bytes = (unsigned char *)&val;
                int ret = _PyLong_AsByteArray((PyLongObject *)v,
                                              bytes, sizeof(val),
                                              is_little, !is_unsigned);
                Py_DECREF(v);
                if (likely(!ret))
                    return val;
            }
#endif
            return (size_t) -1;
        }
    } else {
        size_t val;
        PyObject *tmp = __Pyx_PyNumber_Int(x);
        if (!tmp) return (size_t) -1;
        val = __Pyx_PyInt_As_size_t(tmp);
        Py_DECREF(tmp);
        return val;
    }
raise_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "value too large to convert to size_t");
    return (size_t) -1;
raise_neg_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "can't convert negative value to size_t");
    return (size_t) -1;
}

static CYTHON_INLINE off_t __Pyx_PyInt_As_off_t(PyObject *x) {
    const off_t neg_one = (off_t) -1, const_zero = 0;
    const int is_unsigned = neg_one > const_zero;
#if PY_MAJOR_VERSION < 3
    if (likely(PyInt_Check(x))) {
        if (sizeof(off_t) < sizeof(long)) {
            __PYX_VERIFY_RETURN_INT(off_t, long, PyInt_AS_LONG(x))
        } else {
            long val = PyInt_AS_LONG(x);
            if (is_unsigned && unlikely(val < 0)) {
                goto raise_neg_overflow;
            }
            return (off_t) val;
        }
    } else
#endif
    if (likely(PyLong_Check(x))) {
        if (is_unsigned) {
#if CYTHON_COMPILING_IN_CPYTHON && PY_MAJOR_VERSION >= 3
 #if CYTHON_USE_PYLONG_INTERNALS
            switch (Py_SIZE(x)) {
                case  0: return 0;
                case  1: __PYX_VERIFY_RETURN_INT(off_t, digit, ((PyLongObject*)x)->ob_digit[0]);
            }
 #endif
#endif
            if (unlikely(Py_SIZE(x) < 0)) {
                goto raise_neg_overflow;
            }
            if (sizeof(off_t) <= sizeof(unsigned long)) {
                __PYX_VERIFY_RETURN_INT(off_t, unsigned long, PyLong_AsUnsignedLong(x))
            } else if (sizeof(off_t) <= sizeof(unsigned long long)) {
                __PYX_VERIFY_RETURN_INT(off_t, unsigned long long, PyLong_AsUnsignedLongLong(x))
            }
        } else {
#if CYTHON_COMPILING_IN_CPYTHON && PY_MAJOR_VERSION >= 3
 #if CYTHON_USE_PYLONG_INTERNALS
            switch (Py_SIZE(x)) {
                case  0: return 0;
                case  1: __PYX_VERIFY_RETURN_INT(off_t,  digit, +(((PyLongObject*)x)->ob_digit[0]));
                case -1: __PYX_VERIFY_RETURN_INT(off_t, sdigit, -(sdigit) ((PyLongObject*)x)->ob_digit[0]);
            }
 #endif
#endif
            if (sizeof(off_t) <= sizeof(long)) {
                __PYX_VERIFY_RETURN_INT(off_t, long, PyLong_AsLong(x))
            } else if (sizeof(off_t) <= sizeof(long long)) {
                __PYX_VERIFY_RETURN_INT(off_t, long long, PyLong_AsLongLong(x))
            }
        }
        {
#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray)
            PyErr_SetString(PyExc_RuntimeError,
                            "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers");
#else
            off_t val;
            PyObject *v = __Pyx_PyNumber_Int(x);
 #if PY_MAJOR_VERSION < 3
            if (likely(v) && !PyLong_Check(v)) {
                PyObject *tmp = v;
                v = PyNumber_Long(tmp);
                Py_DECREF(tmp);
            }
 #endif
            if (likely(v)) {
                int one = 1; int is_little = (int)*(unsigned char *)&one;
                unsigned char *bytes = (unsigned char *)&val;
                int ret = _PyLong_AsByteArray((PyLongObject *)v,
                                              bytes, sizeof(val),
                                              is_little, !is_unsigned);
                Py_DECREF(v);
                if (likely(!ret))
                    return val;
            }
#endif
            return (off_t) -1;
        }
    } else {
        off_t val;
        PyObject *tmp = __Pyx_PyNumber_Int(x);
        if (!tmp) return (off_t) -1;
        val = __Pyx_PyInt_As_off_t(tmp);
        Py_DECREF(tmp);
        return val;
    }
raise_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "value too large to convert to off_t");
    return (off_t) -1;
raise_neg_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "can't convert negative value to off_t");
    return (off_t) -1;
}

static CYTHON_INLINE fuse_ino_t __Pyx_PyInt_As_fuse_ino_t(PyObject *x) {
    const fuse_ino_t neg_one = (fuse_ino_t) -1, const_zero = 0;
    const int is_unsigned = neg_one > const_zero;
#if PY_MAJOR_VERSION < 3
    if (likely(PyInt_Check(x))) {
        if (sizeof(fuse_ino_t) < sizeof(long)) {
            __PYX_VERIFY_RETURN_INT(fuse_ino_t, long, PyInt_AS_LONG(x))
        } else {
            long val = PyInt_AS_LONG(x);
            if (is_unsigned && unlikely(val < 0)) {
                goto raise_neg_overflow;
            }
            return (fuse_ino_t) val;
        }
    } else
#endif
    if (likely(PyLong_Check(x))) {
        if (is_unsigned) {
#if CYTHON_COMPILING_IN_CPYTHON && PY_MAJOR_VERSION >= 3
 #if CYTHON_USE_PYLONG_INTERNALS
            switch (Py_SIZE(x)) {
                case  0: return 0;
                case  1: __PYX_VERIFY_RETURN_INT(fuse_ino_t, digit, ((PyLongObject*)x)->ob_digit[0]);
            }
 #endif
#endif
            if (unlikely(Py_SIZE(x) < 0)) {
                goto raise_neg_overflow;
            }
            if (sizeof(fuse_ino_t) <= sizeof(unsigned long)) {
                __PYX_VERIFY_RETURN_INT(fuse_ino_t, unsigned long, PyLong_AsUnsignedLong(x))
            } else if (sizeof(fuse_ino_t) <= sizeof(unsigned long long)) {
                __PYX_VERIFY_RETURN_INT(fuse_ino_t, unsigned long long, PyLong_AsUnsignedLongLong(x))
            }
        } else {
#if CYTHON_COMPILING_IN_CPYTHON && PY_MAJOR_VERSION >= 3
 #if CYTHON_USE_PYLONG_INTERNALS
            switch (Py_SIZE(x)) {
                case  0: return 0;
                case  1: __PYX_VERIFY_RETURN_INT(fuse_ino_t,  digit, +(((PyLongObject*)x)->ob_digit[0]));
                case -1: __PYX_VERIFY_RETURN_INT(fuse_ino_t, sdigit, -(sdigit) ((PyLongObject*)x)->ob_digit[0]);
            }
 #endif
#endif
            if (sizeof(fuse_ino_t) <= sizeof(long)) {
                __PYX_VERIFY_RETURN_INT(fuse_ino_t, long, PyLong_AsLong(x))
            } else if (sizeof(fuse_ino_t) <= sizeof(long long)) {
                __PYX_VERIFY_RETURN_INT(fuse_ino_t, long long, PyLong_AsLongLong(x))
            }
        }
        {
#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray)
            PyErr_SetString(PyExc_RuntimeError,
                            "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers");
#else
            fuse_ino_t val;
            PyObject *v = __Pyx_PyNumber_Int(x);
 #if PY_MAJOR_VERSION < 3
            if (likely(v) && !PyLong_Check(v)) {
                PyObject *tmp = v;
                v = PyNumber_Long(tmp);
                Py_DECREF(tmp);
            }
 #endif
            if (likely(v)) {
                int one = 1; int is_little = (int)*(unsigned char *)&one;
                unsigned char *bytes = (unsigned char *)&val;
                int ret = _PyLong_AsByteArray((PyLongObject *)v,
                                              bytes, sizeof(val),
                                              is_little, !is_unsigned);
                Py_DECREF(v);
                if (likely(!ret))
                    return val;
            }
#endif
            return (fuse_ino_t) -1;
        }
    } else {
        fuse_ino_t val;
        PyObject *tmp = __Pyx_PyNumber_Int(x);
        if (!tmp) return (fuse_ino_t) -1;
        val = __Pyx_PyInt_As_fuse_ino_t(tmp);
        Py_DECREF(tmp);
        return val;
    }
raise_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "value too large to convert to fuse_ino_t");
    return (fuse_ino_t) -1;
raise_neg_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "can't convert negative value to fuse_ino_t");
    return (fuse_ino_t) -1;
}

static CYTHON_INLINE unsigned long __Pyx_PyInt_As_unsigned_long(PyObject *x) {
    const unsigned long neg_one = (unsigned long) -1, const_zero = 0;
    const int is_unsigned = neg_one > const_zero;
#if PY_MAJOR_VERSION < 3
    if (likely(PyInt_Check(x))) {
        if (sizeof(unsigned long) < sizeof(long)) {
            __PYX_VERIFY_RETURN_INT(unsigned long, long, PyInt_AS_LONG(x))
        } else {
            long val = PyInt_AS_LONG(x);
            if (is_unsigned && unlikely(val < 0)) {
                goto raise_neg_overflow;
            }
            return (unsigned long) val;
        }
    } else
#endif
    if (likely(PyLong_Check(x))) {
        if (is_unsigned) {
#if CYTHON_COMPILING_IN_CPYTHON && PY_MAJOR_VERSION >= 3
 #if CYTHON_USE_PYLONG_INTERNALS
            switch (Py_SIZE(x)) {
                case  0: return 0;
                case  1: __PYX_VERIFY_RETURN_INT(unsigned long, digit, ((PyLongObject*)x)->ob_digit[0]);
            }
 #endif
#endif
            if (unlikely(Py_SIZE(x) < 0)) {
                goto raise_neg_overflow;
            }
            if (sizeof(unsigned long) <= sizeof(unsigned long)) {
                __PYX_VERIFY_RETURN_INT(unsigned long, unsigned long, PyLong_AsUnsignedLong(x))
            } else if (sizeof(unsigned long) <= sizeof(unsigned long long)) {
                __PYX_VERIFY_RETURN_INT(unsigned long, unsigned long long, PyLong_AsUnsignedLongLong(x))
            }
        } else {
#if CYTHON_COMPILING_IN_CPYTHON && PY_MAJOR_VERSION >= 3
 #if CYTHON_USE_PYLONG_INTERNALS
            switch (Py_SIZE(x)) {
                case  0: return 0;
                case  1: __PYX_VERIFY_RETURN_INT(unsigned long,  digit, +(((PyLongObject*)x)->ob_digit[0]));
                case -1: __PYX_VERIFY_RETURN_INT(unsigned long, sdigit, -(sdigit) ((PyLongObject*)x)->ob_digit[0]);
            }
 #endif
#endif
            if (sizeof(unsigned long) <= sizeof(long)) {
                __PYX_VERIFY_RETURN_INT(unsigned long, long, PyLong_AsLong(x))
            } else if (sizeof(unsigned long) <= sizeof(long long)) {
                __PYX_VERIFY_RETURN_INT(unsigned long, long long, PyLong_AsLongLong(x))
            }
        }
        {
#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray)
            PyErr_SetString(PyExc_RuntimeError,
                            "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers");
#else
            unsigned long val;
            PyObject *v = __Pyx_PyNumber_Int(x);
 #if PY_MAJOR_VERSION < 3
            if (likely(v) && !PyLong_Check(v)) {
                PyObject *tmp = v;
                v = PyNumber_Long(tmp);
                Py_DECREF(tmp);
            }
 #endif
            if (likely(v)) {
                int one = 1; int is_little = (int)*(unsigned char *)&one;
                unsigned char *bytes = (unsigned char *)&val;
                int ret = _PyLong_AsByteArray((PyLongObject *)v,
                                              bytes, sizeof(val),
                                              is_little, !is_unsigned);
                Py_DECREF(v);
                if (likely(!ret))
                    return val;
            }
#endif
            return (unsigned long) -1;
        }
    } else {
        unsigned long val;
        PyObject *tmp = __Pyx_PyNumber_Int(x);
        if (!tmp) return (unsigned long) -1;
        val = __Pyx_PyInt_As_unsigned_long(tmp);
        Py_DECREF(tmp);
        return val;
    }
raise_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "value too large to convert to unsigned long");
    return (unsigned long) -1;
raise_neg_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "can't convert negative value to unsigned long");
    return (unsigned long) -1;
}

static CYTHON_INLINE ino_t __Pyx_PyInt_As_ino_t(PyObject *x) {
    const ino_t neg_one = (ino_t) -1, const_zero = 0;
    const int is_unsigned = neg_one > const_zero;
#if PY_MAJOR_VERSION < 3
    if (likely(PyInt_Check(x))) {
        if (sizeof(ino_t) < sizeof(long)) {
            __PYX_VERIFY_RETURN_INT(ino_t, long, PyInt_AS_LONG(x))
        } else {
            long val = PyInt_AS_LONG(x);
            if (is_unsigned && unlikely(val < 0)) {
                goto raise_neg_overflow;
            }
            return (ino_t) val;
        }
    } else
#endif
    if (likely(PyLong_Check(x))) {
        if (is_unsigned) {
#if CYTHON_COMPILING_IN_CPYTHON && PY_MAJOR_VERSION >= 3
 #if CYTHON_USE_PYLONG_INTERNALS
            switch (Py_SIZE(x)) {
                case  0: return 0;
                case  1: __PYX_VERIFY_RETURN_INT(ino_t, digit, ((PyLongObject*)x)->ob_digit[0]);
            }
 #endif
#endif
            if (unlikely(Py_SIZE(x) < 0)) {
                goto raise_neg_overflow;
            }
            if (sizeof(ino_t) <= sizeof(unsigned long)) {
                __PYX_VERIFY_RETURN_INT(ino_t, unsigned long, PyLong_AsUnsignedLong(x))
            } else if (sizeof(ino_t) <= sizeof(unsigned long long)) {
                __PYX_VERIFY_RETURN_INT(ino_t, unsigned long long, PyLong_AsUnsignedLongLong(x))
            }
        } else {
#if CYTHON_COMPILING_IN_CPYTHON && PY_MAJOR_VERSION >= 3
 #if CYTHON_USE_PYLONG_INTERNALS
            switch (Py_SIZE(x)) {
                case  0: return 0;
                case  1: __PYX_VERIFY_RETURN_INT(ino_t,  digit, +(((PyLongObject*)x)->ob_digit[0]));
                case -1: __PYX_VERIFY_RETURN_INT(ino_t, sdigit, -(sdigit) ((PyLongObject*)x)->ob_digit[0]);
            }
 #endif
#endif
            if (sizeof(ino_t) <= sizeof(long)) {
                __PYX_VERIFY_RETURN_INT(ino_t, long, PyLong_AsLong(x))
            } else if (sizeof(ino_t) <= sizeof(long long)) {
                __PYX_VERIFY_RETURN_INT(ino_t, long long, PyLong_AsLongLong(x))
            }
        }
        {
#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray)
            PyErr_SetString(PyExc_RuntimeError,
                            "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers");
#else
            ino_t val;
            PyObject *v = __Pyx_PyNumber_Int(x);
 #if PY_MAJOR_VERSION < 3
            if (likely(v) && !PyLong_Check(v)) {
                PyObject *tmp = v;
                v = PyNumber_Long(tmp);
                Py_DECREF(tmp);
            }
 #endif
            if (likely(v)) {
                int one = 1; int is_little = (int)*(unsigned char *)&one;
                unsigned char *bytes = (unsigned char *)&val;
                int ret = _PyLong_AsByteArray((PyLongObject *)v,
                                              bytes, sizeof(val),
                                              is_little, !is_unsigned);
                Py_DECREF(v);
                if (likely(!ret))
                    return val;
            }
#endif
            return (ino_t) -1;
        }
    } else {
        ino_t val;
        PyObject *tmp = __Pyx_PyNumber_Int(x);
        if (!tmp) return (ino_t) -1;
        val = __Pyx_PyInt_As_ino_t(tmp);
        Py_DECREF(tmp);
        return val;
    }
raise_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "value too large to convert to ino_t");
    return (ino_t) -1;
raise_neg_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "can't convert negative value to ino_t");
    return (ino_t) -1;
}

static CYTHON_INLINE mode_t __Pyx_PyInt_As_mode_t(PyObject *x) {
    const mode_t neg_one = (mode_t) -1, const_zero = 0;
    const int is_unsigned = neg_one > const_zero;
#if PY_MAJOR_VERSION < 3
    if (likely(PyInt_Check(x))) {
        if (sizeof(mode_t) < sizeof(long)) {
            __PYX_VERIFY_RETURN_INT(mode_t, long, PyInt_AS_LONG(x))
        } else {
            long val = PyInt_AS_LONG(x);
            if (is_unsigned && unlikely(val < 0)) {
                goto raise_neg_overflow;
            }
            return (mode_t) val;
        }
    } else
#endif
    if (likely(PyLong_Check(x))) {
        if (is_unsigned) {
#if CYTHON_COMPILING_IN_CPYTHON && PY_MAJOR_VERSION >= 3
 #if CYTHON_USE_PYLONG_INTERNALS
            switch (Py_SIZE(x)) {
                case  0: return 0;
                case  1: __PYX_VERIFY_RETURN_INT(mode_t, digit, ((PyLongObject*)x)->ob_digit[0]);
            }
 #endif
#endif
            if (unlikely(Py_SIZE(x) < 0)) {
                goto raise_neg_overflow;
            }
            if (sizeof(mode_t) <= sizeof(unsigned long)) {
                __PYX_VERIFY_RETURN_INT(mode_t, unsigned long, PyLong_AsUnsignedLong(x))
            } else if (sizeof(mode_t) <= sizeof(unsigned long long)) {
                __PYX_VERIFY_RETURN_INT(mode_t, unsigned long long, PyLong_AsUnsignedLongLong(x))
            }
        } else {
#if CYTHON_COMPILING_IN_CPYTHON && PY_MAJOR_VERSION >= 3
 #if CYTHON_USE_PYLONG_INTERNALS
            switch (Py_SIZE(x)) {
                case  0: return 0;
                case  1: __PYX_VERIFY_RETURN_INT(mode_t,  digit, +(((PyLongObject*)x)->ob_digit[0]));
                case -1: __PYX_VERIFY_RETURN_INT(mode_t, sdigit, -(sdigit) ((PyLongObject*)x)->ob_digit[0]);
            }
 #endif
#endif
            if (sizeof(mode_t) <= sizeof(long)) {
                __PYX_VERIFY_RETURN_INT(mode_t, long, PyLong_AsLong(x))
            } else if (sizeof(mode_t) <= sizeof(long long)) {
                __PYX_VERIFY_RETURN_INT(mode_t, long long, PyLong_AsLongLong(x))
            }
        }
        {
#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray)
            PyErr_SetString(PyExc_RuntimeError,
                            "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers");
#else
            mode_t val;
            PyObject *v = __Pyx_PyNumber_Int(x);
 #if PY_MAJOR_VERSION < 3
            if (likely(v) && !PyLong_Check(v)) {
                PyObject *tmp = v;
                v = PyNumber_Long(tmp);
                Py_DECREF(tmp);
            }
 #endif
            if (likely(v)) {
                int one = 1; int is_little = (int)*(unsigned char *)&one;
                unsigned char *bytes = (unsigned char *)&val;
                int ret = _PyLong_AsByteArray((PyLongObject *)v,
                                              bytes, sizeof(val),
                                              is_little, !is_unsigned);
                Py_DECREF(v);
                if (likely(!ret))
                    return val;
            }
#endif
            return (mode_t) -1;
        }
    } else {
        mode_t val;
        PyObject *tmp = __Pyx_PyNumber_Int(x);
        if (!tmp) return (mode_t) -1;
        val = __Pyx_PyInt_As_mode_t(tmp);
        Py_DECREF(tmp);
        return val;
    }
raise_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "value too large to convert to mode_t");
    return (mode_t) -1;
raise_neg_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "can't convert negative value to mode_t");
    return (mode_t) -1;
}

static CYTHON_INLINE nlink_t __Pyx_PyInt_As_nlink_t(PyObject *x) {
    const nlink_t neg_one = (nlink_t) -1, const_zero = 0;
    const int is_unsigned = neg_one > const_zero;
#if PY_MAJOR_VERSION < 3
    if (likely(PyInt_Check(x))) {
        if (sizeof(nlink_t) < sizeof(long)) {
            __PYX_VERIFY_RETURN_INT(nlink_t, long, PyInt_AS_LONG(x))
        } else {
            long val = PyInt_AS_LONG(x);
            if (is_unsigned && unlikely(val < 0)) {
                goto raise_neg_overflow;
            }
            return (nlink_t) val;
        }
    } else
#endif
    if (likely(PyLong_Check(x))) {
        if (is_unsigned) {
#if CYTHON_COMPILING_IN_CPYTHON && PY_MAJOR_VERSION >= 3
 #if CYTHON_USE_PYLONG_INTERNALS
            switch (Py_SIZE(x)) {
                case  0: return 0;
                case  1: __PYX_VERIFY_RETURN_INT(nlink_t, digit, ((PyLongObject*)x)->ob_digit[0]);
            }
 #endif
#endif
            if (unlikely(Py_SIZE(x) < 0)) {
                goto raise_neg_overflow;
            }
            if (sizeof(nlink_t) <= sizeof(unsigned long)) {
                __PYX_VERIFY_RETURN_INT(nlink_t, unsigned long, PyLong_AsUnsignedLong(x))
            } else if (sizeof(nlink_t) <= sizeof(unsigned long long)) {
                __PYX_VERIFY_RETURN_INT(nlink_t, unsigned long long, PyLong_AsUnsignedLongLong(x))
            }
        } else {
#if CYTHON_COMPILING_IN_CPYTHON && PY_MAJOR_VERSION >= 3
 #if CYTHON_USE_PYLONG_INTERNALS
            switch (Py_SIZE(x)) {
                case  0: return 0;
                case  1: __PYX_VERIFY_RETURN_INT(nlink_t,  digit, +(((PyLongObject*)x)->ob_digit[0]));
                case -1: __PYX_VERIFY_RETURN_INT(nlink_t, sdigit, -(sdigit) ((PyLongObject*)x)->ob_digit[0]);
            }
 #endif
#endif
            if (sizeof(nlink_t) <= sizeof(long)) {
                __PYX_VERIFY_RETURN_INT(nlink_t, long, PyLong_AsLong(x))
            } else if (sizeof(nlink_t) <= sizeof(long long)) {
                __PYX_VERIFY_RETURN_INT(nlink_t, long long, PyLong_AsLongLong(x))
            }
        }
        {
#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray)
            PyErr_SetString(PyExc_RuntimeError,
                            "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers");
#else
            nlink_t val;
            PyObject *v = __Pyx_PyNumber_Int(x);
 #if PY_MAJOR_VERSION < 3
            if (likely(v) && !PyLong_Check(v)) {
                PyObject *tmp = v;
                v = PyNumber_Long(tmp);
                Py_DECREF(tmp);
            }
 #endif
            if (likely(v)) {
                int one = 1; int is_little = (int)*(unsigned char *)&one;
                unsigned char *bytes = (unsigned char *)&val;
                int ret = _PyLong_AsByteArray((PyLongObject *)v,
                                              bytes, sizeof(val),
                                              is_little, !is_unsigned);
                Py_DECREF(v);
                if (likely(!ret))
                    return val;
            }
#endif
            return (nlink_t) -1;
        }
    } else {
        nlink_t val;
        PyObject *tmp = __Pyx_PyNumber_Int(x);
        if (!tmp) return (nlink_t) -1;
        val = __Pyx_PyInt_As_nlink_t(tmp);
        Py_DECREF(tmp);
        return val;
    }
raise_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "value too large to convert to nlink_t");
    return (nlink_t) -1;
raise_neg_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "can't convert negative value to nlink_t");
    return (nlink_t) -1;
}

static CYTHON_INLINE uid_t __Pyx_PyInt_As_uid_t(PyObject *x) {
    const uid_t neg_one = (uid_t) -1, const_zero = 0;
    const int is_unsigned = neg_one > const_zero;
#if PY_MAJOR_VERSION < 3
    if (likely(PyInt_Check(x))) {
        if (sizeof(uid_t) < sizeof(long)) {
            __PYX_VERIFY_RETURN_INT(uid_t, long, PyInt_AS_LONG(x))
        } else {
            long val = PyInt_AS_LONG(x);
            if (is_unsigned && unlikely(val < 0)) {
                goto raise_neg_overflow;
            }
            return (uid_t) val;
        }
    } else
#endif
    if (likely(PyLong_Check(x))) {
        if (is_unsigned) {
#if CYTHON_COMPILING_IN_CPYTHON && PY_MAJOR_VERSION >= 3
 #if CYTHON_USE_PYLONG_INTERNALS
            switch (Py_SIZE(x)) {
                case  0: return 0;
                case  1: __PYX_VERIFY_RETURN_INT(uid_t, digit, ((PyLongObject*)x)->ob_digit[0]);
            }
 #endif
#endif
            if (unlikely(Py_SIZE(x) < 0)) {
                goto raise_neg_overflow;
            }
            if (sizeof(uid_t) <= sizeof(unsigned long)) {
                __PYX_VERIFY_RETURN_INT(uid_t, unsigned long, PyLong_AsUnsignedLong(x))
            } else if (sizeof(uid_t) <= sizeof(unsigned long long)) {
                __PYX_VERIFY_RETURN_INT(uid_t, unsigned long long, PyLong_AsUnsignedLongLong(x))
            }
        } else {
#if CYTHON_COMPILING_IN_CPYTHON && PY_MAJOR_VERSION >= 3
 #if CYTHON_USE_PYLONG_INTERNALS
            switch (Py_SIZE(x)) {
                case  0: return 0;
                case  1: __PYX_VERIFY_RETURN_INT(uid_t,  digit, +(((PyLongObject*)x)->ob_digit[0]));
                case -1: __PYX_VERIFY_RETURN_INT(uid_t, sdigit, -(sdigit) ((PyLongObject*)x)->ob_digit[0]);
            }
 #endif
#endif
            if (sizeof(uid_t) <= sizeof(long)) {
                __PYX_VERIFY_RETURN_INT(uid_t, long, PyLong_AsLong(x))
            } else if (sizeof(uid_t) <= sizeof(long long)) {
                __PYX_VERIFY_RETURN_INT(uid_t, long long, PyLong_AsLongLong(x))
            }
        }
        {
#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray)
            PyErr_SetString(PyExc_RuntimeError,
                            "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers");
#else
            uid_t val;
            PyObject *v = __Pyx_PyNumber_Int(x);
 #if PY_MAJOR_VERSION < 3
            if (likely(v) && !PyLong_Check(v)) {
                PyObject *tmp = v;
                v = PyNumber_Long(tmp);
                Py_DECREF(tmp);
            }
 #endif
            if (likely(v)) {
                int one = 1; int is_little = (int)*(unsigned char *)&one;
                unsigned char *bytes = (unsigned char *)&val;
                int ret = _PyLong_AsByteArray((PyLongObject *)v,
                                              bytes, sizeof(val),
                                              is_little, !is_unsigned);
                Py_DECREF(v);
                if (likely(!ret))
                    return val;
            }
#endif
            return (uid_t) -1;
        }
    } else {
        uid_t val;
        PyObject *tmp = __Pyx_PyNumber_Int(x);
        if (!tmp) return (uid_t) -1;
        val = __Pyx_PyInt_As_uid_t(tmp);
        Py_DECREF(tmp);
        return val;
    }
raise_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "value too large to convert to uid_t");
    return (uid_t) -1;
raise_neg_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "can't convert negative value to uid_t");
    return (uid_t) -1;
}

static CYTHON_INLINE gid_t __Pyx_PyInt_As_gid_t(PyObject *x) {
    const gid_t neg_one = (gid_t) -1, const_zero = 0;
    const int is_unsigned = neg_one > const_zero;
#if PY_MAJOR_VERSION < 3
    if (likely(PyInt_Check(x))) {
        if (sizeof(gid_t) < sizeof(long)) {
            __PYX_VERIFY_RETURN_INT(gid_t, long, PyInt_AS_LONG(x))
        } else {
            long val = PyInt_AS_LONG(x);
            if (is_unsigned && unlikely(val < 0)) {
                goto raise_neg_overflow;
            }
            return (gid_t) val;
        }
    } else
#endif
    if (likely(PyLong_Check(x))) {
        if (is_unsigned) {
#if CYTHON_COMPILING_IN_CPYTHON && PY_MAJOR_VERSION >= 3
 #if CYTHON_USE_PYLONG_INTERNALS
            switch (Py_SIZE(x)) {
                case  0: return 0;
                case  1: __PYX_VERIFY_RETURN_INT(gid_t, digit, ((PyLongObject*)x)->ob_digit[0]);
            }
 #endif
#endif
            if (unlikely(Py_SIZE(x) < 0)) {
                goto raise_neg_overflow;
            }
            if (sizeof(gid_t) <= sizeof(unsigned long)) {
                __PYX_VERIFY_RETURN_INT(gid_t, unsigned long, PyLong_AsUnsignedLong(x))
            } else if (sizeof(gid_t) <= sizeof(unsigned long long)) {
                __PYX_VERIFY_RETURN_INT(gid_t, unsigned long long, PyLong_AsUnsignedLongLong(x))
            }
        } else {
#if CYTHON_COMPILING_IN_CPYTHON && PY_MAJOR_VERSION >= 3
 #if CYTHON_USE_PYLONG_INTERNALS
            switch (Py_SIZE(x)) {
                case  0: return 0;
                case  1: __PYX_VERIFY_RETURN_INT(gid_t,  digit, +(((PyLongObject*)x)->ob_digit[0]));
                case -1: __PYX_VERIFY_RETURN_INT(gid_t, sdigit, -(sdigit) ((PyLongObject*)x)->ob_digit[0]);
            }
 #endif
#endif
            if (sizeof(gid_t) <= sizeof(long)) {
                __PYX_VERIFY_RETURN_INT(gid_t, long, PyLong_AsLong(x))
            } else if (sizeof(gid_t) <= sizeof(long long)) {
                __PYX_VERIFY_RETURN_INT(gid_t, long long, PyLong_AsLongLong(x))
            }
        }
        {
#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray)
            PyErr_SetString(PyExc_RuntimeError,
                            "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers");
#else
            gid_t val;
            PyObject *v = __Pyx_PyNumber_Int(x);
 #if PY_MAJOR_VERSION < 3
            if (likely(v) && !PyLong_Check(v)) {
                PyObject *tmp = v;
                v = PyNumber_Long(tmp);
                Py_DECREF(tmp);
            }
 #endif
            if (likely(v)) {
                int one = 1; int is_little = (int)*(unsigned char *)&one;
                unsigned char *bytes = (unsigned char *)&val;
                int ret = _PyLong_AsByteArray((PyLongObject *)v,
                                              bytes, sizeof(val),
                                              is_little, !is_unsigned);
                Py_DECREF(v);
                if (likely(!ret))
                    return val;
            }
#endif
            return (gid_t) -1;
        }
    } else {
        gid_t val;
        PyObject *tmp = __Pyx_PyNumber_Int(x);
        if (!tmp) return (gid_t) -1;
        val = __Pyx_PyInt_As_gid_t(tmp);
        Py_DECREF(tmp);
        return val;
    }
raise_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "value too large to convert to gid_t");
    return (gid_t) -1;
raise_neg_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "can't convert negative value to gid_t");
    return (gid_t) -1;
}

static CYTHON_INLINE dev_t __Pyx_PyInt_As_dev_t(PyObject *x) {
    const dev_t neg_one = (dev_t) -1, const_zero = 0;
    const int is_unsigned = neg_one > const_zero;
#if PY_MAJOR_VERSION < 3
    if (likely(PyInt_Check(x))) {
        if (sizeof(dev_t) < sizeof(long)) {
            __PYX_VERIFY_RETURN_INT(dev_t, long, PyInt_AS_LONG(x))
        } else {
            long val = PyInt_AS_LONG(x);
            if (is_unsigned && unlikely(val < 0)) {
                goto raise_neg_overflow;
            }
            return (dev_t) val;
        }
    } else
#endif
    if (likely(PyLong_Check(x))) {
        if (is_unsigned) {
#if CYTHON_COMPILING_IN_CPYTHON && PY_MAJOR_VERSION >= 3
 #if CYTHON_USE_PYLONG_INTERNALS
            switch (Py_SIZE(x)) {
                case  0: return 0;
                case  1: __PYX_VERIFY_RETURN_INT(dev_t, digit, ((PyLongObject*)x)->ob_digit[0]);
            }
 #endif
#endif
            if (unlikely(Py_SIZE(x) < 0)) {
                goto raise_neg_overflow;
            }
            if (sizeof(dev_t) <= sizeof(unsigned long)) {
                __PYX_VERIFY_RETURN_INT(dev_t, unsigned long, PyLong_AsUnsignedLong(x))
            } else if (sizeof(dev_t) <= sizeof(unsigned long long)) {
                __PYX_VERIFY_RETURN_INT(dev_t, unsigned long long, PyLong_AsUnsignedLongLong(x))
            }
        } else {
#if CYTHON_COMPILING_IN_CPYTHON && PY_MAJOR_VERSION >= 3
 #if CYTHON_USE_PYLONG_INTERNALS
            switch (Py_SIZE(x)) {
                case  0: return 0;
                case  1: __PYX_VERIFY_RETURN_INT(dev_t,  digit, +(((PyLongObject*)x)->ob_digit[0]));
                case -1: __PYX_VERIFY_RETURN_INT(dev_t, sdigit, -(sdigit) ((PyLongObject*)x)->ob_digit[0]);
            }
 #endif
#endif
            if (sizeof(dev_t) <= sizeof(long)) {
                __PYX_VERIFY_RETURN_INT(dev_t, long, PyLong_AsLong(x))
            } else if (sizeof(dev_t) <= sizeof(long long)) {
                __PYX_VERIFY_RETURN_INT(dev_t, long long, PyLong_AsLongLong(x))
            }
        }
        {
#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray)
            PyErr_SetString(PyExc_RuntimeError,
                            "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers");
#else
            dev_t val;
            PyObject *v = __Pyx_PyNumber_Int(x);
 #if PY_MAJOR_VERSION < 3
            if (likely(v) && !PyLong_Check(v)) {
                PyObject *tmp = v;
                v = PyNumber_Long(tmp);
                Py_DECREF(tmp);
            }
 #endif
            if (likely(v)) {
                int one = 1; int is_little = (int)*(unsigned char *)&one;
                unsigned char *bytes = (unsigned char *)&val;
                int ret = _PyLong_AsByteArray((PyLongObject *)v,
                                              bytes, sizeof(val),
                                              is_little, !is_unsigned);
                Py_DECREF(v);
                if (likely(!ret))
                    return val;
            }
#endif
            return (dev_t) -1;
        }
    } else {
        dev_t val;
        PyObject *tmp = __Pyx_PyNumber_Int(x);
        if (!tmp) return (dev_t) -1;
        val = __Pyx_PyInt_As_dev_t(tmp);
        Py_DECREF(tmp);
        return val;
    }
raise_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "value too large to convert to dev_t");
    return (dev_t) -1;
raise_neg_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "can't convert negative value to dev_t");
    return (dev_t) -1;
}

static CYTHON_INLINE blksize_t __Pyx_PyInt_As_blksize_t(PyObject *x) {
    const blksize_t neg_one = (blksize_t) -1, const_zero = 0;
    const int is_unsigned = neg_one > const_zero;
#if PY_MAJOR_VERSION < 3
    if (likely(PyInt_Check(x))) {
        if (sizeof(blksize_t) < sizeof(long)) {
            __PYX_VERIFY_RETURN_INT(blksize_t, long, PyInt_AS_LONG(x))
        } else {
            long val = PyInt_AS_LONG(x);
            if (is_unsigned && unlikely(val < 0)) {
                goto raise_neg_overflow;
            }
            return (blksize_t) val;
        }
    } else
#endif
    if (likely(PyLong_Check(x))) {
        if (is_unsigned) {
#if CYTHON_COMPILING_IN_CPYTHON && PY_MAJOR_VERSION >= 3
 #if CYTHON_USE_PYLONG_INTERNALS
            switch (Py_SIZE(x)) {
                case  0: return 0;
                case  1: __PYX_VERIFY_RETURN_INT(blksize_t, digit, ((PyLongObject*)x)->ob_digit[0]);
            }
 #endif
#endif
            if (unlikely(Py_SIZE(x) < 0)) {
                goto raise_neg_overflow;
            }
            if (sizeof(blksize_t) <= sizeof(unsigned long)) {
                __PYX_VERIFY_RETURN_INT(blksize_t, unsigned long, PyLong_AsUnsignedLong(x))
            } else if (sizeof(blksize_t) <= sizeof(unsigned long long)) {
                __PYX_VERIFY_RETURN_INT(blksize_t, unsigned long long, PyLong_AsUnsignedLongLong(x))
            }
        } else {
#if CYTHON_COMPILING_IN_CPYTHON && PY_MAJOR_VERSION >= 3
 #if CYTHON_USE_PYLONG_INTERNALS
            switch (Py_SIZE(x)) {
                case  0: return 0;
                case  1: __PYX_VERIFY_RETURN_INT(blksize_t,  digit, +(((PyLongObject*)x)->ob_digit[0]));
                case -1: __PYX_VERIFY_RETURN_INT(blksize_t, sdigit, -(sdigit) ((PyLongObject*)x)->ob_digit[0]);
            }
 #endif
#endif
            if (sizeof(blksize_t) <= sizeof(long)) {
                __PYX_VERIFY_RETURN_INT(blksize_t, long, PyLong_AsLong(x))
            } else if (sizeof(blksize_t) <= sizeof(long long)) {
                __PYX_VERIFY_RETURN_INT(blksize_t, long long, PyLong_AsLongLong(x))
            }
        }
        {
#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray)
            PyErr_SetString(PyExc_RuntimeError,
                            "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers");
#else
            blksize_t val;
            PyObject *v = __Pyx_PyNumber_Int(x);
 #if PY_MAJOR_VERSION < 3
            if (likely(v) && !PyLong_Check(v)) {
                PyObject *tmp = v;
                v = PyNumber_Long(tmp);
                Py_DECREF(tmp);
            }
 #endif
            if (likely(v)) {
                int one = 1; int is_little = (int)*(unsigned char *)&one;
                unsigned char *bytes = (unsigned char *)&val;
                int ret = _PyLong_AsByteArray((PyLongObject *)v,
                                              bytes, sizeof(val),
                                              is_little, !is_unsigned);
                Py_DECREF(v);
                if (likely(!ret))
                    return val;
            }
#endif
            return (blksize_t) -1;
        }
    } else {
        blksize_t val;
        PyObject *tmp = __Pyx_PyNumber_Int(x);
        if (!tmp) return (blksize_t) -1;
        val = __Pyx_PyInt_As_blksize_t(tmp);
        Py_DECREF(tmp);
        return val;
    }
raise_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "value too large to convert to blksize_t");
    return (blksize_t) -1;
raise_neg_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "can't convert negative value to blksize_t");
    return (blksize_t) -1;
}

static CYTHON_INLINE blkcnt_t __Pyx_PyInt_As_blkcnt_t(PyObject *x) {
    const blkcnt_t neg_one = (blkcnt_t) -1, const_zero = 0;
    const int is_unsigned = neg_one > const_zero;
#if PY_MAJOR_VERSION < 3
    if (likely(PyInt_Check(x))) {
        if (sizeof(blkcnt_t) < sizeof(long)) {
            __PYX_VERIFY_RETURN_INT(blkcnt_t, long, PyInt_AS_LONG(x))
        } else {
            long val = PyInt_AS_LONG(x);
            if (is_unsigned && unlikely(val < 0)) {
                goto raise_neg_overflow;
            }
            return (blkcnt_t) val;
        }
    } else
#endif
    if (likely(PyLong_Check(x))) {
        if (is_unsigned) {
#if CYTHON_COMPILING_IN_CPYTHON && PY_MAJOR_VERSION >= 3
 #if CYTHON_USE_PYLONG_INTERNALS
            switch (Py_SIZE(x)) {
                case  0: return 0;
                case  1: __PYX_VERIFY_RETURN_INT(blkcnt_t, digit, ((PyLongObject*)x)->ob_digit[0]);
            }
 #endif
#endif
            if (unlikely(Py_SIZE(x) < 0)) {
                goto raise_neg_overflow;
            }
            if (sizeof(blkcnt_t) <= sizeof(unsigned long)) {
                __PYX_VERIFY_RETURN_INT(blkcnt_t, unsigned long, PyLong_AsUnsignedLong(x))
            } else if (sizeof(blkcnt_t) <= sizeof(unsigned long long)) {
                __PYX_VERIFY_RETURN_INT(blkcnt_t, unsigned long long, PyLong_AsUnsignedLongLong(x))
            }
        } else {
#if CYTHON_COMPILING_IN_CPYTHON && PY_MAJOR_VERSION >= 3
 #if CYTHON_USE_PYLONG_INTERNALS
            switch (Py_SIZE(x)) {
                case  0: return 0;
                case  1: __PYX_VERIFY_RETURN_INT(blkcnt_t,  digit, +(((PyLongObject*)x)->ob_digit[0]));
                case -1: __PYX_VERIFY_RETURN_INT(blkcnt_t, sdigit, -(sdigit) ((PyLongObject*)x)->ob_digit[0]);
            }
 #endif
#endif
            if (sizeof(blkcnt_t) <= sizeof(long)) {
                __PYX_VERIFY_RETURN_INT(blkcnt_t, long, PyLong_AsLong(x))
            } else if (sizeof(blkcnt_t) <= sizeof(long long)) {
                __PYX_VERIFY_RETURN_INT(blkcnt_t, long long, PyLong_AsLongLong(x))
            }
        }
        {
#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray)
            PyErr_SetString(PyExc_RuntimeError,
                            "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers");
#else
            blkcnt_t val;
            PyObject *v = __Pyx_PyNumber_Int(x);
 #if PY_MAJOR_VERSION < 3
            if (likely(v) && !PyLong_Check(v)) {
                PyObject *tmp = v;
                v = PyNumber_Long(tmp);
                Py_DECREF(tmp);
            }
 #endif
            if (likely(v)) {
                int one = 1; int is_little = (int)*(unsigned char *)&one;
                unsigned char *bytes = (unsigned char *)&val;
                int ret = _PyLong_AsByteArray((PyLongObject *)v,
                                              bytes, sizeof(val),
                                              is_little, !is_unsigned);
                Py_DECREF(v);
                if (likely(!ret))
                    return val;
            }
#endif
            return (blkcnt_t) -1;
        }
    } else {
        blkcnt_t val;
        PyObject *tmp = __Pyx_PyNumber_Int(x);
        if (!tmp) return (blkcnt_t) -1;
        val = __Pyx_PyInt_As_blkcnt_t(tmp);
        Py_DECREF(tmp);
        return val;
    }
raise_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "value too large to convert to blkcnt_t");
    return (blkcnt_t) -1;
raise_neg_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "can't convert negative value to blkcnt_t");
    return (blkcnt_t) -1;
}

static CYTHON_INLINE time_t __Pyx_PyInt_As_time_t(PyObject *x) {
    const time_t neg_one = (time_t) -1, const_zero = 0;
    const int is_unsigned = neg_one > const_zero;
#if PY_MAJOR_VERSION < 3
    if (likely(PyInt_Check(x))) {
        if (sizeof(time_t) < sizeof(long)) {
            __PYX_VERIFY_RETURN_INT(time_t, long, PyInt_AS_LONG(x))
        } else {
            long val = PyInt_AS_LONG(x);
            if (is_unsigned && unlikely(val < 0)) {
                goto raise_neg_overflow;
            }
            return (time_t) val;
        }
    } else
#endif
    if (likely(PyLong_Check(x))) {
        if (is_unsigned) {
#if CYTHON_COMPILING_IN_CPYTHON && PY_MAJOR_VERSION >= 3
 #if CYTHON_USE_PYLONG_INTERNALS
            switch (Py_SIZE(x)) {
                case  0: return 0;
                case  1: __PYX_VERIFY_RETURN_INT(time_t, digit, ((PyLongObject*)x)->ob_digit[0]);
            }
 #endif
#endif
            if (unlikely(Py_SIZE(x) < 0)) {
                goto raise_neg_overflow;
            }
            if (sizeof(time_t) <= sizeof(unsigned long)) {
                __PYX_VERIFY_RETURN_INT(time_t, unsigned long, PyLong_AsUnsignedLong(x))
            } else if (sizeof(time_t) <= sizeof(unsigned long long)) {
                __PYX_VERIFY_RETURN_INT(time_t, unsigned long long, PyLong_AsUnsignedLongLong(x))
            }
        } else {
#if CYTHON_COMPILING_IN_CPYTHON && PY_MAJOR_VERSION >= 3
 #if CYTHON_USE_PYLONG_INTERNALS
            switch (Py_SIZE(x)) {
                case  0: return 0;
                case  1: __PYX_VERIFY_RETURN_INT(time_t,  digit, +(((PyLongObject*)x)->ob_digit[0]));
                case -1: __PYX_VERIFY_RETURN_INT(time_t, sdigit, -(sdigit) ((PyLongObject*)x)->ob_digit[0]);
            }
 #endif
#endif
            if (sizeof(time_t) <= sizeof(long)) {
                __PYX_VERIFY_RETURN_INT(time_t, long, PyLong_AsLong(x))
            } else if (sizeof(time_t) <= sizeof(long long)) {
                __PYX_VERIFY_RETURN_INT(time_t, long long, PyLong_AsLongLong(x))
            }
        }
        {
#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray)
            PyErr_SetString(PyExc_RuntimeError,
                            "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers");
#else
            time_t val;
            PyObject *v = __Pyx_PyNumber_Int(x);
 #if PY_MAJOR_VERSION < 3
            if (likely(v) && !PyLong_Check(v)) {
                PyObject *tmp = v;
                v = PyNumber_Long(tmp);
                Py_DECREF(tmp);
            }
 #endif
            if (likely(v)) {
                int one = 1; int is_little = (int)*(unsigned char *)&one;
                unsigned char *bytes = (unsigned char *)&val;
                int ret = _PyLong_AsByteArray((PyLongObject *)v,
                                              bytes, sizeof(val),
                                              is_little, !is_unsigned);
                Py_DECREF(v);
                if (likely(!ret))
                    return val;
            }
#endif
            return (time_t) -1;
        }
    } else {
        time_t val;
        PyObject *tmp = __Pyx_PyNumber_Int(x);
        if (!tmp) return (time_t) -1;
        val = __Pyx_PyInt_As_time_t(tmp);
        Py_DECREF(tmp);
        return val;
    }
raise_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "value too large to convert to time_t");
    return (time_t) -1;
raise_neg_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "can't convert negative value to time_t");
    return (time_t) -1;
}

static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *x) {
    const long neg_one = (long) -1, const_zero = 0;
    const int is_unsigned = neg_one > const_zero;
#if PY_MAJOR_VERSION < 3
    if (likely(PyInt_Check(x))) {
        if (sizeof(long) < sizeof(long)) {
            __PYX_VERIFY_RETURN_INT(long, long, PyInt_AS_LONG(x))
        } else {
            long val = PyInt_AS_LONG(x);
            if (is_unsigned && unlikely(val < 0)) {
                goto raise_neg_overflow;
            }
            return (long) val;
        }
    } else
#endif
    if (likely(PyLong_Check(x))) {
        if (is_unsigned) {
#if CYTHON_COMPILING_IN_CPYTHON && PY_MAJOR_VERSION >= 3
 #if CYTHON_USE_PYLONG_INTERNALS
            switch (Py_SIZE(x)) {
                case  0: return 0;
                case  1: __PYX_VERIFY_RETURN_INT(long, digit, ((PyLongObject*)x)->ob_digit[0]);
            }
 #endif
#endif
            if (unlikely(Py_SIZE(x) < 0)) {
                goto raise_neg_overflow;
            }
            if (sizeof(long) <= sizeof(unsigned long)) {
                __PYX_VERIFY_RETURN_INT(long, unsigned long, PyLong_AsUnsignedLong(x))
            } else if (sizeof(long) <= sizeof(unsigned long long)) {
                __PYX_VERIFY_RETURN_INT(long, unsigned long long, PyLong_AsUnsignedLongLong(x))
            }
        } else {
#if CYTHON_COMPILING_IN_CPYTHON && PY_MAJOR_VERSION >= 3
 #if CYTHON_USE_PYLONG_INTERNALS
            switch (Py_SIZE(x)) {
                case  0: return 0;
                case  1: __PYX_VERIFY_RETURN_INT(long,  digit, +(((PyLongObject*)x)->ob_digit[0]));
                case -1: __PYX_VERIFY_RETURN_INT(long, sdigit, -(sdigit) ((PyLongObject*)x)->ob_digit[0]);
            }
 #endif
#endif
            if (sizeof(long) <= sizeof(long)) {
                __PYX_VERIFY_RETURN_INT(long, long, PyLong_AsLong(x))
            } else if (sizeof(long) <= sizeof(long long)) {
                __PYX_VERIFY_RETURN_INT(long, long long, PyLong_AsLongLong(x))
            }
        }
        {
#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray)
            PyErr_SetString(PyExc_RuntimeError,
                            "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers");
#else
            long val;
            PyObject *v = __Pyx_PyNumber_Int(x);
 #if PY_MAJOR_VERSION < 3
            if (likely(v) && !PyLong_Check(v)) {
                PyObject *tmp = v;
                v = PyNumber_Long(tmp);
                Py_DECREF(tmp);
            }
 #endif
            if (likely(v)) {
                int one = 1; int is_little = (int)*(unsigned char *)&one;
                unsigned char *bytes = (unsigned char *)&val;
                int ret = _PyLong_AsByteArray((PyLongObject *)v,
                                              bytes, sizeof(val),
                                              is_little, !is_unsigned);
                Py_DECREF(v);
                if (likely(!ret))
                    return val;
            }
#endif
            return (long) -1;
        }
    } else {
        long val;
        PyObject *tmp = __Pyx_PyNumber_Int(x);
        if (!tmp) return (long) -1;
        val = __Pyx_PyInt_As_long(tmp);
        Py_DECREF(tmp);
        return val;
    }
raise_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "value too large to convert to long");
    return (long) -1;
raise_neg_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "can't convert negative value to long");
    return (long) -1;
}

static CYTHON_INLINE fsblkcnt_t __Pyx_PyInt_As_fsblkcnt_t(PyObject *x) {
    const fsblkcnt_t neg_one = (fsblkcnt_t) -1, const_zero = 0;
    const int is_unsigned = neg_one > const_zero;
#if PY_MAJOR_VERSION < 3
    if (likely(PyInt_Check(x))) {
        if (sizeof(fsblkcnt_t) < sizeof(long)) {
            __PYX_VERIFY_RETURN_INT(fsblkcnt_t, long, PyInt_AS_LONG(x))
        } else {
            long val = PyInt_AS_LONG(x);
            if (is_unsigned && unlikely(val < 0)) {
                goto raise_neg_overflow;
            }
            return (fsblkcnt_t) val;
        }
    } else
#endif
    if (likely(PyLong_Check(x))) {
        if (is_unsigned) {
#if CYTHON_COMPILING_IN_CPYTHON && PY_MAJOR_VERSION >= 3
 #if CYTHON_USE_PYLONG_INTERNALS
            switch (Py_SIZE(x)) {
                case  0: return 0;
                case  1: __PYX_VERIFY_RETURN_INT(fsblkcnt_t, digit, ((PyLongObject*)x)->ob_digit[0]);
            }
 #endif
#endif
            if (unlikely(Py_SIZE(x) < 0)) {
                goto raise_neg_overflow;
            }
            if (sizeof(fsblkcnt_t) <= sizeof(unsigned long)) {
                __PYX_VERIFY_RETURN_INT(fsblkcnt_t, unsigned long, PyLong_AsUnsignedLong(x))
            } else if (sizeof(fsblkcnt_t) <= sizeof(unsigned long long)) {
                __PYX_VERIFY_RETURN_INT(fsblkcnt_t, unsigned long long, PyLong_AsUnsignedLongLong(x))
            }
        } else {
#if CYTHON_COMPILING_IN_CPYTHON && PY_MAJOR_VERSION >= 3
 #if CYTHON_USE_PYLONG_INTERNALS
            switch (Py_SIZE(x)) {
                case  0: return 0;
                case  1: __PYX_VERIFY_RETURN_INT(fsblkcnt_t,  digit, +(((PyLongObject*)x)->ob_digit[0]));
                case -1: __PYX_VERIFY_RETURN_INT(fsblkcnt_t, sdigit, -(sdigit) ((PyLongObject*)x)->ob_digit[0]);
            }
 #endif
#endif
            if (sizeof(fsblkcnt_t) <= sizeof(long)) {
                __PYX_VERIFY_RETURN_INT(fsblkcnt_t, long, PyLong_AsLong(x))
            } else if (sizeof(fsblkcnt_t) <= sizeof(long long)) {
                __PYX_VERIFY_RETURN_INT(fsblkcnt_t, long long, PyLong_AsLongLong(x))
            }
        }
        {
#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray)
            PyErr_SetString(PyExc_RuntimeError,
                            "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers");
#else
            fsblkcnt_t val;
            PyObject *v = __Pyx_PyNumber_Int(x);
 #if PY_MAJOR_VERSION < 3
            if (likely(v) && !PyLong_Check(v)) {
                PyObject *tmp = v;
                v = PyNumber_Long(tmp);
                Py_DECREF(tmp);
            }
 #endif
            if (likely(v)) {
                int one = 1; int is_little = (int)*(unsigned char *)&one;
                unsigned char *bytes = (unsigned char *)&val;
                int ret = _PyLong_AsByteArray((PyLongObject *)v,
                                              bytes, sizeof(val),
                                              is_little, !is_unsigned);
                Py_DECREF(v);
                if (likely(!ret))
                    return val;
            }
#endif
            return (fsblkcnt_t) -1;
        }
    } else {
        fsblkcnt_t val;
        PyObject *tmp = __Pyx_PyNumber_Int(x);
        if (!tmp) return (fsblkcnt_t) -1;
        val = __Pyx_PyInt_As_fsblkcnt_t(tmp);
        Py_DECREF(tmp);
        return val;
    }
raise_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "value too large to convert to fsblkcnt_t");
    return (fsblkcnt_t) -1;
raise_neg_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "can't convert negative value to fsblkcnt_t");
    return (fsblkcnt_t) -1;
}

static CYTHON_INLINE fsfilcnt_t __Pyx_PyInt_As_fsfilcnt_t(PyObject *x) {
    const fsfilcnt_t neg_one = (fsfilcnt_t) -1, const_zero = 0;
    const int is_unsigned = neg_one > const_zero;
#if PY_MAJOR_VERSION < 3
    if (likely(PyInt_Check(x))) {
        if (sizeof(fsfilcnt_t) < sizeof(long)) {
            __PYX_VERIFY_RETURN_INT(fsfilcnt_t, long, PyInt_AS_LONG(x))
        } else {
            long val = PyInt_AS_LONG(x);
            if (is_unsigned && unlikely(val < 0)) {
                goto raise_neg_overflow;
            }
            return (fsfilcnt_t) val;
        }
    } else
#endif
    if (likely(PyLong_Check(x))) {
        if (is_unsigned) {
#if CYTHON_COMPILING_IN_CPYTHON && PY_MAJOR_VERSION >= 3
 #if CYTHON_USE_PYLONG_INTERNALS
            switch (Py_SIZE(x)) {
                case  0: return 0;
                case  1: __PYX_VERIFY_RETURN_INT(fsfilcnt_t, digit, ((PyLongObject*)x)->ob_digit[0]);
            }
 #endif
#endif
            if (unlikely(Py_SIZE(x) < 0)) {
                goto raise_neg_overflow;
            }
            if (sizeof(fsfilcnt_t) <= sizeof(unsigned long)) {
                __PYX_VERIFY_RETURN_INT(fsfilcnt_t, unsigned long, PyLong_AsUnsignedLong(x))
            } else if (sizeof(fsfilcnt_t) <= sizeof(unsigned long long)) {
                __PYX_VERIFY_RETURN_INT(fsfilcnt_t, unsigned long long, PyLong_AsUnsignedLongLong(x))
            }
        } else {
#if CYTHON_COMPILING_IN_CPYTHON && PY_MAJOR_VERSION >= 3
 #if CYTHON_USE_PYLONG_INTERNALS
            switch (Py_SIZE(x)) {
                case  0: return 0;
                case  1: __PYX_VERIFY_RETURN_INT(fsfilcnt_t,  digit, +(((PyLongObject*)x)->ob_digit[0]));
                case -1: __PYX_VERIFY_RETURN_INT(fsfilcnt_t, sdigit, -(sdigit) ((PyLongObject*)x)->ob_digit[0]);
            }
 #endif
#endif
            if (sizeof(fsfilcnt_t) <= sizeof(long)) {
                __PYX_VERIFY_RETURN_INT(fsfilcnt_t, long, PyLong_AsLong(x))
            } else if (sizeof(fsfilcnt_t) <= sizeof(long long)) {
                __PYX_VERIFY_RETURN_INT(fsfilcnt_t, long long, PyLong_AsLongLong(x))
            }
        }
        {
#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray)
            PyErr_SetString(PyExc_RuntimeError,
                            "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers");
#else
            fsfilcnt_t val;
            PyObject *v = __Pyx_PyNumber_Int(x);
 #if PY_MAJOR_VERSION < 3
            if (likely(v) && !PyLong_Check(v)) {
                PyObject *tmp = v;
                v = PyNumber_Long(tmp);
                Py_DECREF(tmp);
            }
 #endif
            if (likely(v)) {
                int one = 1; int is_little = (int)*(unsigned char *)&one;
                unsigned char *bytes = (unsigned char *)&val;
                int ret = _PyLong_AsByteArray((PyLongObject *)v,
                                              bytes, sizeof(val),
                                              is_little, !is_unsigned);
                Py_DECREF(v);
                if (likely(!ret))
                    return val;
            }
#endif
            return (fsfilcnt_t) -1;
        }
    } else {
        fsfilcnt_t val;
        PyObject *tmp = __Pyx_PyNumber_Int(x);
        if (!tmp) return (fsfilcnt_t) -1;
        val = __Pyx_PyInt_As_fsfilcnt_t(tmp);
        Py_DECREF(tmp);
        return val;
    }
raise_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "value too large to convert to fsfilcnt_t");
    return (fsfilcnt_t) -1;
raise_neg_overflow:
    PyErr_SetString(PyExc_OverflowError,
        "can't convert negative value to fsfilcnt_t");
    return (fsfilcnt_t) -1;
}

static CYTHON_INLINE PyObject* __Pyx_PyInt_From_pid_t(pid_t value) {
    const pid_t neg_one = (pid_t) -1, const_zero = 0;
    const int is_unsigned = neg_one > const_zero;
    if (is_unsigned) {
        if (sizeof(pid_t) < sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(pid_t) <= sizeof(unsigned long)) {
            return PyLong_FromUnsignedLong((unsigned long) value);
        } else if (sizeof(pid_t) <= sizeof(unsigned long long)) {
            return PyLong_FromUnsignedLongLong((unsigned long long) value);
        }
    } else {
        if (sizeof(pid_t) <= sizeof(long)) {
            return PyInt_FromLong((long) value);
        } else if (sizeof(pid_t) <= sizeof(long long)) {
            return PyLong_FromLongLong((long long) value);
        }
    }
    {
        int one = 1; int little = (int)*(unsigned char *)&one;
        unsigned char *bytes = (unsigned char *)&value;
        return _PyLong_FromByteArray(bytes, sizeof(pid_t),
                                     little, !is_unsigned);
    }
}

static int __Pyx_check_binary_version(void) {
    char ctversion[4], rtversion[4];
    PyOS_snprintf(ctversion, 4, "%d.%d", PY_MAJOR_VERSION, PY_MINOR_VERSION);
    PyOS_snprintf(rtversion, 4, "%s", Py_GetVersion());
    if (ctversion[0] != rtversion[0] || ctversion[2] != rtversion[2]) {
        char message[200];
        PyOS_snprintf(message, sizeof(message),
                      "compiletime version %s of module '%.100s' "
                      "does not match runtime version %s",
                      ctversion, __Pyx_MODULE_NAME, rtversion);
        return PyErr_WarnEx(NULL, message, 1);
    }
    return 0;
}

static int __Pyx_InitStrings(__Pyx_StringTabEntry *t) {
    while (t->p) {
        #if PY_MAJOR_VERSION < 3
        if (t->is_unicode) {
            *t->p = PyUnicode_DecodeUTF8(t->s, t->n - 1, NULL);
        } else if (t->intern) {
            *t->p = PyString_InternFromString(t->s);
        } else {
            *t->p = PyString_FromStringAndSize(t->s, t->n - 1);
        }
        #else
        if (t->is_unicode | t->is_str) {
            if (t->intern) {
                *t->p = PyUnicode_InternFromString(t->s);
            } else if (t->encoding) {
                *t->p = PyUnicode_Decode(t->s, t->n - 1, t->encoding, NULL);
            } else {
                *t->p = PyUnicode_FromStringAndSize(t->s, t->n - 1);
            }
        } else {
            *t->p = PyBytes_FromStringAndSize(t->s, t->n - 1);
        }
        #endif
        if (!*t->p)
            return -1;
        ++t;
    }
    return 0;
}

static CYTHON_INLINE PyObject* __Pyx_PyUnicode_FromString(const char* c_str) {
    return __Pyx_PyUnicode_FromStringAndSize(c_str, (Py_ssize_t)strlen(c_str));
}
static CYTHON_INLINE char* __Pyx_PyObject_AsString(PyObject* o) {
    Py_ssize_t ignore;
    return __Pyx_PyObject_AsStringAndSize(o, &ignore);
}
static CYTHON_INLINE char* __Pyx_PyObject_AsStringAndSize(PyObject* o, Py_ssize_t *length) {
#if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII || __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT
    if (
#if PY_MAJOR_VERSION < 3 && __PYX_DEFAULT_STRING_ENCODING_IS_ASCII
            __Pyx_sys_getdefaultencoding_not_ascii &&
#endif
            PyUnicode_Check(o)) {
#if PY_VERSION_HEX < 0x03030000
        char* defenc_c;
        PyObject* defenc = _PyUnicode_AsDefaultEncodedString(o, NULL);
        if (!defenc) return NULL;
        defenc_c = PyBytes_AS_STRING(defenc);
#if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII
        {
            char* end = defenc_c + PyBytes_GET_SIZE(defenc);
            char* c;
            for (c = defenc_c; c < end; c++) {
                if ((unsigned char) (*c) >= 128) {
                    PyUnicode_AsASCIIString(o);
                    return NULL;
                }
            }
        }
#endif
        *length = PyBytes_GET_SIZE(defenc);
        return defenc_c;
#else
        if (__Pyx_PyUnicode_READY(o) == -1) return NULL;
#if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII
        if (PyUnicode_IS_ASCII(o)) {
            *length = PyUnicode_GET_LENGTH(o);
            return PyUnicode_AsUTF8(o);
        } else {
            PyUnicode_AsASCIIString(o);
            return NULL;
        }
#else
        return PyUnicode_AsUTF8AndSize(o, length);
#endif
#endif
    } else
#endif
#if !CYTHON_COMPILING_IN_PYPY
    if (PyByteArray_Check(o)) {
        *length = PyByteArray_GET_SIZE(o);
        return PyByteArray_AS_STRING(o);
    } else
#endif
    {
        char* result;
        int r = PyBytes_AsStringAndSize(o, &result, length);
        if (unlikely(r < 0)) {
            return NULL;
        } else {
            return result;
        }
    }
}
static CYTHON_INLINE int __Pyx_PyObject_IsTrue(PyObject* x) {
   int is_true = x == Py_True;
   if (is_true | (x == Py_False) | (x == Py_None)) return is_true;
   else return PyObject_IsTrue(x);
}
static CYTHON_INLINE PyObject* __Pyx_PyNumber_Int(PyObject* x) {
  PyNumberMethods *m;
  const char *name = NULL;
  PyObject *res = NULL;
#if PY_MAJOR_VERSION < 3
  if (PyInt_Check(x) || PyLong_Check(x))
#else
  if (PyLong_Check(x))
#endif
    return Py_INCREF(x), x;
  m = Py_TYPE(x)->tp_as_number;
#if PY_MAJOR_VERSION < 3
  if (m && m->nb_int) {
    name = "int";
    res = PyNumber_Int(x);
  }
  else if (m && m->nb_long) {
    name = "long";
    res = PyNumber_Long(x);
  }
#else
  if (m && m->nb_int) {
    name = "int";
    res = PyNumber_Long(x);
  }
#endif
  if (res) {
#if PY_MAJOR_VERSION < 3
    if (!PyInt_Check(res) && !PyLong_Check(res)) {
#else
    if (!PyLong_Check(res)) {
#endif
      PyErr_Format(PyExc_TypeError,
                   "__%.4s__ returned non-%.4s (type %.200s)",
                   name, name, Py_TYPE(res)->tp_name);
      Py_DECREF(res);
      return NULL;
    }
  }
  else if (!PyErr_Occurred()) {
    PyErr_SetString(PyExc_TypeError,
                    "an integer is required");
  }
  return res;
}
static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject* b) {
  Py_ssize_t ival;
  PyObject *x;
#if PY_MAJOR_VERSION < 3
  if (likely(PyInt_CheckExact(b)))
      return PyInt_AS_LONG(b);
#endif
  if (likely(PyLong_CheckExact(b))) {
    #if CYTHON_COMPILING_IN_CPYTHON && PY_MAJOR_VERSION >= 3
     #if CYTHON_USE_PYLONG_INTERNALS
       switch (Py_SIZE(b)) {
       case -1: return -(sdigit)((PyLongObject*)b)->ob_digit[0];
       case  0: return 0;
       case  1: return ((PyLongObject*)b)->ob_digit[0];
       }
     #endif
    #endif
    return PyLong_AsSsize_t(b);
  }
  x = PyNumber_Index(b);
  if (!x) return -1;
  ival = PyInt_AsSsize_t(x);
  Py_DECREF(x);
  return ival;
}
static CYTHON_INLINE PyObject * __Pyx_PyInt_FromSize_t(size_t ival) {
    return PyInt_FromSize_t(ival);
}


#endif /* Py_PYTHON_H */
