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 30: return -EROFS; 26 case VSALVAGE: return -EIO; 27 case VNOVNODE: return -ENOENT; 28 case VNOVOL: return -ENOMEDIUM; 29 case VVOLEXISTS: return -EEXIST; 30 case VNOSERVICE: return -EIO; 31 case VOFFLINE: return -ENOENT; 32 case VONLINE: return -EEXIST; 33 case VDISKFULL: return -ENOSPC; 34 case VOVERQUOTA: return -EDQUOT; 35 case VBUSY: return -EBUSY; 36 case VMOVED: return -ENXIO; 37 case 0x2f6df0c: return -EACCES; 38 case 0x2f6df0f: return -EBUSY; 39 case 0x2f6df10: return -EEXIST; 40 case 0x2f6df11: return -EXDEV; 41 case 0x2f6df13: return -ENOTDIR; 42 case 0x2f6df14: return -EISDIR; 43 case 0x2f6df15: return -EINVAL; 44 case 0x2f6df1a: return -EFBIG; 45 case 0x2f6df1b: return -ENOSPC; 46 case 0x2f6df1d: return -EROFS; 47 case 0x2f6df1e: return -EMLINK; 48 case 0x2f6df20: return -EDOM; 49 case 0x2f6df21: return -ERANGE; 50 case 0x2f6df22: return -EDEADLK; 51 case 0x2f6df23: return -ENAMETOOLONG; 52 case 0x2f6df24: return -ENOLCK; 53 case 0x2f6df26: return -ENOTEMPTY; 54 case 0x2f6df78: return -EDQUOT; 55 default: return -EREMOTEIO; 56 } 57 } 58