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 "internal.h"
  16#include "afs_fs.h"
  17
  18/*
  19 * convert an AFS abort code to a Linux error number
  20 */
  21int afs_abort_to_error(u32 abort_code)
  22{
  23        switch (abort_code) {
  24        case 13:                return -EACCES;
  25        case 27:                return -EFBIG;
  26        case 30:                return -EROFS;
  27        case VSALVAGE:          return -EIO;
  28        case VNOVNODE:          return -ENOENT;
  29        case VNOVOL:            return -ENOMEDIUM;
  30        case VVOLEXISTS:        return -EEXIST;
  31        case VNOSERVICE:        return -EIO;
  32        case VOFFLINE:          return -ENOENT;
  33        case VONLINE:           return -EEXIST;
  34        case VDISKFULL:         return -ENOSPC;
  35        case VOVERQUOTA:        return -EDQUOT;
  36        case VBUSY:             return -EBUSY;
  37        case VMOVED:            return -ENXIO;
  38        case 0x2f6df0a:         return -EWOULDBLOCK;
  39        case 0x2f6df0c:         return -EACCES;
  40        case 0x2f6df0f:         return -EBUSY;
  41        case 0x2f6df10:         return -EEXIST;
  42        case 0x2f6df11:         return -EXDEV;
  43        case 0x2f6df13:         return -ENOTDIR;
  44        case 0x2f6df14:         return -EISDIR;
  45        case 0x2f6df15:         return -EINVAL;
  46        case 0x2f6df1a:         return -EFBIG;
  47        case 0x2f6df1b:         return -ENOSPC;
  48        case 0x2f6df1d:         return -EROFS;
  49        case 0x2f6df1e:         return -EMLINK;
  50        case 0x2f6df20:         return -EDOM;
  51        case 0x2f6df21:         return -ERANGE;
  52        case 0x2f6df22:         return -EDEADLK;
  53        case 0x2f6df23:         return -ENAMETOOLONG;
  54        case 0x2f6df24:         return -ENOLCK;
  55        case 0x2f6df26:         return -ENOTEMPTY;
  56        case 0x2f6df78:         return -EDQUOT;
  57        default:                return -EREMOTEIO;
  58        }
  59}
  60