util.c 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  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. #include "dlm_internal.h"
  11. #include "rcom.h"
  12. #include "util.h"
  13. #define DLM_ERRNO_EDEADLK 35
  14. #define DLM_ERRNO_EBADR 53
  15. #define DLM_ERRNO_EBADSLT 57
  16. #define DLM_ERRNO_EPROTO 71
  17. #define DLM_ERRNO_EOPNOTSUPP 95
  18. #define DLM_ERRNO_ETIMEDOUT 110
  19. #define DLM_ERRNO_EINPROGRESS 115
  20. /* higher errno values are inconsistent across architectures, so select
  21. one set of values for on the wire */
  22. int to_dlm_errno(int err)
  23. {
  24. switch (err) {
  25. case -EDEADLK:
  26. return -DLM_ERRNO_EDEADLK;
  27. case -EBADR:
  28. return -DLM_ERRNO_EBADR;
  29. case -EBADSLT:
  30. return -DLM_ERRNO_EBADSLT;
  31. case -EPROTO:
  32. return -DLM_ERRNO_EPROTO;
  33. case -EOPNOTSUPP:
  34. return -DLM_ERRNO_EOPNOTSUPP;
  35. case -ETIMEDOUT:
  36. return -DLM_ERRNO_ETIMEDOUT;
  37. case -EINPROGRESS:
  38. return -DLM_ERRNO_EINPROGRESS;
  39. }
  40. return err;
  41. }
  42. int from_dlm_errno(int err)
  43. {
  44. switch (err) {
  45. case -DLM_ERRNO_EDEADLK:
  46. return -EDEADLK;
  47. case -DLM_ERRNO_EBADR:
  48. return -EBADR;
  49. case -DLM_ERRNO_EBADSLT:
  50. return -EBADSLT;
  51. case -DLM_ERRNO_EPROTO:
  52. return -EPROTO;
  53. case -DLM_ERRNO_EOPNOTSUPP:
  54. return -EOPNOTSUPP;
  55. case -DLM_ERRNO_ETIMEDOUT:
  56. return -ETIMEDOUT;
  57. case -DLM_ERRNO_EINPROGRESS:
  58. return -EINPROGRESS;
  59. }
  60. return err;
  61. }