1 // SPDX-License-Identifier: GPL-2.0-only 2 /****************************************************************************** 3 ******************************************************************************* 4 ** 5 ** Copyright (C) 2005-2008 Red Hat, Inc. All rights reserved. 6 ** 7 ** 8 ******************************************************************************* 9 ******************************************************************************/ 10 11 #include "dlm_internal.h" 12 #include "rcom.h" 13 #include "util.h" 14 15 #define DLM_ERRNO_EDEADLK 35 16 #define DLM_ERRNO_EBADR 53 17 #define DLM_ERRNO_EBADSLT 57 18 #define DLM_ERRNO_EPROTO 71 19 #define DLM_ERRNO_EOPNOTSUPP 95 20 #define DLM_ERRNO_ETIMEDOUT 110 21 #define DLM_ERRNO_EINPROGRESS 115 22 23 /* higher errno values are inconsistent across architectures, so select 24 one set of values for on the wire */ 25 26 int to_dlm_errno(int err) 27 { 28 switch (err) { 29 case -EDEADLK: 30 return -DLM_ERRNO_EDEADLK; 31 case -EBADR: 32 return -DLM_ERRNO_EBADR; 33 case -EBADSLT: 34 return -DLM_ERRNO_EBADSLT; 35 case -EPROTO: 36 return -DLM_ERRNO_EPROTO; 37 case -EOPNOTSUPP: 38 return -DLM_ERRNO_EOPNOTSUPP; 39 case -ETIMEDOUT: 40 return -DLM_ERRNO_ETIMEDOUT; 41 case -EINPROGRESS: 42 return -DLM_ERRNO_EINPROGRESS; 43 } 44 return err; 45 } 46 47 int from_dlm_errno(int err) 48 { 49 switch (err) { 50 case -DLM_ERRNO_EDEADLK: 51 return -EDEADLK; 52 case -DLM_ERRNO_EBADR: 53 return -EBADR; 54 case -DLM_ERRNO_EBADSLT: 55 return -EBADSLT; 56 case -DLM_ERRNO_EPROTO: 57 return -EPROTO; 58 case -DLM_ERRNO_EOPNOTSUPP: 59 return -EOPNOTSUPP; 60 case -DLM_ERRNO_ETIMEDOUT: 61 return -ETIMEDOUT; 62 case -DLM_ERRNO_EINPROGRESS: 63 return -EINPROGRESS; 64 } 65 return err; 66 } 67