diff options
Diffstat (limited to 'xlators/debug/error-gen/src/error-gen.h')
| -rw-r--r-- | xlators/debug/error-gen/src/error-gen.h | 102 |
1 files changed, 31 insertions, 71 deletions
diff --git a/xlators/debug/error-gen/src/error-gen.h b/xlators/debug/error-gen/src/error-gen.h index 7fb5fdfb56c..2478cd5b21c 100644 --- a/xlators/debug/error-gen/src/error-gen.h +++ b/xlators/debug/error-gen/src/error-gen.h @@ -1,89 +1,49 @@ /* - Copyright (c) 2008-2009 Gluster, Inc. <http://www.gluster.com> - This file is part of GlusterFS. + Copyright (c) 2008-2012 Red Hat, Inc. <http://www.redhat.com> + This file is part of GlusterFS. - GlusterFS 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 3 of the License, - or (at your option) any later version. - - GlusterFS is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see - <http://www.gnu.org/licenses/>. + This file is licensed to you under your choice of the GNU Lesser + General Public License, version 3 or any later version (LGPLv3 or + later), or the GNU General Public License, version 2 (GPLv2), in all + cases as published by the Free Software Foundation. */ - #ifndef _ERROR_GEN_H #define _ERROR_GEN_H -#ifndef _CONFIG_H -#define _CONFIG_H -#include "config.h" -#endif +#include "error-gen-mem-types.h" #define GF_FAILURE_DEFAULT 10 -#define NO_OF_FOPS 42 -enum { - ERR_LOOKUP, - ERR_STAT, - ERR_READLINK, - ERR_MKNOD, - ERR_MKDIR, - ERR_UNLINK, - ERR_RMDIR, - ERR_SYMLINK, - ERR_RENAME, - ERR_LINK, - ERR_TRUNCATE, - ERR_CREATE, - ERR_OPEN, - ERR_READV, - ERR_WRITEV, - ERR_STATFS, - ERR_FLUSH, - ERR_FSYNC, - ERR_SETXATTR, - ERR_GETXATTR, - ERR_REMOVEXATTR, - ERR_OPENDIR, - ERR_READDIR, - ERR_READDIRP, - ERR_GETDENTS, - ERR_FSYNCDIR, - ERR_ACCESS, - ERR_FTRUNCATE, - ERR_FSTAT, - ERR_LK, - ERR_SETDENTS, - ERR_CHECKSUM, - ERR_XATTROP, - ERR_FXATTROP, - ERR_INODELK, - ERR_FINODELK, - ERR_ENTRYLK, - ERR_FENTRYLK, - ERR_SETATTR, - ERR_FSETATTR, - ERR_STATS, - ERR_GETSPEC +/* + * Pseudo-errors refer to errors beyond the scope of traditional <-1, op_errno> + * returns. This facilitates the ability to return unexpected, but not -1 values + * and/or to inject operations that lead to implicit error conditions. The range + * for pseudo errors resides at a high value to avoid conflicts with the errno + * range. + */ +enum GF_PSEUDO_ERRORS { + GF_ERROR_SHORT_WRITE = 1000, /* short writev return value */ + GF_ERROR_MAX }; typedef struct { - int enable[NO_OF_FOPS]; - int op_count; - int failure_iter_no; - char *error_no; - gf_lock_t lock; + int enable[GF_FOP_MAXVALUE]; + int op_count; + /* + * This is only an iteration number in the random-failure case. For + * the normal controlled-probability case, it's actually a numerator + * for the failure probability (see FAILURE_GRANULARITY declaration). + * It's just not worth blowing up the diff by changing it. + */ + int failure_iter_no; + int error_no_int; + gf_boolean_t random_failure; + gf_lock_t lock; } eg_t; typedef struct { - int error_no_count; - int error_no[20]; + int error_no_count; + int error_no[20]; } sys_error_t; #endif |
