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 */ 21 int 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