| 
									
										
										
										
											2007-04-26 15:49:28 -07:00
										 |  |  | /* miscellaneous bits
 | 
					
						
							| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  |  * | 
					
						
							| 
									
										
										
										
											2007-04-26 15:55:03 -07:00
										 |  |  |  * Copyright (C) 2002, 2007 Red Hat, Inc. All Rights Reserved. | 
					
						
							| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  |  * Written by David Howells (dhowells@redhat.com) | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * This program is free software; you can redistribute it and/or | 
					
						
							|  |  |  |  * modify it under the terms of the GNU General Public License | 
					
						
							|  |  |  |  * as published by the Free Software Foundation; either version | 
					
						
							|  |  |  |  * 2 of the License, or (at your option) any later version. | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #include <linux/kernel.h>
 | 
					
						
							|  |  |  | #include <linux/module.h>
 | 
					
						
							|  |  |  | #include <linux/errno.h>
 | 
					
						
							|  |  |  | #include "internal.h"
 | 
					
						
							| 
									
										
										
										
											2007-04-26 15:55:03 -07:00
										 |  |  | #include "afs_fs.h"
 | 
					
						
							| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  | /*
 | 
					
						
							|  |  |  |  * convert an AFS abort code to a Linux error number | 
					
						
							|  |  |  |  */ | 
					
						
							| 
									
										
										
										
											2007-04-26 15:55:03 -07:00
										 |  |  | int afs_abort_to_error(u32 abort_code) | 
					
						
							| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2007-04-26 15:55:03 -07:00
										 |  |  | 	switch (abort_code) { | 
					
						
							|  |  |  | 	case 13:		return -EACCES; | 
					
						
							| 
									
										
										
										
											2007-05-09 02:33:45 -07:00
										 |  |  | 	case 27:		return -EFBIG; | 
					
						
							| 
									
										
										
										
											2007-04-26 15:59:35 -07:00
										 |  |  | 	case 30:		return -EROFS; | 
					
						
							| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | 	case VSALVAGE:		return -EIO; | 
					
						
							|  |  |  | 	case VNOVNODE:		return -ENOENT; | 
					
						
							| 
									
										
										
										
											2007-04-26 15:55:03 -07:00
										 |  |  | 	case VNOVOL:		return -ENOMEDIUM; | 
					
						
							| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | 	case VVOLEXISTS:	return -EEXIST; | 
					
						
							|  |  |  | 	case VNOSERVICE:	return -EIO; | 
					
						
							|  |  |  | 	case VOFFLINE:		return -ENOENT; | 
					
						
							|  |  |  | 	case VONLINE:		return -EEXIST; | 
					
						
							|  |  |  | 	case VDISKFULL:		return -ENOSPC; | 
					
						
							|  |  |  | 	case VOVERQUOTA:	return -EDQUOT; | 
					
						
							|  |  |  | 	case VBUSY:		return -EBUSY; | 
					
						
							|  |  |  | 	case VMOVED:		return -ENXIO; | 
					
						
							| 
									
										
										
										
											2007-07-15 23:40:12 -07:00
										 |  |  | 	case 0x2f6df0a:		return -EWOULDBLOCK; | 
					
						
							| 
									
										
										
										
											2007-04-26 15:59:35 -07:00
										 |  |  | 	case 0x2f6df0c:		return -EACCES; | 
					
						
							|  |  |  | 	case 0x2f6df0f:		return -EBUSY; | 
					
						
							|  |  |  | 	case 0x2f6df10:		return -EEXIST; | 
					
						
							|  |  |  | 	case 0x2f6df11:		return -EXDEV; | 
					
						
							|  |  |  | 	case 0x2f6df13:		return -ENOTDIR; | 
					
						
							|  |  |  | 	case 0x2f6df14:		return -EISDIR; | 
					
						
							|  |  |  | 	case 0x2f6df15:		return -EINVAL; | 
					
						
							|  |  |  | 	case 0x2f6df1a:		return -EFBIG; | 
					
						
							|  |  |  | 	case 0x2f6df1b:		return -ENOSPC; | 
					
						
							|  |  |  | 	case 0x2f6df1d:		return -EROFS; | 
					
						
							|  |  |  | 	case 0x2f6df1e:		return -EMLINK; | 
					
						
							|  |  |  | 	case 0x2f6df20:		return -EDOM; | 
					
						
							|  |  |  | 	case 0x2f6df21:		return -ERANGE; | 
					
						
							|  |  |  | 	case 0x2f6df22:		return -EDEADLK; | 
					
						
							|  |  |  | 	case 0x2f6df23:		return -ENAMETOOLONG; | 
					
						
							|  |  |  | 	case 0x2f6df24:		return -ENOLCK; | 
					
						
							|  |  |  | 	case 0x2f6df26:		return -ENOTEMPTY; | 
					
						
							|  |  |  | 	case 0x2f6df78:		return -EDQUOT; | 
					
						
							|  |  |  | 	default:		return -EREMOTEIO; | 
					
						
							| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | 	} | 
					
						
							| 
									
										
										
										
											2007-04-26 15:49:28 -07:00
										 |  |  | } |