diff options
Diffstat (limited to 'xlators/debug/delay-gen/src/delay-gen.c')
| -rw-r--r-- | xlators/debug/delay-gen/src/delay-gen.c | 858 | 
1 files changed, 396 insertions, 462 deletions
diff --git a/xlators/debug/delay-gen/src/delay-gen.c b/xlators/debug/delay-gen/src/delay-gen.c index 849ebeaabcd..a2d02527f23 100644 --- a/xlators/debug/delay-gen/src/delay-gen.c +++ b/xlators/debug/delay-gen/src/delay-gen.c @@ -8,741 +8,675 @@   *  cases as published by the Free Software Foundation.   */ -  #include "delay-gen.h" -#define DELAY_GRANULARITY     (1 << 20) +#define DELAY_GRANULARITY (1 << 20)  #define DG_FOP(fop, name, frame, this, args...)                                \ -        do {                                                                   \ -                delay_gen (this, fop);                                         \ -                default_##name (frame, this, args);                            \ -        } while (0) +    do {                                                                       \ +        delay_gen(this, fop);                                                  \ +        default_##name(frame, this, args);                                     \ +    } while (0)  int -delay_gen (xlator_t *this, int fop) +delay_gen(xlator_t *this, int fop)  { -        dg_t             *dg = this->private; +    dg_t *dg = this->private; -        if (!dg->enable[fop] || !dg->delay_ppm) -                return 0; +    if (!dg->enable[fop] || !dg->delay_ppm) +        return 0; -        if ((rand () % DELAY_GRANULARITY) < dg->delay_ppm) -                usleep (dg->delay_duration); +    if ((rand() % DELAY_GRANULARITY) < dg->delay_ppm) +        usleep(dg->delay_duration); -        return 0; +    return 0;  }  int32_t -dg_rename (call_frame_t *frame, xlator_t *this, loc_t *oldloc, loc_t *newloc, -           dict_t *xdata) +dg_rename(call_frame_t *frame, xlator_t *this, loc_t *oldloc, loc_t *newloc, +          dict_t *xdata)  { -        DG_FOP (GF_FOP_RENAME, rename, frame, this,  oldloc,  newloc, xdata); -        return 0; +    DG_FOP(GF_FOP_RENAME, rename, frame, this, oldloc, newloc, xdata); +    return 0;  } -  int32_t -dg_ipc (call_frame_t *frame, xlator_t *this, int32_t op, dict_t *xdata) +dg_ipc(call_frame_t *frame, xlator_t *this, int32_t op, dict_t *xdata)  { -        DG_FOP (GF_FOP_IPC, ipc, frame, this, op, xdata); -        return 0; +    DG_FOP(GF_FOP_IPC, ipc, frame, this, op, xdata); +    return 0;  }  int32_t -dg_setactivelk (call_frame_t *frame, xlator_t *this, loc_t *loc, -                lock_migration_info_t *locklist, dict_t *xdata) +dg_setactivelk(call_frame_t *frame, xlator_t *this, loc_t *loc, +               lock_migration_info_t *locklist, dict_t *xdata)  { -        DG_FOP (GF_FOP_SETACTIVELK, setactivelk, frame, this, loc, -                locklist, xdata); -        return 0; +    DG_FOP(GF_FOP_SETACTIVELK, setactivelk, frame, this, loc, locklist, xdata); +    return 0;  }  int32_t -dg_flush (call_frame_t *frame, xlator_t *this, fd_t *fd, dict_t *xdata) +dg_flush(call_frame_t *frame, xlator_t *this, fd_t *fd, dict_t *xdata)  { -        DG_FOP (GF_FOP_FLUSH, flush, frame, this, fd, xdata); -        return 0; +    DG_FOP(GF_FOP_FLUSH, flush, frame, this, fd, xdata); +    return 0;  }  int32_t -dg_readdir (call_frame_t *frame, xlator_t *this, fd_t *fd, size_t size, -            off_t off, dict_t *xdata) +dg_readdir(call_frame_t *frame, xlator_t *this, fd_t *fd, size_t size, +           off_t off, dict_t *xdata)  { -        DG_FOP (GF_FOP_READDIR, readdir, frame, this,  fd, size, off, xdata); -        return 0; +    DG_FOP(GF_FOP_READDIR, readdir, frame, this, fd, size, off, xdata); +    return 0;  }  int32_t -dg_setxattr (call_frame_t *frame, xlator_t *this, loc_t *loc, dict_t *dict, -             int32_t flags, dict_t *xdata) +dg_setxattr(call_frame_t *frame, xlator_t *this, loc_t *loc, dict_t *dict, +            int32_t flags, dict_t *xdata)  { -        DG_FOP (GF_FOP_SETXATTR, setxattr, frame, this, loc, dict, flags, -                xdata); -        return 0; +    DG_FOP(GF_FOP_SETXATTR, setxattr, frame, this, loc, dict, flags, xdata); +    return 0;  }  int32_t -dg_mknod (call_frame_t *frame, xlator_t *this, loc_t *loc, mode_t mode, -          dev_t rdev, mode_t umask, dict_t *xdata) +dg_mknod(call_frame_t *frame, xlator_t *this, loc_t *loc, mode_t mode, +         dev_t rdev, mode_t umask, dict_t *xdata)  { -        DG_FOP (GF_FOP_MKNOD, mknod, frame, this, loc, mode, rdev, umask, -                xdata); -        return 0; +    DG_FOP(GF_FOP_MKNOD, mknod, frame, this, loc, mode, rdev, umask, xdata); +    return 0;  }  int32_t -dg_fsetxattr (call_frame_t *frame, xlator_t *this, fd_t *fd, dict_t *dict, -              int32_t flags, dict_t *xdata) +dg_fsetxattr(call_frame_t *frame, xlator_t *this, fd_t *fd, dict_t *dict, +             int32_t flags, dict_t *xdata)  { -        DG_FOP (GF_FOP_FSETXATTR, fsetxattr, frame, this, fd, dict, flags, -                xdata); -        return 0; +    DG_FOP(GF_FOP_FSETXATTR, fsetxattr, frame, this, fd, dict, flags, xdata); +    return 0;  }  int32_t -dg_readv (call_frame_t *frame, xlator_t *this, fd_t *fd, size_t size, -          off_t offset, uint32_t flags, dict_t *xdata) +dg_readv(call_frame_t *frame, xlator_t *this, fd_t *fd, size_t size, +         off_t offset, uint32_t flags, dict_t *xdata)  { -        DG_FOP (GF_FOP_READ, readv, frame, this, fd, size, offset, flags, -                xdata); -        return 0; +    DG_FOP(GF_FOP_READ, readv, frame, this, fd, size, offset, flags, xdata); +    return 0;  }  int32_t -dg_inodelk (call_frame_t *frame, xlator_t *this, const char *volume, -            loc_t *loc, int32_t cmd, struct gf_flock *lock, dict_t *xdata) +dg_inodelk(call_frame_t *frame, xlator_t *this, const char *volume, loc_t *loc, +           int32_t cmd, struct gf_flock *lock, dict_t *xdata)  { -        DG_FOP (GF_FOP_INODELK, inodelk, frame, this, volume, loc, cmd, lock, -                xdata); -        return 0; +    DG_FOP(GF_FOP_INODELK, inodelk, frame, this, volume, loc, cmd, lock, xdata); +    return 0;  }  int32_t -dg_fremovexattr (call_frame_t *frame, xlator_t *this, fd_t *fd, -                 const char *name, dict_t *xdata) +dg_fremovexattr(call_frame_t *frame, xlator_t *this, fd_t *fd, const char *name, +                dict_t *xdata)  { -        DG_FOP (GF_FOP_FREMOVEXATTR, fremovexattr, frame, this, fd, name, -                xdata); -        return 0; +    DG_FOP(GF_FOP_FREMOVEXATTR, fremovexattr, frame, this, fd, name, xdata); +    return 0;  }  int32_t -dg_open (call_frame_t *frame, xlator_t *this, loc_t *loc, int32_t flags, -         fd_t *fd, dict_t *xdata) +dg_open(call_frame_t *frame, xlator_t *this, loc_t *loc, int32_t flags, +        fd_t *fd, dict_t *xdata)  { -        DG_FOP (GF_FOP_OPEN, open, frame, this, loc, flags, fd, xdata); -        return 0; +    DG_FOP(GF_FOP_OPEN, open, frame, this, loc, flags, fd, xdata); +    return 0;  }  int32_t -dg_xattrop (call_frame_t *frame, xlator_t *this, loc_t *loc, -            gf_xattrop_flags_t flags, dict_t *dict, dict_t *xdata) +dg_xattrop(call_frame_t *frame, xlator_t *this, loc_t *loc, +           gf_xattrop_flags_t flags, dict_t *dict, dict_t *xdata)  { -        DG_FOP (GF_FOP_XATTROP, xattrop, frame, this, loc, flags, dict, xdata); -        return 0; +    DG_FOP(GF_FOP_XATTROP, xattrop, frame, this, loc, flags, dict, xdata); +    return 0;  }  int32_t -dg_entrylk (call_frame_t *frame, xlator_t *this, const char *volume, -            loc_t *loc, const char *basename, entrylk_cmd cmd, -            entrylk_type type, dict_t *xdata) +dg_entrylk(call_frame_t *frame, xlator_t *this, const char *volume, loc_t *loc, +           const char *basename, entrylk_cmd cmd, entrylk_type type, +           dict_t *xdata)  { -        DG_FOP (GF_FOP_ENTRYLK, entrylk, frame, this, volume, -                loc, basename, cmd, type, xdata); -        return 0; +    DG_FOP(GF_FOP_ENTRYLK, entrylk, frame, this, volume, loc, basename, cmd, +           type, xdata); +    return 0;  }  int32_t -dg_getactivelk (call_frame_t *frame, xlator_t *this, loc_t *loc, dict_t *xdata) +dg_getactivelk(call_frame_t *frame, xlator_t *this, loc_t *loc, dict_t *xdata)  { -        DG_FOP (GF_FOP_GETACTIVELK, getactivelk, frame, this, loc, xdata); -        return 0; +    DG_FOP(GF_FOP_GETACTIVELK, getactivelk, frame, this, loc, xdata); +    return 0;  }  int32_t -dg_finodelk (call_frame_t *frame, xlator_t *this, const char *volume, -             fd_t *fd, int32_t cmd, struct gf_flock *lock, dict_t *xdata) +dg_finodelk(call_frame_t *frame, xlator_t *this, const char *volume, fd_t *fd, +            int32_t cmd, struct gf_flock *lock, dict_t *xdata)  { -        DG_FOP (GF_FOP_FINODELK, finodelk, frame, this, volume, fd, cmd, lock, -                xdata); -        return 0; +    DG_FOP(GF_FOP_FINODELK, finodelk, frame, this, volume, fd, cmd, lock, +           xdata); +    return 0;  }  int32_t -dg_create (call_frame_t *frame, xlator_t *this, loc_t *loc, int32_t flags, -           mode_t mode, mode_t umask, fd_t *fd, dict_t *xdata) +dg_create(call_frame_t *frame, xlator_t *this, loc_t *loc, int32_t flags, +          mode_t mode, mode_t umask, fd_t *fd, dict_t *xdata)  { -        DG_FOP (GF_FOP_CREATE, create, frame, this, loc, flags, mode, umask, fd, -                xdata); -        return 0; +    DG_FOP(GF_FOP_CREATE, create, frame, this, loc, flags, mode, umask, fd, +           xdata); +    return 0;  }  int32_t -dg_discard (call_frame_t *frame, xlator_t *this, fd_t *fd, off_t offset, -            size_t len, dict_t *xdata) +dg_discard(call_frame_t *frame, xlator_t *this, fd_t *fd, off_t offset, +           size_t len, dict_t *xdata)  { -        DG_FOP (GF_FOP_DISCARD, discard, frame, this, fd, offset, len, xdata); -        return 0; +    DG_FOP(GF_FOP_DISCARD, discard, frame, this, fd, offset, len, xdata); +    return 0;  }  int32_t -dg_mkdir (call_frame_t *frame, xlator_t *this, loc_t *loc, mode_t mode, -          mode_t umask, dict_t *xdata) +dg_mkdir(call_frame_t *frame, xlator_t *this, loc_t *loc, mode_t mode, +         mode_t umask, dict_t *xdata)  { -        DG_FOP (GF_FOP_MKDIR, mkdir, frame, this, loc, mode, umask, xdata); -        return 0; +    DG_FOP(GF_FOP_MKDIR, mkdir, frame, this, loc, mode, umask, xdata); +    return 0;  }  int32_t -dg_lk (call_frame_t *frame, xlator_t *this, fd_t *fd, int32_t cmd, -       struct gf_flock *lock, dict_t *xdata) +dg_lk(call_frame_t *frame, xlator_t *this, fd_t *fd, int32_t cmd, +      struct gf_flock *lock, dict_t *xdata)  { -        DG_FOP (GF_FOP_LK, lk, frame, this, fd, cmd, lock, xdata); -        return 0; +    DG_FOP(GF_FOP_LK, lk, frame, this, fd, cmd, lock, xdata); +    return 0;  }  int32_t -dg_writev (call_frame_t *frame, xlator_t *this, fd_t *fd, -           struct iovec *vector, int32_t count, off_t off, uint32_t flags, -           struct iobref *iobref, dict_t *xdata) +dg_writev(call_frame_t *frame, xlator_t *this, fd_t *fd, struct iovec *vector, +          int32_t count, off_t off, uint32_t flags, struct iobref *iobref, +          dict_t *xdata)  { -        DG_FOP (GF_FOP_WRITE, writev, frame, this, fd, -                vector, count, off, flags, iobref, xdata); -        return 0; +    DG_FOP(GF_FOP_WRITE, writev, frame, this, fd, vector, count, off, flags, +           iobref, xdata); +    return 0;  }  int32_t -dg_access (call_frame_t *frame, xlator_t *this, loc_t *loc, int32_t mask, -           dict_t *xdata) +dg_access(call_frame_t *frame, xlator_t *this, loc_t *loc, int32_t mask, +          dict_t *xdata)  { -        DG_FOP (GF_FOP_ACCESS, access, frame, this, loc, mask, xdata); -        return 0; +    DG_FOP(GF_FOP_ACCESS, access, frame, this, loc, mask, xdata); +    return 0;  }  int32_t -dg_lookup (call_frame_t *frame, xlator_t *this, loc_t *loc, dict_t *xdata) +dg_lookup(call_frame_t *frame, xlator_t *this, loc_t *loc, dict_t *xdata)  { -        DG_FOP (GF_FOP_LOOKUP, lookup, frame, this, loc, xdata); -        return 0; +    DG_FOP(GF_FOP_LOOKUP, lookup, frame, this, loc, xdata); +    return 0;  } - -  int32_t -dg_rmdir (call_frame_t *frame, xlator_t *this, loc_t *loc, -          int32_t flags, dict_t *xdata) +dg_rmdir(call_frame_t *frame, xlator_t *this, loc_t *loc, int32_t flags, +         dict_t *xdata)  { -        DG_FOP (GF_FOP_RMDIR, rmdir, frame, this, loc, flags, xdata); -        return 0; +    DG_FOP(GF_FOP_RMDIR, rmdir, frame, this, loc, flags, xdata); +    return 0;  } - -  int32_t -dg_fallocate (call_frame_t *frame, xlator_t *this, fd_t *fd, int32_t keep_size, -              off_t offset, size_t len, dict_t *xdata) +dg_fallocate(call_frame_t *frame, xlator_t *this, fd_t *fd, int32_t keep_size, +             off_t offset, size_t len, dict_t *xdata)  { -        DG_FOP (GF_FOP_FALLOCATE, fallocate, frame, this, fd, keep_size, offset, -                len, xdata); -        return 0; +    DG_FOP(GF_FOP_FALLOCATE, fallocate, frame, this, fd, keep_size, offset, len, +           xdata); +    return 0;  } - -  int32_t -dg_fstat (call_frame_t *frame, xlator_t *this, fd_t *fd, dict_t *xdata) +dg_fstat(call_frame_t *frame, xlator_t *this, fd_t *fd, dict_t *xdata)  { -        DG_FOP (GF_FOP_FSTAT, fstat, frame, this, fd, xdata); -        return 0; +    DG_FOP(GF_FOP_FSTAT, fstat, frame, this, fd, xdata); +    return 0;  } - -  int32_t -dg_lease (call_frame_t *frame, xlator_t *this, loc_t *loc, -          struct gf_lease *lease, dict_t *xdata) +dg_lease(call_frame_t *frame, xlator_t *this, loc_t *loc, +         struct gf_lease *lease, dict_t *xdata)  { -        DG_FOP (GF_FOP_LEASE, lease, frame, this, loc, lease, xdata); -        return 0; +    DG_FOP(GF_FOP_LEASE, lease, frame, this, loc, lease, xdata); +    return 0;  } - -  int32_t -dg_stat (call_frame_t *frame, xlator_t *this, loc_t *loc, dict_t *xdata) +dg_stat(call_frame_t *frame, xlator_t *this, loc_t *loc, dict_t *xdata)  { -        DG_FOP (GF_FOP_STAT, stat, frame, this, loc, xdata); -        return 0; +    DG_FOP(GF_FOP_STAT, stat, frame, this, loc, xdata); +    return 0;  } - -  int32_t -dg_truncate (call_frame_t *frame, xlator_t *this, loc_t *loc, off_t offset, -             dict_t *xdata) +dg_truncate(call_frame_t *frame, xlator_t *this, loc_t *loc, off_t offset, +            dict_t *xdata)  { -        DG_FOP (GF_FOP_TRUNCATE, truncate, frame, this, loc, offset, xdata); -        return 0; +    DG_FOP(GF_FOP_TRUNCATE, truncate, frame, this, loc, offset, xdata); +    return 0;  } - -  int32_t -dg_getxattr (call_frame_t *frame, xlator_t *this, loc_t *loc, -             const char *name, dict_t *xdata) +dg_getxattr(call_frame_t *frame, xlator_t *this, loc_t *loc, const char *name, +            dict_t *xdata)  { -        DG_FOP (GF_FOP_GETXATTR, getxattr, frame, this, loc, name, xdata); -        return 0; +    DG_FOP(GF_FOP_GETXATTR, getxattr, frame, this, loc, name, xdata); +    return 0;  } - -  int32_t -dg_symlink (call_frame_t *frame, xlator_t *this, const char *linkpath, -            loc_t *loc, mode_t umask, dict_t *xdata) +dg_symlink(call_frame_t *frame, xlator_t *this, const char *linkpath, +           loc_t *loc, mode_t umask, dict_t *xdata)  { -        DG_FOP (GF_FOP_SYMLINK, symlink, frame, this, linkpath, loc, umask, -                xdata); -        return 0; +    DG_FOP(GF_FOP_SYMLINK, symlink, frame, this, linkpath, loc, umask, xdata); +    return 0;  } - -  int32_t -dg_zerofill (call_frame_t *frame, xlator_t *this, fd_t *fd, off_t offset, -             off_t len, dict_t *xdata) +dg_zerofill(call_frame_t *frame, xlator_t *this, fd_t *fd, off_t offset, +            off_t len, dict_t *xdata)  { -        DG_FOP (GF_FOP_ZEROFILL, zerofill, frame, this, fd, offset, len, xdata); -        return 0; +    DG_FOP(GF_FOP_ZEROFILL, zerofill, frame, this, fd, offset, len, xdata); +    return 0;  } - -  int32_t -dg_fsyncdir (call_frame_t *frame, xlator_t *this, fd_t *fd, int32_t flags, -             dict_t *xdata) +dg_fsyncdir(call_frame_t *frame, xlator_t *this, fd_t *fd, int32_t flags, +            dict_t *xdata)  { -        DG_FOP (GF_FOP_FSYNCDIR, fsyncdir, frame, this, fd, flags, xdata); -        return 0; +    DG_FOP(GF_FOP_FSYNCDIR, fsyncdir, frame, this, fd, flags, xdata); +    return 0;  } - -  int32_t -dg_fgetxattr (call_frame_t *frame, xlator_t *this, fd_t *fd, const char *name, -              dict_t *xdata) +dg_fgetxattr(call_frame_t *frame, xlator_t *this, fd_t *fd, const char *name, +             dict_t *xdata)  { -        DG_FOP (GF_FOP_FGETXATTR, fgetxattr, frame, this, fd, name, xdata); -        return 0; +    DG_FOP(GF_FOP_FGETXATTR, fgetxattr, frame, this, fd, name, xdata); +    return 0;  } - -  int32_t -dg_readdirp (call_frame_t *frame, xlator_t *this, fd_t *fd, size_t size, -             off_t off, dict_t *xdata) +dg_readdirp(call_frame_t *frame, xlator_t *this, fd_t *fd, size_t size, +            off_t off, dict_t *xdata)  { -        DG_FOP (GF_FOP_READDIRP, readdirp, frame, this, fd, size, off,  xdata); -        return 0; +    DG_FOP(GF_FOP_READDIRP, readdirp, frame, this, fd, size, off, xdata); +    return 0;  } - -  int32_t -dg_link (call_frame_t *frame, xlator_t *this, loc_t *oldloc, loc_t *newloc, -         dict_t *xdata) +dg_link(call_frame_t *frame, xlator_t *this, loc_t *oldloc, loc_t *newloc, +        dict_t *xdata)  { -        DG_FOP (GF_FOP_LINK, link, frame, this, oldloc, newloc, xdata); -        return 0; +    DG_FOP(GF_FOP_LINK, link, frame, this, oldloc, newloc, xdata); +    return 0;  } - -  int32_t -dg_fxattrop (call_frame_t *frame, xlator_t *this, fd_t *fd, -             gf_xattrop_flags_t flags, dict_t *dict, dict_t *xdata) +dg_fxattrop(call_frame_t *frame, xlator_t *this, fd_t *fd, +            gf_xattrop_flags_t flags, dict_t *dict, dict_t *xdata)  { -        DG_FOP (GF_FOP_FXATTROP, fxattrop, frame, this, fd, flags, dict, xdata); -        return 0; +    DG_FOP(GF_FOP_FXATTROP, fxattrop, frame, this, fd, flags, dict, xdata); +    return 0;  } - -  int32_t -dg_ftruncate (call_frame_t *frame, xlator_t *this, fd_t *fd, off_t offset, -              dict_t *xdata) +dg_ftruncate(call_frame_t *frame, xlator_t *this, fd_t *fd, off_t offset, +             dict_t *xdata)  { -        DG_FOP (GF_FOP_FTRUNCATE, ftruncate, frame, this, fd, offset,  xdata); -        return 0; +    DG_FOP(GF_FOP_FTRUNCATE, ftruncate, frame, this, fd, offset, xdata); +    return 0;  } - -  int32_t -dg_rchecksum (call_frame_t *frame, xlator_t *this, fd_t *fd, off_t offset, -              int32_t len, dict_t *xdata) +dg_rchecksum(call_frame_t *frame, xlator_t *this, fd_t *fd, off_t offset, +             int32_t len, dict_t *xdata)  { -        DG_FOP (GF_FOP_RCHECKSUM, rchecksum, frame, this, fd, offset, len, -                xdata); -        return 0; +    DG_FOP(GF_FOP_RCHECKSUM, rchecksum, frame, this, fd, offset, len, xdata); +    return 0;  } - -  int32_t -dg_unlink (call_frame_t *frame, xlator_t *this, loc_t *loc, int32_t flags, -           dict_t *xdata) +dg_unlink(call_frame_t *frame, xlator_t *this, loc_t *loc, int32_t flags, +          dict_t *xdata)  { -        DG_FOP (GF_FOP_UNLINK, unlink, frame, this, loc, flags, xdata); -        return 0; +    DG_FOP(GF_FOP_UNLINK, unlink, frame, this, loc, flags, xdata); +    return 0;  } - -  int32_t -dg_fentrylk (call_frame_t *frame, xlator_t *this, const char *volume, -             fd_t *fd, const char *basename, entrylk_cmd cmd, -             entrylk_type type, dict_t *xdata) +dg_fentrylk(call_frame_t *frame, xlator_t *this, const char *volume, fd_t *fd, +            const char *basename, entrylk_cmd cmd, entrylk_type type, +            dict_t *xdata)  { -        DG_FOP (GF_FOP_FENTRYLK, fentrylk, frame, this, volume,  fd, basename, -                cmd, type, xdata); -        return 0; +    DG_FOP(GF_FOP_FENTRYLK, fentrylk, frame, this, volume, fd, basename, cmd, +           type, xdata); +    return 0;  } - -  int32_t -dg_getspec (call_frame_t *frame, xlator_t *this, const char *key, -            int32_t flags) +dg_getspec(call_frame_t *frame, xlator_t *this, const char *key, int32_t flags)  { -        DG_FOP (GF_FOP_GETSPEC, getspec, frame, this, key, flags); -        return 0; +    DG_FOP(GF_FOP_GETSPEC, getspec, frame, this, key, flags); +    return 0;  } - -  int32_t -dg_setattr (call_frame_t *frame, xlator_t *this, loc_t *loc, -            struct iatt *stbuf, int32_t valid, dict_t *xdata) +dg_setattr(call_frame_t *frame, xlator_t *this, loc_t *loc, struct iatt *stbuf, +           int32_t valid, dict_t *xdata)  { -        DG_FOP (GF_FOP_SETATTR, setattr, frame, this, loc, stbuf, valid, xdata); -        return 0; +    DG_FOP(GF_FOP_SETATTR, setattr, frame, this, loc, stbuf, valid, xdata); +    return 0;  } - -  int32_t -dg_fsync (call_frame_t *frame, xlator_t *this, fd_t *fd, int32_t flags, -          dict_t *xdata) +dg_fsync(call_frame_t *frame, xlator_t *this, fd_t *fd, int32_t flags, +         dict_t *xdata)  { -        DG_FOP (GF_FOP_FSYNC, fsync, frame, this,  fd, flags, xdata); -        return 0; +    DG_FOP(GF_FOP_FSYNC, fsync, frame, this, fd, flags, xdata); +    return 0;  } - -  int32_t -dg_statfs (call_frame_t *frame, xlator_t *this, loc_t *loc, dict_t *xdata) +dg_statfs(call_frame_t *frame, xlator_t *this, loc_t *loc, dict_t *xdata)  { -        DG_FOP (GF_FOP_STATFS, statfs, frame, this, loc, xdata); -        return 0; +    DG_FOP(GF_FOP_STATFS, statfs, frame, this, loc, xdata); +    return 0;  } - -  int32_t -dg_seek (call_frame_t *frame, xlator_t *this, fd_t *fd, off_t offset, -         gf_seek_what_t what, dict_t *xdata) +dg_seek(call_frame_t *frame, xlator_t *this, fd_t *fd, off_t offset, +        gf_seek_what_t what, dict_t *xdata)  { -        DG_FOP (GF_FOP_SEEK, seek, frame, this, fd, offset, what, xdata); -        return 0; +    DG_FOP(GF_FOP_SEEK, seek, frame, this, fd, offset, what, xdata); +    return 0;  } - -  int32_t -dg_fsetattr (call_frame_t *frame, xlator_t *this, fd_t *fd, -             struct iatt *stbuf, int32_t valid, dict_t *xdata) +dg_fsetattr(call_frame_t *frame, xlator_t *this, fd_t *fd, struct iatt *stbuf, +            int32_t valid, dict_t *xdata)  { -        DG_FOP (GF_FOP_FSETATTR, fsetattr, frame, this, fd, -                stbuf, valid, xdata); -        return 0; +    DG_FOP(GF_FOP_FSETATTR, fsetattr, frame, this, fd, stbuf, valid, xdata); +    return 0;  } - -  int32_t -dg_opendir (call_frame_t *frame, xlator_t *this, loc_t *loc, fd_t *fd, -            dict_t *xdata) +dg_opendir(call_frame_t *frame, xlator_t *this, loc_t *loc, fd_t *fd, +           dict_t *xdata)  { -        DG_FOP (GF_FOP_OPENDIR, opendir, frame, this, loc, fd, xdata); -        return 0; +    DG_FOP(GF_FOP_OPENDIR, opendir, frame, this, loc, fd, xdata); +    return 0;  } - -  int32_t -dg_readlink (call_frame_t *frame, xlator_t *this, loc_t *loc, size_t size, -             dict_t *xdata) +dg_readlink(call_frame_t *frame, xlator_t *this, loc_t *loc, size_t size, +            dict_t *xdata)  { -        DG_FOP (GF_FOP_READLINK, readlink, frame, this, loc, size, xdata); -        return 0; +    DG_FOP(GF_FOP_READLINK, readlink, frame, this, loc, size, xdata); +    return 0;  } - -  int32_t -dg_removexattr (call_frame_t *frame, xlator_t *this, loc_t *loc, -                const char *name, dict_t *xdata) +dg_removexattr(call_frame_t *frame, xlator_t *this, loc_t *loc, +               const char *name, dict_t *xdata)  { -        DG_FOP (GF_FOP_REMOVEXATTR, removexattr, frame, this, loc, name, xdata); -        return 0; +    DG_FOP(GF_FOP_REMOVEXATTR, removexattr, frame, this, loc, name, xdata); +    return 0;  }  int32_t -dg_forget (xlator_t *this, inode_t *inode) +dg_forget(xlator_t *this, inode_t *inode)  { -        return 0; +    return 0;  }  int32_t -dg_release (xlator_t *this, fd_t *fd) +dg_release(xlator_t *this, fd_t *fd)  { -        return 0; +    return 0;  }  int32_t -dg_releasedir (xlator_t *this, fd_t *fd) +dg_releasedir(xlator_t *this, fd_t *fd)  { -        return 0; +    return 0;  }  static int -delay_gen_parse_fill_fops (dg_t *dg, char *enable_fops) -{ -        char            *op_no_str = NULL; -        int              op_no = -1; -        int              i = 0; -        int              ret = 0; -        xlator_t        *this = THIS; -        char            *saveptr = NULL; -        char            *dup_enable_fops = NULL; - -        if (strlen (enable_fops) == 0) { -                for (i = GF_FOP_NULL + 1; i < GF_FOP_MAXVALUE; i++) -                        dg->enable[i] = 1; -        } else { -                dup_enable_fops = gf_strdup (enable_fops); -                if (!dup_enable_fops) { -                        ret = -1; -                        goto out; -                } -                op_no_str = strtok_r (dup_enable_fops, ",", &saveptr); -                while (op_no_str) { -                        op_no = gf_fop_int (op_no_str); -                        if (op_no == -1) { -                                gf_log (this->name, GF_LOG_WARNING, -                                        "Wrong option value %s", op_no_str); -                                ret = -1; -                                goto out; -                        } else { -                                dg->enable[op_no] = 1; -                        } - -                        op_no_str = strtok_r (NULL, ",", &saveptr); -                } +delay_gen_parse_fill_fops(dg_t *dg, char *enable_fops) +{ +    char *op_no_str = NULL; +    int op_no = -1; +    int i = 0; +    int ret = 0; +    xlator_t *this = THIS; +    char *saveptr = NULL; +    char *dup_enable_fops = NULL; + +    if (strlen(enable_fops) == 0) { +        for (i = GF_FOP_NULL + 1; i < GF_FOP_MAXVALUE; i++) +            dg->enable[i] = 1; +    } else { +        dup_enable_fops = gf_strdup(enable_fops); +        if (!dup_enable_fops) { +            ret = -1; +            goto out; +        } +        op_no_str = strtok_r(dup_enable_fops, ",", &saveptr); +        while (op_no_str) { +            op_no = gf_fop_int(op_no_str); +            if (op_no == -1) { +                gf_log(this->name, GF_LOG_WARNING, "Wrong option value %s", +                       op_no_str); +                ret = -1; +                goto out; +            } else { +                dg->enable[op_no] = 1; +            } + +            op_no_str = strtok_r(NULL, ",", &saveptr);          } +    }  out: -        GF_FREE (dup_enable_fops); -        return ret; +    GF_FREE(dup_enable_fops); +    return ret;  }  void -delay_gen_set_delay_ppm (dg_t *dg, double percent) +delay_gen_set_delay_ppm(dg_t *dg, double percent)  { -        double ppm; +    double ppm; -        ppm = (percent / 100.0) * (double) DELAY_GRANULARITY; -        dg->delay_ppm = ppm; +    ppm = (percent / 100.0) * (double)DELAY_GRANULARITY; +    dg->delay_ppm = ppm;  }  int32_t -init (xlator_t *this) +init(xlator_t *this)  { -        dg_t            *dg = NULL; -        int32_t          ret = 0; -        double          delay_percent = 0; -        char            *delay_enable_fops = NULL; - -        if (!this->children || this->children->next) { -                gf_log (this->name, GF_LOG_ERROR, -                        "delay-gen not configured with one subvolume"); -                ret = -1; -                goto out; -        } +    dg_t *dg = NULL; +    int32_t ret = 0; +    double delay_percent = 0; +    char *delay_enable_fops = NULL; -        if (!this->parents) { -                gf_log (this->name, GF_LOG_WARNING, -                        "dangling volume. check volfile "); -        } +    if (!this->children || this->children->next) { +        gf_log(this->name, GF_LOG_ERROR, +               "delay-gen not configured with one subvolume"); +        ret = -1; +        goto out; +    } -        dg = GF_CALLOC (1, sizeof (*dg), gf_delay_gen_mt_dg_t); +    if (!this->parents) { +        gf_log(this->name, GF_LOG_WARNING, "dangling volume. check volfile "); +    } -        if (!dg) { -                ret = -1; -                goto out; -        } +    dg = GF_CALLOC(1, sizeof(*dg), gf_delay_gen_mt_dg_t); +    if (!dg) {          ret = -1; +        goto out; +    } -        GF_OPTION_INIT ("delay-percentage", delay_percent, percent, out); -        GF_OPTION_INIT ("enable", delay_enable_fops, str, out); -        GF_OPTION_INIT ("delay-duration", dg->delay_duration, int32, out); +    ret = -1; -        delay_gen_set_delay_ppm (dg, delay_percent); +    GF_OPTION_INIT("delay-percentage", delay_percent, percent, out); +    GF_OPTION_INIT("enable", delay_enable_fops, str, out); +    GF_OPTION_INIT("delay-duration", dg->delay_duration, int32, out); -        ret = delay_gen_parse_fill_fops (dg, delay_enable_fops); -        if (ret) -                goto out; +    delay_gen_set_delay_ppm(dg, delay_percent); + +    ret = delay_gen_parse_fill_fops(dg, delay_enable_fops); +    if (ret) +        goto out; -        this->private = dg; +    this->private = dg; -        ret = 0; +    ret = 0;  out: -        if (ret) -                GF_FREE (dg); -        return ret; +    if (ret) +        GF_FREE(dg); +    return ret;  }  void -fini (xlator_t *this) +fini(xlator_t *this)  { -        GF_FREE (this->private); +    GF_FREE(this->private);  }  int32_t -mem_acct_init (xlator_t *this) +mem_acct_init(xlator_t *this)  { -        int     ret = -1; +    int ret = -1; -        if (!this) -                return ret; - -        ret = xlator_mem_acct_init (this, gf_delay_gen_mt_end + 1); +    if (!this) +        return ret; -        if (ret != 0) { -                gf_log (this->name, GF_LOG_ERROR, "Memory accounting init" -                        " failed"); -                return ret; -        } +    ret = xlator_mem_acct_init(this, gf_delay_gen_mt_end + 1); +    if (ret != 0) { +        gf_log(this->name, GF_LOG_ERROR, +               "Memory accounting init" +               " failed");          return ret; +    } + +    return ret;  }  int32_t -reconfigure (xlator_t *this, dict_t *dict) +reconfigure(xlator_t *this, dict_t *dict)  { -        /*At the moment I don't see any need to implement this. In future -         *if this is needed we can add code here. -         */ -        return 0; +    /*At the moment I don't see any need to implement this. In future +     *if this is needed we can add code here. +     */ +    return 0;  }  int -notify (xlator_t *this, int event, void *data, ...) +notify(xlator_t *this, int event, void *data, ...)  { -        return default_notify (this, event, data); +    return default_notify(this, event, data);  } -  struct xlator_fops fops = { -        .rename               = dg_rename, -        .ipc                  = dg_ipc, -        .setactivelk          = dg_setactivelk, -        .flush                = dg_flush, -        .readdir              = dg_readdir, -        .setxattr             = dg_setxattr, -        .mknod                = dg_mknod, -        .fsetxattr            = dg_fsetxattr, -        .readv                = dg_readv, -        .inodelk              = dg_inodelk, -        .fremovexattr         = dg_fremovexattr, -        .open                 = dg_open, -        .xattrop              = dg_xattrop, -        .entrylk              = dg_entrylk, -        .getactivelk          = dg_getactivelk, -        .finodelk             = dg_finodelk, -        .create               = dg_create, -        .discard              = dg_discard, -        .mkdir                = dg_mkdir, -        .lk                   = dg_lk, -        .writev               = dg_writev, -        .access               = dg_access, -        .lookup               = dg_lookup, -        .rmdir                = dg_rmdir, -        .fallocate            = dg_fallocate, -        .fstat                = dg_fstat, -        .lease                = dg_lease, -        .stat                 = dg_stat, -        .truncate             = dg_truncate, -        .getxattr             = dg_getxattr, -        .symlink              = dg_symlink, -        .zerofill             = dg_zerofill, -        .fsyncdir             = dg_fsyncdir, -        .fgetxattr            = dg_fgetxattr, -        .readdirp             = dg_readdirp, -        .link                 = dg_link, -        .fxattrop             = dg_fxattrop, -        .ftruncate            = dg_ftruncate, -        .rchecksum            = dg_rchecksum, -        .unlink               = dg_unlink, -        .fentrylk             = dg_fentrylk, -        .getspec              = dg_getspec, -        .setattr              = dg_setattr, -        .fsync                = dg_fsync, -        .statfs               = dg_statfs, -        .seek                 = dg_seek, -        .fsetattr             = dg_fsetattr, -        .opendir              = dg_opendir, -        .readlink             = dg_readlink, -        .removexattr          = dg_removexattr, +    .rename = dg_rename, +    .ipc = dg_ipc, +    .setactivelk = dg_setactivelk, +    .flush = dg_flush, +    .readdir = dg_readdir, +    .setxattr = dg_setxattr, +    .mknod = dg_mknod, +    .fsetxattr = dg_fsetxattr, +    .readv = dg_readv, +    .inodelk = dg_inodelk, +    .fremovexattr = dg_fremovexattr, +    .open = dg_open, +    .xattrop = dg_xattrop, +    .entrylk = dg_entrylk, +    .getactivelk = dg_getactivelk, +    .finodelk = dg_finodelk, +    .create = dg_create, +    .discard = dg_discard, +    .mkdir = dg_mkdir, +    .lk = dg_lk, +    .writev = dg_writev, +    .access = dg_access, +    .lookup = dg_lookup, +    .rmdir = dg_rmdir, +    .fallocate = dg_fallocate, +    .fstat = dg_fstat, +    .lease = dg_lease, +    .stat = dg_stat, +    .truncate = dg_truncate, +    .getxattr = dg_getxattr, +    .symlink = dg_symlink, +    .zerofill = dg_zerofill, +    .fsyncdir = dg_fsyncdir, +    .fgetxattr = dg_fgetxattr, +    .readdirp = dg_readdirp, +    .link = dg_link, +    .fxattrop = dg_fxattrop, +    .ftruncate = dg_ftruncate, +    .rchecksum = dg_rchecksum, +    .unlink = dg_unlink, +    .fentrylk = dg_fentrylk, +    .getspec = dg_getspec, +    .setattr = dg_setattr, +    .fsync = dg_fsync, +    .statfs = dg_statfs, +    .seek = dg_seek, +    .fsetattr = dg_fsetattr, +    .opendir = dg_opendir, +    .readlink = dg_readlink, +    .removexattr = dg_removexattr,  };  struct xlator_cbks cbks = { -        .forget               = dg_forget, -        .release              = dg_release, -        .releasedir           = dg_releasedir, +    .forget = dg_forget, +    .release = dg_release, +    .releasedir = dg_releasedir,  };  struct volume_options options[] = { -        { .key  = {"delay-percentage"}, -          .type = GF_OPTION_TYPE_PERCENT, -          .default_value = "10%", -          .description = "Percentage delay of operations when enabled.", -          .op_version  = {GD_OP_VERSION_3_13_0}, -          .flags       = OPT_FLAG_SETTABLE, -          .tags        = {"delay-gen"}, -        }, - -        { .key  = {"delay-duration"}, -          .type = GF_OPTION_TYPE_INT, -          .description = "Delay duration in micro seconds", -          .default_value = "100000", -          .op_version = {GD_OP_VERSION_3_13_0}, -          .flags = OPT_FLAG_SETTABLE, -          .tags  = {"delay-gen"}, -        }, - -        { .key  = {"enable"}, -          .type = GF_OPTION_TYPE_STR, -          .description = "Accepts a string which takes ',' separated fop " -                         "strings to denote which fops are enabled for delay", -          .op_version = {GD_OP_VERSION_3_13_0}, -          .flags = OPT_FLAG_SETTABLE, -          .tags  = {"delay-gen"}, -          .default_value = "", -        }, - -        { .key  = {NULL} } -}; +    { +        .key = {"delay-percentage"}, +        .type = GF_OPTION_TYPE_PERCENT, +        .default_value = "10%", +        .description = "Percentage delay of operations when enabled.", +        .op_version = {GD_OP_VERSION_3_13_0}, +        .flags = OPT_FLAG_SETTABLE, +        .tags = {"delay-gen"}, +    }, + +    { +        .key = {"delay-duration"}, +        .type = GF_OPTION_TYPE_INT, +        .description = "Delay duration in micro seconds", +        .default_value = "100000", +        .op_version = {GD_OP_VERSION_3_13_0}, +        .flags = OPT_FLAG_SETTABLE, +        .tags = {"delay-gen"}, +    }, + +    { +        .key = {"enable"}, +        .type = GF_OPTION_TYPE_STR, +        .description = "Accepts a string which takes ',' separated fop " +                       "strings to denote which fops are enabled for delay", +        .op_version = {GD_OP_VERSION_3_13_0}, +        .flags = OPT_FLAG_SETTABLE, +        .tags = {"delay-gen"}, +        .default_value = "", +    }, + +    {.key = {NULL}}};  | 
