linux/fs/afs/misc.c
<<
>>
Prefs
   1/* miscellaneous bits
   2 *
   3 * Copyright (C) 2002, 2007 Red Hat, Inc. All Rights Reserved.
   4 * Written by David Howells (dhowells@redhat.com)
   5 *
   6 * This program is free software; you can redistribute it and/or
   7 * modify it under the terms of the GNU General Public License
   8 * as published by the Free Software Foundation; either version
   9 * 2 of the License, or (at your option) any later version.
  10 */
  11
  12#include <linux/kernel.h>
  13#include <linux/module.h>
  14#include <linux/errno.h>
  15#include <rxrpc/packet.h>
  16#include "internal.h"
  17#include "afs_fs.h"
  18
  19/*
  20 * convert an AFS abort code to a Linux error number
  21 */
  22int afs_abort_to_error(u32 abort_code)
  23{
  24        switch (abort_code) {
  25        case 13:                return -EACCES;
  26        case 27:                return -EFBIG;
  27        case 30:                return -EROFS;
  28        case VSALVAGE:          return -EIO;
  29        case VNOVNODE:          return -ENOENT;
  30        case VNOVOL:            return -ENOMEDIUM;
  31        case VVOLEXISTS:        return -EEXIST;
  32        case VNOSERVICE:        return -EIO;
  33        case VOFFLINE:          return -ENOENT;
  34        case VONLINE:           return -EEXIST;
  35        case VDISKFULL:         return -ENOSPC;
  36        case VOVERQUOTA:        return -EDQUOT;
  37        case VBUSY:             return -EBUSY;
  38        case VMOVED:            return -ENXIO;
  39        case 0x2f6df0a:         return -EWOULDBLOCK;
  40        case 0x2f6df0c:         return -EACCES;
  41        case 0x2f6df0f:         return -EBUSY;
  42        case 0x2f6df10:         return -EEXIST;
  43        case 0x2f6df11:         return -EXDEV;
  44        case 0x2f6df13:         return -ENOTDIR;
  45        case 0x2f6df14:         return -EISDIR;
  46        case 0x2f6df15:         return -EINVAL;
  47        case 0x2f6df1a:         return -EFBIG;
  48        case 0x2f6df1b:         return -ENOSPC;
  49        case 0x2f6df1d:         return -EROFS;
  50        case 0x2f6df1e:         return -EMLINK;
  51        case 0x2f6df20:         return -EDOM;
  52        case 0x2f6df21:         return -ERANGE;
  53        case 0x2f6df22:         return -EDEADLK;
  54        case 0x2f6df23:         return -ENAMETOOLONG;
  55        case 0x2f6df24:         return -ENOLCK;
  56        case 0x2f6df26:         return -ENOTEMPTY;
  57        case 0x2f6df78:         return -EDQUOT;
  58
  59        case RXKADINCONSISTENCY: return -EPROTO;
  60        case RXKADPACKETSHORT:  return -EPROTO;
  61        case RXKADLEVELFAIL:    return -EKEYREJECTED;
  62        case RXKADTICKETLEN:    return -EKEYREJECTED;
  63        case RXKADOUTOFSEQUENCE: return -EPROTO;
  64        case RXKADNOAUTH:       return -EKEYREJECTED;
  65        case RXKADBADKEY:       return -EKEYREJECTED;
  66        case RXKADBADTICKET:    return -EKEYREJECTED;
  67        case RXKADUNKNOWNKEY:   return -EKEYREJECTED;
  68        case RXKADEXPIRED:      return -EKEYEXPIRED;
  69        case RXKADSEALEDINCON:  return -EKEYREJECTED;
  70        case RXKADDATALEN:      return -EKEYREJECTED;
  71        case RXKADILLEGALLEVEL: return -EKEYREJECTED;
  72
  73        default:                return -EREMOTEIO;
  74        }
  75}
  76