diff options
-rw-r--r-- | xlators/debug/error-gen/src/error-gen.c | 324 | ||||
-rw-r--r-- | xlators/debug/error-gen/src/error-gen.h | 48 |
2 files changed, 165 insertions, 207 deletions
diff --git a/xlators/debug/error-gen/src/error-gen.c b/xlators/debug/error-gen/src/error-gen.c index 3ac2e22d3a5..5d5b1e82d48 100644 --- a/xlators/debug/error-gen/src/error-gen.c +++ b/xlators/debug/error-gen/src/error-gen.c @@ -26,155 +26,155 @@ #include "error-gen.h" sys_error_t error_no_list[] = { - [ERR_LOOKUP] = { .error_no_count = 4, + [GF_FOP_LOOKUP] = { .error_no_count = 4, .error_no = {ENOENT,ENOTDIR, ENAMETOOLONG,EAGAIN}}, - [ERR_STAT] = { .error_no_count = 7, + [GF_FOP_STAT] = { .error_no_count = 7, .error_no = {EACCES,EBADF,EFAULT, ENAMETOOLONG,ENOENT, ENOMEM,ENOTDIR}}, - [ERR_READLINK] = { .error_no_count = 8, + [GF_FOP_READLINK] = { .error_no_count = 8, .error_no = {EACCES,EFAULT,EINVAL,EIO, ENAMETOOLONG,ENOENT,ENOMEM, ENOTDIR}}, - [ERR_MKNOD] = { .error_no_count = 11, + [GF_FOP_MKNOD] = { .error_no_count = 11, .error_no = {EACCES,EEXIST,EFAULT, EINVAL,ENAMETOOLONG, ENOENT,ENOMEM,ENOSPC, ENOTDIR,EPERM,EROFS}}, - [ERR_MKDIR] = { .error_no_count = 10, + [GF_FOP_MKDIR] = { .error_no_count = 10, .error_no = {EACCES,EEXIST,EFAULT, ENAMETOOLONG,ENOENT, ENOMEM,ENOSPC,ENOTDIR, EPERM,EROFS}}, - [ERR_UNLINK] = { .error_no_count = 10, + [GF_FOP_UNLINK] = { .error_no_count = 10, .error_no = {EACCES,EBUSY,EFAULT,EIO, EISDIR,ENAMETOOLONG, ENOENT,ENOMEM,ENOTDIR, EPERM,EROFS}}, - [ERR_RMDIR] = { .error_no_count = 8, + [GF_FOP_RMDIR] = { .error_no_count = 8, .error_no = {EACCES,EBUSY,EFAULT, ENOMEM,ENOTDIR,ENOTEMPTY, EPERM,EROFS}}, - [ERR_SYMLINK] = { .error_no_count = 11, + [GF_FOP_SYMLINK] = { .error_no_count = 11, .error_no = {EACCES,EEXIST,EFAULT,EIO, ENAMETOOLONG,ENOENT,ENOMEM, ENOSPC,ENOTDIR,EPERM, EROFS}}, - [ERR_RENAME] = { .error_no_count = 13, + [GF_FOP_RENAME] = { .error_no_count = 13, .error_no = {EACCES,EBUSY,EFAULT, EINVAL,EISDIR,EMLINK, ENAMETOOLONG,ENOENT,ENOMEM, ENOSPC,ENOTDIR,EEXIST, EXDEV}}, - [ERR_LINK] = { .error_no_count = 13, + [GF_FOP_LINK] = { .error_no_count = 13, .error_no = {EACCES,EFAULT,EEXIST,EIO, EMLINK,ENAMETOOLONG, ENOENT,ENOMEM,ENOSPC, ENOTDIR,EPERM,EROFS, EXDEV}}, - [ERR_TRUNCATE] = { .error_no_count = 10, + [GF_FOP_TRUNCATE] = { .error_no_count = 10, .error_no = {EACCES,EFAULT,EFBIG, EINTR,EINVAL,EIO,EISDIR, ENAMETOOLONG,ENOENT, EISDIR}}, - [ERR_CREATE] = {.error_no_count = 10, + [GF_FOP_CREATE] = {.error_no_count = 10, .error_no = {EACCES,EEXIST,EFAULT, EISDIR,EMFILE,ENAMETOOLONG, ENFILE,ENODEV,ENOENT, ENODEV}}, - [ERR_OPEN] = { .error_no_count = 10, + [GF_FOP_OPEN] = { .error_no_count = 10, .error_no = {EACCES,EEXIST,EFAULT, EISDIR,EMFILE, ENAMETOOLONG,ENFILE, ENODEV,ENOENT,ENOMEM}}, - [ERR_READV] = { .error_no_count = 5, + [GF_FOP_READ] = { .error_no_count = 5, .error_no = {EINVAL,EBADF,EFAULT,EISDIR, ENAMETOOLONG}}, - [ERR_WRITEV] = { .error_no_count = 5, + [GF_FOP_WRITE] = { .error_no_count = 5, .error_no = {EINVAL,EBADF,EFAULT,EISDIR, ENAMETOOLONG}}, - [ERR_STATFS] = {.error_no_count = 10, + [GF_FOP_STATFS] = {.error_no_count = 10, .error_no = {EACCES,EBADF,EFAULT,EINTR, EIO,ENAMETOOLONG,ENOENT, ENOMEM,ENOSYS,ENOTDIR}}, - [ERR_FLUSH] = { .error_no_count = 5, + [GF_FOP_FLUSH] = { .error_no_count = 5, .error_no = {EACCES,EFAULT, ENAMETOOLONG,ENOSYS, ENOENT}}, - [ERR_FSYNC] = { .error_no_count = 4, + [GF_FOP_FSYNC] = { .error_no_count = 4, .error_no = {EBADF,EIO,EROFS,EINVAL}}, - [ERR_SETXATTR] = { .error_no_count = 4, + [GF_FOP_SETXATTR] = { .error_no_count = 4, .error_no = {EACCES,EBADF,EINTR, ENAMETOOLONG}}, - [ERR_GETXATTR] = { .error_no_count = 4, + [GF_FOP_GETXATTR] = { .error_no_count = 4, .error_no = {EACCES,EBADF,ENAMETOOLONG, EINTR}}, - [ERR_REMOVEXATTR] = { .error_no_count = 4, + [GF_FOP_REMOVEXATTR] = { .error_no_count = 4, .error_no = {EACCES,EBADF,ENAMETOOLONG, EINTR}}, - [ERR_OPENDIR] = { .error_no_count = 8, + [GF_FOP_OPENDIR] = { .error_no_count = 8, .error_no = {EACCES,EEXIST,EFAULT, EISDIR,EMFILE, ENAMETOOLONG,ENFILE, ENODEV}}, - [ERR_READDIR] = { .error_no_count = 5, + [GF_FOP_READDIR] = { .error_no_count = 5, .error_no = {EINVAL,EACCES,EBADF, EMFILE,ENOENT}}, - [ERR_READDIRP] = { .error_no_count = 5, + [GF_FOP_READDIRP] = { .error_no_count = 5, .error_no = {EINVAL,EACCES,EBADF, EMFILE,ENOENT}}, - [ERR_FSYNCDIR] = { .error_no_count = 4, + [GF_FOP_FSYNCDIR] = { .error_no_count = 4, .error_no = {EBADF,EIO,EROFS,EINVAL}}, - [ERR_ACCESS] = { .error_no_count = 8, + [GF_FOP_ACCESS] = { .error_no_count = 8, .error_no = {EACCES,ENAMETOOLONG, ENOENT,ENOTDIR,EROFS, EFAULT,EINVAL,EIO}}, - [ERR_FTRUNCATE] = { .error_no_count = 9, + [GF_FOP_FTRUNCATE] = { .error_no_count = 9, .error_no = {EACCES,EFAULT,EFBIG, EINTR,EINVAL,EIO,EISDIR, ENAMETOOLONG,ENOENT}}, - [ERR_FSTAT] = { .error_no_count = 7, + [GF_FOP_FSTAT] = { .error_no_count = 7, .error_no = {EACCES,EBADF,EFAULT, ENAMETOOLONG,ENOENT, ENOMEM,ENOTDIR}}, - [ERR_LK] = { .error_no_count = 4, + [GF_FOP_LK] = { .error_no_count = 4, .error_no = {EACCES,EFAULT,ENOENT, EINTR}}, - [ERR_CHECKSUM] = { .error_no_count = 4, + [GF_FOP_CHECKSUM] = { .error_no_count = 4, .error_no = {EACCES,EBADF, ENAMETOOLONG,EINTR}}, - [ERR_XATTROP] = { .error_no_count = 5, + [GF_FOP_XATTROP] = { .error_no_count = 5, .error_no = {EACCES,EFAULT, ENAMETOOLONG,ENOSYS, ENOENT}}, - [ERR_FXATTROP] = { .error_no_count = 4, + [GF_FOP_FXATTROP] = { .error_no_count = 4, .error_no = {EBADF,EIO,EROFS,EINVAL}}, - [ERR_INODELK] = { .error_no_count = 4, + [GF_FOP_INODELK] = { .error_no_count = 4, .error_no = {EACCES,EBADF,EINTR, ENAMETOOLONG}}, - [ERR_FINODELK] = { .error_no_count = 4, + [GF_FOP_FINODELK] = { .error_no_count = 4, .error_no = {EACCES,EBADF,EINTR, ENAMETOOLONG}}, - [ERR_ENTRYLK] = { .error_no_count = 4, + [GF_FOP_ENTRYLK] = { .error_no_count = 4, .error_no = {EACCES,EBADF, ENAMETOOLONG,EINTR}}, - [ERR_FENTRYLK] = { .error_no_count = 10, + [GF_FOP_FENTRYLK] = { .error_no_count = 10, .error_no = {EACCES,EEXIST,EFAULT, EISDIR,EMFILE, ENAMETOOLONG,ENFILE, ENODEV,ENOENT,ENOMEM}}, - [ERR_SETATTR] = {.error_no_count = 11, + [GF_FOP_SETATTR] = {.error_no_count = 11, .error_no = {EACCES,EFAULT,EIO, ENAMETOOLONG,ENOENT, ENOMEM,ENOTDIR,EPERM, EROFS,EBADF,EIO}}, - [ERR_FSETATTR] = { .error_no_count = 11, + [GF_FOP_FSETATTR] = { .error_no_count = 11, .error_no = {EACCES,EFAULT,EIO, ENAMETOOLONG,ENOENT, ENOMEM,ENOTDIR,EPERM, EROFS,EBADF,EIO}}, - [ERR_GETSPEC] = { .error_no_count = 4, + [GF_FOP_GETSPEC] = { .error_no_count = 4, .error_no = {EACCES,EBADF,ENAMETOOLONG, EINTR}} }; @@ -184,7 +184,7 @@ generate_rand_no (int op_no) { int rand_no = 0; - if (op_no < NO_OF_FOPS) + if (op_no < GF_FOP_MAXVALUE) rand_no = rand () % error_no_list[op_no].error_no_count; return rand_no; } @@ -248,83 +248,83 @@ int get_fop_int (char **op_no_str) { if (!strcmp ((*op_no_str), "lookup")) - return ERR_LOOKUP; + return GF_FOP_LOOKUP; else if (!strcmp ((*op_no_str), "stat")) - return ERR_STAT; + return GF_FOP_STAT; else if (!strcmp ((*op_no_str), "readlink")) - return ERR_READLINK; + return GF_FOP_READLINK; else if (!strcmp ((*op_no_str), "mknod")) - return ERR_MKNOD; + return GF_FOP_MKNOD; else if (!strcmp ((*op_no_str), "mkdir")) - return ERR_MKDIR; + return GF_FOP_MKDIR; else if (!strcmp ((*op_no_str), "unlink")) - return ERR_UNLINK; + return GF_FOP_UNLINK; else if (!strcmp ((*op_no_str), "rmdir")) - return ERR_RMDIR; + return GF_FOP_RMDIR; else if (!strcmp ((*op_no_str), "symlink")) - return ERR_SYMLINK; + return GF_FOP_SYMLINK; else if (!strcmp ((*op_no_str), "rename")) - return ERR_RENAME; + return GF_FOP_RENAME; else if (!strcmp ((*op_no_str), "link")) - return ERR_LINK; + return GF_FOP_LINK; else if (!strcmp ((*op_no_str), "truncate")) - return ERR_TRUNCATE; + return GF_FOP_TRUNCATE; else if (!strcmp ((*op_no_str), "create")) - return ERR_CREATE; + return GF_FOP_CREATE; else if (!strcmp ((*op_no_str), "open")) - return ERR_OPEN; + return GF_FOP_OPEN; else if (!strcmp ((*op_no_str), "readv")) - return ERR_READV; + return GF_FOP_READ; else if (!strcmp ((*op_no_str), "writev")) - return ERR_WRITEV; + return GF_FOP_WRITE; else if (!strcmp ((*op_no_str), "statfs")) - return ERR_STATFS; + return GF_FOP_STATFS; else if (!strcmp ((*op_no_str), "flush")) - return ERR_FLUSH; + return GF_FOP_FLUSH; else if (!strcmp ((*op_no_str), "fsync")) - return ERR_FSYNC; + return GF_FOP_FSYNC; else if (!strcmp ((*op_no_str), "setxattr")) - return ERR_SETXATTR; + return GF_FOP_SETXATTR; else if (!strcmp ((*op_no_str), "getxattr")) - return ERR_GETXATTR; + return GF_FOP_GETXATTR; else if (!strcmp ((*op_no_str), "removexattr")) - return ERR_REMOVEXATTR; + return GF_FOP_REMOVEXATTR; else if (!strcmp ((*op_no_str), "opendir")) - return ERR_OPENDIR; + return GF_FOP_OPENDIR; else if (!strcmp ((*op_no_str), "readdir")) - return ERR_READDIR; + return GF_FOP_READDIR; else if (!strcmp ((*op_no_str), "readdirp")) - return ERR_READDIRP; + return GF_FOP_READDIRP; else if (!strcmp ((*op_no_str), "fsyncdir")) - return ERR_FSYNCDIR; + return GF_FOP_FSYNCDIR; else if (!strcmp ((*op_no_str), "access")) - return ERR_ACCESS; + return GF_FOP_ACCESS; else if (!strcmp ((*op_no_str), "ftruncate")) - return ERR_FTRUNCATE; + return GF_FOP_FTRUNCATE; else if (!strcmp ((*op_no_str), "fstat")) - return ERR_FSTAT; + return GF_FOP_FSTAT; else if (!strcmp ((*op_no_str), "lk")) - return ERR_LK; + return GF_FOP_LK; else if (!strcmp ((*op_no_str), "checksum")) - return ERR_CHECKSUM; + return GF_FOP_CHECKSUM; else if (!strcmp ((*op_no_str), "xattrop")) - return ERR_XATTROP; + return GF_FOP_XATTROP; else if (!strcmp ((*op_no_str), "fxattrop")) - return ERR_FXATTROP; + return GF_FOP_FXATTROP; else if (!strcmp ((*op_no_str), "inodelk")) - return ERR_INODELK; + return GF_FOP_INODELK; else if (!strcmp ((*op_no_str), "finodelk")) - return ERR_FINODELK; + return GF_FOP_FINODELK; else if (!strcmp ((*op_no_str), "etrylk")) - return ERR_ENTRYLK; + return GF_FOP_ENTRYLK; else if (!strcmp ((*op_no_str), "fentrylk")) - return ERR_FENTRYLK; + return GF_FOP_FENTRYLK; else if (!strcmp ((*op_no_str), "setattr")) - return ERR_SETATTR; + return GF_FOP_SETATTR; else if (!strcmp ((*op_no_str), "fsetattr")) - return ERR_FSETATTR; + return GF_FOP_FSETATTR; else if (!strcmp ((*op_no_str), "getspec")) - return ERR_GETSPEC; + return GF_FOP_GETSPEC; else return -1; } @@ -361,12 +361,13 @@ error_gen (xlator_t *this, int op_no) else { rand_no = generate_rand_no (op_no); - if (op_no >= NO_OF_FOPS) + if (op_no >= GF_FOP_MAXVALUE) op_no = 0; if (rand_no >= error_no_list[op_no].error_no_count) rand_no = 0; ret = error_no_list[op_no].error_no[rand_no]; } + egp->failure_iter_no = 3 + (rand () % GF_UNIVERSAL_ANSWER); } return ret; } @@ -392,10 +393,10 @@ error_gen_lookup (call_frame_t *frame, xlator_t *this, loc_t *loc, int enable = 1; egp = this->private; - enable = egp->enable[ERR_LOOKUP]; + enable = egp->enable[GF_FOP_LOOKUP]; if (enable) - op_errno = error_gen (this, ERR_LOOKUP); + op_errno = error_gen (this, GF_FOP_LOOKUP); if (op_errno) { GF_ERROR(this, "unwind(-1, %s)", strerror (op_errno)); @@ -436,10 +437,10 @@ error_gen_stat (call_frame_t *frame, xlator_t *this, loc_t *loc) int enable = 1; egp = this->private; - enable = egp->enable[ERR_STAT]; + enable = egp->enable[GF_FOP_STAT]; if (enable) - op_errno = error_gen (this, ERR_STAT); + op_errno = error_gen (this, GF_FOP_STAT); if (op_errno) { GF_ERROR(this, "unwind(-1, %s)", strerror (op_errno)); @@ -475,10 +476,10 @@ error_gen_setattr (call_frame_t *frame, xlator_t *this, loc_t *loc, int enable = 1; egp = this->private; - enable = egp->enable[ERR_SETATTR]; + enable = egp->enable[GF_FOP_SETATTR]; if (enable) - op_errno = error_gen (this, ERR_SETATTR); + op_errno = error_gen (this, GF_FOP_SETATTR); if (op_errno) { GF_ERROR(this, "unwind(-1, %s)", strerror (op_errno)); @@ -503,10 +504,10 @@ error_gen_fsetattr (call_frame_t *frame, xlator_t *this, fd_t *fd, int enable = 1; egp = this->private; - enable = egp->enable[ERR_FSETATTR]; + enable = egp->enable[GF_FOP_FSETATTR]; if (enable) - op_errno = error_gen (this, ERR_FSETATTR); + op_errno = error_gen (this, GF_FOP_FSETATTR); if (op_errno) { GF_ERROR(this, "unwind(-1, %s)", strerror (op_errno)); @@ -542,10 +543,10 @@ error_gen_truncate (call_frame_t *frame, xlator_t *this, loc_t *loc, int enable = 1; egp = this->private; - enable = egp->enable[ERR_TRUNCATE]; + enable = egp->enable[GF_FOP_TRUNCATE]; if (enable) - op_errno = error_gen (this, ERR_TRUNCATE); + op_errno = error_gen (this, GF_FOP_TRUNCATE); if (op_errno) { GF_ERROR(this, "unwind(-1, %s)", strerror (op_errno)); @@ -582,10 +583,10 @@ error_gen_ftruncate (call_frame_t *frame, xlator_t *this, fd_t *fd, int enable = 1; egp = this->private; - enable = egp->enable[ERR_FTRUNCATE]; + enable = egp->enable[GF_FOP_FTRUNCATE]; if (enable) - op_errno = error_gen (this, ERR_FTRUNCATE); + op_errno = error_gen (this, GF_FOP_FTRUNCATE); if (op_errno) { GF_ERROR(this, "unwind(-1, %s)", strerror (op_errno)); @@ -621,10 +622,10 @@ error_gen_access (call_frame_t *frame, xlator_t *this, loc_t *loc, int enable = 1; egp = this->private; - enable = egp->enable[ERR_ACCESS]; + enable = egp->enable[GF_FOP_ACCESS]; if (enable) - op_errno = error_gen (this, ERR_ACCESS); + op_errno = error_gen (this, GF_FOP_ACCESS); if (op_errno) { GF_ERROR(this, "unwind(-1, %s)", strerror (op_errno)); @@ -659,10 +660,10 @@ error_gen_readlink (call_frame_t *frame, xlator_t *this, loc_t *loc, int enable = 1; egp = this->private; - enable = egp->enable[ERR_READLINK]; + enable = egp->enable[GF_FOP_READLINK]; if (enable) - op_errno = error_gen (this, ERR_READLINK); + op_errno = error_gen (this, GF_FOP_READLINK); if (op_errno) { GF_ERROR(this, "unwind(-1, %s)", strerror (op_errno)); @@ -700,10 +701,10 @@ error_gen_mknod (call_frame_t *frame, xlator_t *this, loc_t *loc, int enable = 1; egp = this->private; - enable = egp->enable[ERR_MKNOD]; + enable = egp->enable[GF_FOP_MKNOD]; if (enable) - op_errno = error_gen (this, ERR_MKNOD); + op_errno = error_gen (this, GF_FOP_MKNOD); if (op_errno) { GF_ERROR(this, "unwind(-1, %s)", strerror (op_errno)); @@ -741,10 +742,10 @@ error_gen_mkdir (call_frame_t *frame, xlator_t *this, int enable = 1; egp = this->private; - enable = egp->enable[ERR_MKDIR]; + enable = egp->enable[GF_FOP_MKDIR]; if (enable) - op_errno = error_gen (this, ERR_MKDIR); + op_errno = error_gen (this, GF_FOP_MKDIR); if (op_errno) { GF_ERROR(this, "unwind(-1, %s)", strerror (op_errno)); @@ -780,10 +781,10 @@ error_gen_unlink (call_frame_t *frame, xlator_t *this, loc_t *loc) int enable = 1; egp = this->private; - enable = egp->enable[ERR_UNLINK]; + enable = egp->enable[GF_FOP_UNLINK]; if (enable) - op_errno = error_gen (this, ERR_UNLINK); + op_errno = error_gen (this, GF_FOP_UNLINK); if (op_errno) { GF_ERROR(this, "unwind(-1, %s)", strerror (op_errno)); @@ -818,10 +819,10 @@ error_gen_rmdir (call_frame_t *frame, xlator_t *this, loc_t *loc) int enable = 1; egp = this->private; - enable = egp->enable[ERR_RMDIR]; + enable = egp->enable[GF_FOP_RMDIR]; if (enable) - op_errno = error_gen (this, ERR_RMDIR); + op_errno = error_gen (this, GF_FOP_RMDIR); if (op_errno) { GF_ERROR(this, "unwind(-1, %s)", strerror (op_errno)); @@ -858,10 +859,10 @@ error_gen_symlink (call_frame_t *frame, xlator_t *this, const char *linkpath, int enable = 1; egp = this->private; - enable = egp->enable[ERR_SYMLINK]; + enable = egp->enable[GF_FOP_SYMLINK]; if (enable) - op_errno = error_gen (this, ERR_SYMLINK); + op_errno = error_gen (this, GF_FOP_SYMLINK); if (op_errno) { GF_ERROR(this, "unwind(-1, %s)", strerror (op_errno)); @@ -900,10 +901,10 @@ error_gen_rename (call_frame_t *frame, xlator_t *this, int enable = 1; egp = this->private; - enable = egp->enable[ERR_RENAME]; + enable = egp->enable[GF_FOP_RENAME]; if (enable) - op_errno = error_gen (this, ERR_RENAME); + op_errno = error_gen (this, GF_FOP_RENAME); if (op_errno) { GF_ERROR(this, "unwind(-1, %s)", strerror (op_errno)); @@ -941,10 +942,10 @@ error_gen_link (call_frame_t *frame, xlator_t *this, int enable = 1; egp = this->private; - enable = egp->enable[ERR_LINK]; + enable = egp->enable[GF_FOP_LINK]; if (enable) - op_errno = error_gen (this, ERR_LINK); + op_errno = error_gen (this, GF_FOP_LINK); if (op_errno) { GF_ERROR(this, "unwind(-1, %s)", strerror (op_errno)); @@ -982,10 +983,10 @@ error_gen_create (call_frame_t *frame, xlator_t *this, loc_t *loc, int enable = 1; egp = this->private; - enable = egp->enable[ERR_CREATE]; + enable = egp->enable[GF_FOP_CREATE]; if (enable) - op_errno = error_gen (this, ERR_CREATE); + op_errno = error_gen (this, GF_FOP_CREATE); if (op_errno) { GF_ERROR(this, "unwind(-1, %s)", strerror (op_errno)); @@ -1020,10 +1021,10 @@ error_gen_open (call_frame_t *frame, xlator_t *this, loc_t *loc, int enable = 1; egp = this->private; - enable = egp->enable[ERR_OPEN]; + enable = egp->enable[GF_FOP_OPEN]; if (enable) - op_errno = error_gen (this, ERR_OPEN); + op_errno = error_gen (this, GF_FOP_OPEN); if (op_errno) { GF_ERROR(this, "unwind(-1, %s)", strerror (op_errno)); @@ -1060,10 +1061,10 @@ error_gen_readv (call_frame_t *frame, xlator_t *this, int enable = 1; egp = this->private; - enable = egp->enable[ERR_READV]; + enable = egp->enable[GF_FOP_READ]; if (enable) - op_errno = error_gen (this, ERR_READV); + op_errno = error_gen (this, GF_FOP_READ); if (op_errno) { GF_ERROR(this, "unwind(-1, %s)", strerror (op_errno)); @@ -1101,10 +1102,10 @@ error_gen_writev (call_frame_t *frame, xlator_t *this, fd_t *fd, int enable = 1; egp = this->private; - enable = egp->enable[ERR_WRITEV]; + enable = egp->enable[GF_FOP_WRITE]; if (enable) - op_errno = error_gen (this, ERR_WRITEV); + op_errno = error_gen (this, GF_FOP_WRITE); if (op_errno) { GF_ERROR(this, "unwind(-1, %s)", strerror (op_errno)); @@ -1137,10 +1138,10 @@ error_gen_flush (call_frame_t *frame, xlator_t *this, fd_t *fd) int enable = 1; egp = this->private; - enable = egp->enable[ERR_FLUSH]; + enable = egp->enable[GF_FOP_FLUSH]; if (enable) - op_errno = error_gen (this, ERR_FLUSH); + op_errno = error_gen (this, GF_FOP_FLUSH); if (op_errno) { GF_ERROR(this, "unwind(-1, %s)", strerror (op_errno)); @@ -1175,10 +1176,10 @@ error_gen_fsync (call_frame_t *frame, xlator_t *this, fd_t *fd, int32_t flags) int enable = 1; egp = this->private; - enable = egp->enable[ERR_FSYNC]; + enable = egp->enable[GF_FOP_FSYNC]; if (enable) - op_errno = error_gen (this, ERR_FSYNC); + op_errno = error_gen (this, GF_FOP_FSYNC); if (op_errno) { GF_ERROR(this, "unwind(-1, %s)", strerror (op_errno)); @@ -1211,10 +1212,10 @@ error_gen_fstat (call_frame_t *frame, xlator_t *this, fd_t *fd) int enable = 1; egp = this->private; - enable = egp->enable[ERR_FSTAT]; + enable = egp->enable[GF_FOP_FSTAT]; if (enable) - op_errno = error_gen (this, ERR_FSTAT); + op_errno = error_gen (this, GF_FOP_FSTAT); if (op_errno) { GF_ERROR(this, "unwind(-1, %s)", strerror (op_errno)); @@ -1247,10 +1248,10 @@ error_gen_opendir (call_frame_t *frame, xlator_t *this, loc_t *loc, fd_t *fd) int enable = 1; egp = this->private; - enable = egp->enable[ERR_OPENDIR]; + enable = egp->enable[GF_FOP_OPENDIR]; if (enable) - op_errno = error_gen (this, ERR_OPENDIR); + op_errno = error_gen (this, GF_FOP_OPENDIR); if (op_errno) { GF_ERROR(this, "unwind(-1, %s)", strerror (op_errno)); @@ -1283,10 +1284,10 @@ error_gen_fsyncdir (call_frame_t *frame, xlator_t *this, fd_t *fd, int enable = 1; egp = this->private; - enable = egp->enable[ERR_FSYNCDIR]; + enable = egp->enable[GF_FOP_FSYNCDIR]; if (enable) - op_errno = error_gen (this, ERR_FSYNCDIR); + op_errno = error_gen (this, GF_FOP_FSYNCDIR); if (op_errno) { GF_ERROR(this, "unwind(-1, %s)", strerror (op_errno)); @@ -1320,10 +1321,10 @@ error_gen_statfs (call_frame_t *frame, xlator_t *this, loc_t *loc) int enable = 1; egp = this->private; - enable = egp->enable[ERR_STATFS]; + enable = egp->enable[GF_FOP_STATFS]; if (enable) - op_errno = error_gen (this, ERR_STATFS); + op_errno = error_gen (this, GF_FOP_STATFS); if (op_errno) { GF_ERROR(this, "unwind(-1, %s)", strerror (op_errno)); @@ -1358,10 +1359,10 @@ error_gen_setxattr (call_frame_t *frame, xlator_t *this, loc_t *loc, int enable = 1; egp = this->private; - enable = egp->enable[ERR_SETXATTR]; + enable = egp->enable[GF_FOP_SETXATTR]; if (enable) - op_errno = error_gen (this, ERR_SETXATTR); + op_errno = error_gen (this, GF_FOP_SETXATTR); if (op_errno) { GF_ERROR(this, "unwind(-1, %s)", strerror (op_errno)); @@ -1395,10 +1396,10 @@ error_gen_getxattr (call_frame_t *frame, xlator_t *this, loc_t *loc, int enable = 1; egp = this->private; - enable = egp->enable[ERR_GETXATTR]; + enable = egp->enable[GF_FOP_GETXATTR]; if (enable) - op_errno = error_gen (this, ERR_GETXATTR); + op_errno = error_gen (this, GF_FOP_GETXATTR); if (op_errno) { GF_ERROR(this, "unwind(-1, %s)", strerror (op_errno)); @@ -1433,10 +1434,10 @@ error_gen_xattrop (call_frame_t *frame, xlator_t *this, loc_t *loc, int enable = 1; egp = this->private; - enable = egp->enable[ERR_XATTROP]; + enable = egp->enable[GF_FOP_XATTROP]; if (enable) - op_errno = error_gen (this, ERR_XATTROP); + op_errno = error_gen (this, GF_FOP_XATTROP); if (op_errno) { GF_ERROR(this, "unwind(-1, %s)", strerror (op_errno)); @@ -1471,10 +1472,10 @@ error_gen_fxattrop (call_frame_t *frame, xlator_t *this, fd_t *fd, int enable = 1; egp = this->private; - enable = egp->enable[ERR_FXATTROP]; + enable = egp->enable[GF_FOP_FXATTROP]; if (enable) - op_errno = error_gen (this, ERR_FXATTROP); + op_errno = error_gen (this, GF_FOP_FXATTROP); if (op_errno) { GF_ERROR(this, "unwind(-1, %s)", strerror (op_errno)); @@ -1509,10 +1510,10 @@ error_gen_removexattr (call_frame_t *frame, xlator_t *this, loc_t *loc, int enable = 1; egp = this->private; - enable = egp->enable[ERR_REMOVEXATTR]; + enable = egp->enable[GF_FOP_REMOVEXATTR]; if (enable) - op_errno = error_gen (this, ERR_REMOVEXATTR); + op_errno = error_gen (this, GF_FOP_REMOVEXATTR); if (op_errno) { GF_ERROR(this, "unwind(-1, %s)", strerror (op_errno)); @@ -1546,10 +1547,10 @@ error_gen_lk (call_frame_t *frame, xlator_t *this, fd_t *fd, int32_t cmd, int enable = 1; egp = this->private; - enable = egp->enable[ERR_LK]; + enable = egp->enable[GF_FOP_LK]; if (enable) - op_errno = error_gen (this, ERR_LK); + op_errno = error_gen (this, GF_FOP_LK); if (op_errno) { GF_ERROR(this, "unwind(-1, %s)", strerror (op_errno)); @@ -1585,10 +1586,10 @@ error_gen_inodelk (call_frame_t *frame, xlator_t *this, int enable = 1; egp = this->private; - enable = egp->enable[ERR_INODELK]; + enable = egp->enable[GF_FOP_INODELK]; if (enable) - op_errno = error_gen (this, ERR_INODELK); + op_errno = error_gen (this, GF_FOP_INODELK); if (op_errno) { GF_ERROR(this, "unwind(-1, %s)", strerror (op_errno)); @@ -1624,10 +1625,10 @@ error_gen_finodelk (call_frame_t *frame, xlator_t *this, int enable = 1; egp = this->private; - enable = egp->enable[ERR_FINODELK]; + enable = egp->enable[GF_FOP_FINODELK]; if (enable) - op_errno = error_gen (this, ERR_FINODELK); + op_errno = error_gen (this, GF_FOP_FINODELK); if (op_errno) { GF_ERROR(this, "unwind(-1, %s)", strerror (op_errno)); @@ -1663,10 +1664,10 @@ error_gen_entrylk (call_frame_t *frame, xlator_t *this, int enable = 1; egp = this->private; - enable = egp->enable[ERR_ENTRYLK]; + enable = egp->enable[GF_FOP_ENTRYLK]; if (enable) - op_errno = error_gen (this, ERR_ENTRYLK); + op_errno = error_gen (this, GF_FOP_ENTRYLK); if (op_errno) { GF_ERROR(this, "unwind(-1, %s)", strerror (op_errno)); @@ -1702,10 +1703,10 @@ error_gen_fentrylk (call_frame_t *frame, xlator_t *this, int enable = 1; egp = this->private; - enable = egp->enable[ERR_FENTRYLK]; + enable = egp->enable[GF_FOP_FENTRYLK]; if (enable) - op_errno = error_gen (this, ERR_FENTRYLK); + op_errno = error_gen (this, GF_FOP_FENTRYLK); if (op_errno) { GF_ERROR(this, "unwind(-1, %s)", strerror (op_errno)); @@ -1743,10 +1744,10 @@ error_gen_getspec (call_frame_t *frame, xlator_t *this, const char *key, int enable = 1; egp = this->private; - enable = egp->enable[ERR_GETSPEC]; + enable = egp->enable[GF_FOP_GETSPEC]; if (enable) - op_errno = error_gen (this, ERR_GETSPEC); + op_errno = error_gen (this, GF_FOP_GETSPEC); if (op_errno) { GF_ERROR(this, "unwind(-1, %s)", strerror (op_errno)); @@ -1782,10 +1783,10 @@ error_gen_checksum (call_frame_t *frame, xlator_t *this, loc_t *loc, int enable = 1; egp = this->private; - enable = egp->enable[ERR_CHECKSUM]; + enable = egp->enable[GF_FOP_CHECKSUM]; if (enable) - op_errno = error_gen (this, ERR_CHECKSUM); + op_errno = error_gen (this, GF_FOP_CHECKSUM); if (op_errno) { GF_ERROR(this, "unwind(-1, %s)", strerror (op_errno)); @@ -1819,10 +1820,10 @@ error_gen_readdir (call_frame_t *frame, xlator_t *this, fd_t *fd, int enable = 1; egp = this->private; - enable = egp->enable[ERR_READDIR]; + enable = egp->enable[GF_FOP_READDIR]; if (enable) - op_errno = error_gen (this, ERR_READDIR); + op_errno = error_gen (this, GF_FOP_READDIR); if (op_errno) { GF_ERROR(this, "unwind(-1, %s)", strerror (op_errno)); @@ -1856,10 +1857,10 @@ error_gen_readdirp (call_frame_t *frame, xlator_t *this, fd_t *fd, size_t size, int enable = 1; egp = this->private; - enable = egp->enable[ERR_READDIRP]; + enable = egp->enable[GF_FOP_READDIRP]; if (enable) - op_errno = error_gen (this, ERR_READDIRP); + op_errno = error_gen (this, GF_FOP_READDIRP); if (op_errno) { GF_ERROR(this, "unwind(-1, %s)", strerror (op_errno)); @@ -1930,7 +1931,7 @@ init (xlator_t *this) LOCK_INIT (&pvt->lock); - for (i = 0; i < NO_OF_FOPS; i++) + for (i = 0; i < GF_FOP_MAXVALUE; i++) pvt->enable[i] = 0; if (!error_no) { gf_log (this->name, GF_LOG_DEBUG, @@ -1954,7 +1955,7 @@ init (xlator_t *this) if (!enable) { gf_log (this->name, GF_LOG_WARNING, "All fops are enabled."); - for (i = 0; i < NO_OF_FOPS; i++) + for (i = 0; i < GF_FOP_MAXVALUE; i++) pvt->enable[i] = 1; } else { error_enable_fops = data_to_str (enable); @@ -1979,6 +1980,9 @@ init (xlator_t *this) } } this->private = pvt; + + /* Give some seed value here */ + srand (time(NULL)); out: return ret; } diff --git a/xlators/debug/error-gen/src/error-gen.h b/xlators/debug/error-gen/src/error-gen.h index 7fb5fdfb56c..fc51fafc3aa 100644 --- a/xlators/debug/error-gen/src/error-gen.h +++ b/xlators/debug/error-gen/src/error-gen.h @@ -26,55 +26,9 @@ #endif #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 -}; typedef struct { - int enable[NO_OF_FOPS]; + int enable[GF_FOP_MAXVALUE]; int op_count; int failure_iter_no; char *error_no; |