diff options
| -rw-r--r-- | api/src/gfapi.aliases | 31 | ||||
| -rw-r--r-- | api/src/gfapi.map | 26 | ||||
| -rw-r--r-- | api/src/glfs-fops.c | 371 | ||||
| -rw-r--r-- | api/src/glfs.h | 29 | ||||
| -rw-r--r-- | tests/basic/ec/ec-fast-fgetxattr.c | 3 | ||||
| -rw-r--r-- | tests/basic/gfapi/gfapi-async-calls-test.c | 3 | 
6 files changed, 93 insertions, 370 deletions
diff --git a/api/src/gfapi.aliases b/api/src/gfapi.aliases index 854a7d42f8f..a2c6077b6e4 100644 --- a/api/src/gfapi.aliases +++ b/api/src/gfapi.aliases @@ -18,24 +18,30 @@ _pub_glfs_from_glfd _glfs_from_glfd$GFAPI_3.4.0  _pub_glfs_set_xlator_option _glfs_set_xlator_option$GFAPI_3.4.0  _pub_glfs_read _glfs_read$GFAPI_3.4.0  _pub_glfs_write _glfs_write$GFAPI_3.4.0 +_pub_glfs_read_async _glfs_read_async$GFAPI_3.4.0 +_pub_glfs_write_async _glfs_write_async$GFAPI_3.4.0  _pub_glfs_readv _glfs_readv$GFAPI_3.4.0  _pub_glfs_writev _glfs_writev$GFAPI_3.4.0 +_pub_glfs_readv_async _glfs_readv_async$GFAPI_3.4.0 +_pub_glfs_writev_async _glfs_writev_async$GFAPI_3.4.0  _pub_glfs_pread34 _glfs_pread$GFAPI_3.4.0  _pub_glfs_pwrite34 _glfs_pwrite$GFAPI_3.4.0 -_pub_glfs_pread_async34 _glfs_pread_async$GFAPI_3.4.0 -_pub_glfs_pwrite_async34 _glfs_pwrite_async$GFAPI_3.4.0 +_pub_glfs_pread_async _glfs_pread_async$GFAPI_3.4.0 +_pub_glfs_pwrite_async _glfs_pwrite_async$GFAPI_3.4.0  _pub_glfs_preadv _glfs_preadv$GFAPI_3.4.0  _pub_glfs_pwritev _glfs_pwritev$GFAPI_3.4.0 +_pub_glfs_preadv_async _glfs_preadv_async$GFAPI_3.4.0 +_pub_glfs_pwritev_async _glfs_pwritev_async$GFAPI_3.4.0  _pub_glfs_lseek _glfs_lseek$GFAPI_3.4.0  _pub_glfs_ftruncate34 _glfs_ftruncate$GFAPI_3.4.0 -_pub_glfs_ftruncate_async34 _glfs_ftruncate_async$GFAPI_3.4.0 +_pub_glfs_ftruncate_async _glfs_ftruncate_async$GFAPI_3.4.0  _pub_glfs_lstat _glfs_lstat$GFAPI_3.4.0  _pub_glfs_stat _glfs_stat$GFAPI_3.4.0  _pub_glfs_fstat _glfs_fstat$GFAPI_3.4.0  _pub_glfs_fsync34 _glfs_fsync$GFAPI_3.4.0 -_pub_glfs_fsync_async34 _glfs_fsync_async$GFAPI_3.4.0 +_pub_glfs_fsync_async _glfs_fsync_async$GFAPI_3.4.0  _pub_glfs_fdatasync34 _glfs_fdatasync$GFAPI_3.4.0 -_pub_glfs_fdatasync_async34 _glfs_fdatasync_async$GFAPI_3.4.0 +_pub_glfs_fdatasync_async _glfs_fdatasync_async$GFAPI_3.4.0  _pub_glfs_access _glfs_access$GFAPI_3.4.0  _pub_glfs_symlink _glfs_symlink$GFAPI_3.4.0  _pub_glfs_readlink _glfs_readlink$GFAPI_3.4.0 @@ -106,7 +112,9 @@ _pub_glfs_readdir _glfs_readdir$GFAPI_3.5.0  _pub_glfs_readdirplus _glfs_readdirplus$GFAPI_3.5.0  _pub_glfs_fallocate _glfs_fallocate$GFAPI_3.5.0  _pub_glfs_discard _glfs_discard$GFAPI_3.5.0 +_pub_glfs_discard_async _glfs_discard_async$GFAPI_3.5.0  _pub_glfs_zerofill _glfs_zerofill$GFAPI_3.5.0 +_pub_glfs_zerofill_async _glfs_zerofill_async$GFAPI_3.5.0  _pub_glfs_caller_specific_init _glfs_caller_specific_init$GFAPI_3.5.0  _pub_glfs_h_setxattrs _glfs_h_setxattrs$GFAPI_3.5.0 @@ -170,21 +178,8 @@ _pub_glfs_h_lease _glfs_h_lease$GFAPI_4.0.0  _pub_glfs_recall_lease_fd _glfs_recall_lease_fd$GFAPI_future  _pub_glfs_recall_lease_upcall _glfs_recall_lease_upcall$GFAPI_future -_pub_glfs_read_async _glfs_read_async$GFAPI_future -_pub_glfs_write_async _glfs_write_async$GFAPI_future -_pub_glfs_readv_async _glfs_readv_async$GFAPI_future -_pub_glfs_writev_async _glfs_writev_async$GFAPI_future  _pub_glfs_pread _glfs_pread$GFAPI_future  _pub_glfs_pwrite _glfs_pwrite$GFAPI_future -_pub_glfs_pread_async _glfs_pread_async$GFAPI_future -_pub_glfs_pwrite_async _glfs_pwrite_async$GFAPI_future -_pub_glfs_preadv_async _glfs_preadv_async$GFAPI_future -_pub_glfs_pwritev_async _glfs_pwritev_async$GFAPI_future  _pub_glfs_fsync _glfs_fsync$GFAPI_future -_pub_glfs_fsync_async _glfs_fsync_async$GFAPI_future  _pub_glfs_fdatasync _glfs_fdatasync$GFAPI_future -_pub_glfs_fdatasync_async _glfs_fdatasync_async$GFAPI_future  _pub_glfs_ftruncate _glfs_ftruncate$GFAPI_future -_pub_glfs_ftruncate_async _glfs_ftruncate_async$GFAPI_future -_pub_glfs_discard_async _glfs_discard_async$GFAPI_future -_pub_glfs_zerofill_async _glfs_zerofill_async$GFAPI_future diff --git a/api/src/gfapi.map b/api/src/gfapi.map index 29a25fbf2e4..e1b37e6855a 100644 --- a/api/src/gfapi.map +++ b/api/src/gfapi.map @@ -24,14 +24,25 @@ GFAPI_3.4.0 {  		glfs_set_xlator_option;  		glfs_read;  		glfs_write; +                glfs_read_async; +                glfs_write_async;  		glfs_readv;  		glfs_writev; +                glfs_readv_async; +                glfs_writev_async; +                glfs_pread_async; +                glfs_pwrite_async;  		glfs_preadv;  		glfs_pwritev; +                glfs_preadv_async; +                glfs_pwritev_async;  		glfs_lseek; +                glfs_ftruncate_async;  		glfs_lstat;  		glfs_stat;  		glfs_fstat; +                glfs_fsync_async; +                glfs_fdatasync_async;  		glfs_access;  		glfs_symlink;  		glfs_readlink; @@ -119,7 +130,9 @@ GFAPI_3.5.0 {  		glfs_readdirplus;  		glfs_fallocate;  		glfs_discard; +                glfs_discard_async;  		glfs_zerofill; +                glfs_zerofill_async;  		glfs_caller_specific_init;  		glfs_h_setxattrs;  } GFAPI_3.4.2; @@ -225,23 +238,10 @@ GFAPI_4.0.0 {  GFAPI_future {  	global: -                glfs_read_async; -                glfs_write_async; -                glfs_readv_async; -                glfs_writev_async;                  glfs_pread;                  glfs_pwrite; -                glfs_pread_async; -                glfs_pwrite_async; -                glfs_preadv_async; -                glfs_pwritev_async;                  glfs_fsync; -                glfs_fsync_async;                  glfs_fdatasync; -                glfs_fdatasync_async;                  glfs_ftruncate; -                glfs_ftruncate_async; -                glfs_discard_async; -                glfs_zerofill_async;  } GFAPI_4.0.0; diff --git a/api/src/glfs-fops.c b/api/src/glfs-fops.c index f6786845a4f..ed46ab44bea 100644 --- a/api/src/glfs-fops.c +++ b/api/src/glfs-fops.c @@ -920,26 +920,19 @@ struct glfs_io {      struct iovec *iov;      int count;      int flags; -    gf_boolean_t oldcb; -    union { -        glfs_io_cbk34 fn34; -        glfs_io_cbk fn; -    }; +    glfs_io_cbk fn;      void *data;  };  static int  glfs_io_async_cbk(int op_ret, int op_errno, call_frame_t *frame, void *cookie, -                  struct iovec *iovec, int count, struct iatt *prebuf, -                  struct iatt *postbuf) +                  struct iovec *iovec, int count)  {      struct glfs_io *gio = NULL;      xlator_t *subvol = NULL;      struct glfs *fs = NULL;      struct glfs_fd *glfd = NULL;      int ret = -1; -    struct stat prestat = {}, *prestatp = NULL; -    struct stat poststat = {}, *poststatp = NULL;      GF_VALIDATE_OR_GOTO("gfapi", frame, inval);      GF_VALIDATE_OR_GOTO("gfapi", cookie, inval); @@ -970,21 +963,8 @@ glfs_io_async_cbk(int op_ret, int op_errno, call_frame_t *frame, void *cookie,  out:      errno = op_errno; -    if (gio->oldcb) { -        gio->fn34(gio->glfd, op_ret, gio->data); -    } else { -        if (prebuf) { -            prestatp = &prestat; -            glfs_iatt_to_stat(fs, prebuf, prestatp); -        } +    gio->fn(gio->glfd, op_ret, gio->data); -        if (postbuf) { -            poststatp = &poststat; -            glfs_iatt_to_stat(fs, postbuf, poststatp); -        } - -        gio->fn(gio->glfd, op_ret, prestatp, poststatp, gio->data); -    }  err:      fd_unref(glfd->fd);      /* Since the async operation is complete @@ -1008,16 +988,15 @@ glfs_preadv_async_cbk(call_frame_t *frame, void *cookie, xlator_t *this,                        int op_ret, int op_errno, struct iovec *iovec, int count,                        struct iatt *stbuf, struct iobref *iobref, dict_t *xdata)  { -    glfs_io_async_cbk(op_ret, op_errno, frame, cookie, iovec, count, NULL, -                      stbuf); +    glfs_io_async_cbk(op_ret, op_errno, frame, cookie, iovec, count);      return 0;  } -static int -glfs_preadv_async_common(struct glfs_fd *glfd, const struct iovec *iovec, -                         int count, off_t offset, int flags, gf_boolean_t oldcb, -                         glfs_io_cbk fn, void *data) +int +pub_glfs_preadv_async(struct glfs_fd *glfd, const struct iovec *iovec, +                      int count, off_t offset, int flags, glfs_io_cbk fn, +                      void *data)  {      struct glfs_io *gio = NULL;      int ret = 0; @@ -1074,7 +1053,6 @@ glfs_preadv_async_common(struct glfs_fd *glfd, const struct iovec *iovec,      gio->count = count;      gio->offset = offset;      gio->flags = flags; -    gio->oldcb = oldcb;      gio->fn = fn;      gio->data = data; @@ -1114,47 +1092,7 @@ invalid_fs:      return -1;  } -int -pub_glfs_preadv_async34(struct glfs_fd *glfd, const struct iovec *iovec, -                        int count, off_t offset, int flags, glfs_io_cbk34 fn, -                        void *data) -{ -    return glfs_preadv_async_common(glfd, iovec, count, offset, flags, _gf_true, -                                    (void *)fn, data); -} - -GFAPI_SYMVER_PUBLIC(glfs_preadv_async34, glfs_preadv_async, 3.4.0); - -int -pub_glfs_preadv_async(struct glfs_fd *glfd, const struct iovec *iovec, -                      int count, off_t offset, int flags, glfs_io_cbk fn, -                      void *data) -{ -    return glfs_preadv_async_common(glfd, iovec, count, offset, flags, -                                    _gf_false, fn, data); -} - -GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_preadv_async, future); - -int -pub_glfs_read_async34(struct glfs_fd *glfd, void *buf, size_t count, int flags, -                      glfs_io_cbk34 fn, void *data) -{ -    struct iovec iov = { -        0, -    }; -    ssize_t ret = 0; - -    iov.iov_base = buf; -    iov.iov_len = count; - -    ret = glfs_preadv_async_common(glfd, &iov, 1, glfd->offset, flags, _gf_true, -                                   (void *)fn, data); - -    return ret; -} - -GFAPI_SYMVER_PUBLIC(glfs_read_async34, glfs_read_async, 3.4.0); +GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_preadv_async, 3.4.0);  int  pub_glfs_read_async(struct glfs_fd *glfd, void *buf, size_t count, int flags, @@ -1168,33 +1106,12 @@ pub_glfs_read_async(struct glfs_fd *glfd, void *buf, size_t count, int flags,      iov.iov_base = buf;      iov.iov_len = count; -    ret = glfs_preadv_async_common(glfd, &iov, 1, glfd->offset, flags, -                                   _gf_false, fn, data); - -    return ret; -} - -GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_read_async, future); - -int -pub_glfs_pread_async34(struct glfs_fd *glfd, void *buf, size_t count, -                       off_t offset, int flags, glfs_io_cbk34 fn, void *data) -{ -    struct iovec iov = { -        0, -    }; -    ssize_t ret = 0; - -    iov.iov_base = buf; -    iov.iov_len = count; - -    ret = glfs_preadv_async_common(glfd, &iov, 1, offset, flags, _gf_true, -                                   (void *)fn, data); +    ret = pub_glfs_preadv_async(glfd, &iov, 1, glfd->offset, flags, fn, data);      return ret;  } -GFAPI_SYMVER_PUBLIC(glfs_pread_async34, glfs_pread_async, 3.4.0); +GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_read_async, 3.4.0);  int  pub_glfs_pread_async(struct glfs_fd *glfd, void *buf, size_t count, @@ -1208,26 +1125,12 @@ pub_glfs_pread_async(struct glfs_fd *glfd, void *buf, size_t count,      iov.iov_base = buf;      iov.iov_len = count; -    ret = glfs_preadv_async_common(glfd, &iov, 1, offset, flags, _gf_false, fn, -                                   data); - -    return ret; -} - -GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_pread_async, future); - -int -pub_glfs_readv_async34(struct glfs_fd *glfd, const struct iovec *iov, int count, -                       int flags, glfs_io_cbk34 fn, void *data) -{ -    ssize_t ret = 0; +    ret = pub_glfs_preadv_async(glfd, &iov, 1, offset, flags, fn, data); -    ret = glfs_preadv_async_common(glfd, iov, count, glfd->offset, flags, -                                   _gf_true, (void *)fn, data);      return ret;  } -GFAPI_SYMVER_PUBLIC(glfs_readv_async34, glfs_readv_async, 3.4.0); +GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_pread_async, 3.4.0);  int  pub_glfs_readv_async(struct glfs_fd *glfd, const struct iovec *iov, int count, @@ -1235,12 +1138,12 @@ pub_glfs_readv_async(struct glfs_fd *glfd, const struct iovec *iov, int count,  {      ssize_t ret = 0; -    ret = glfs_preadv_async_common(glfd, iov, count, glfd->offset, flags, -                                   _gf_false, fn, data); +    ret = pub_glfs_preadv_async(glfd, iov, count, glfd->offset, flags, fn, +                                data);      return ret;  } -GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_readv_async, future); +GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_readv_async, 3.4.0);  static ssize_t  glfs_pwritev_common(struct glfs_fd *glfd, const struct iovec *iovec, int iovcnt, @@ -1414,16 +1317,15 @@ glfs_pwritev_async_cbk(call_frame_t *frame, void *cookie, xlator_t *this,                         int op_ret, int op_errno, struct iatt *prebuf,                         struct iatt *postbuf, dict_t *xdata)  { -    glfs_io_async_cbk(op_ret, op_errno, frame, cookie, NULL, 0, prebuf, -                      postbuf); +    glfs_io_async_cbk(op_ret, op_errno, frame, cookie, NULL, 0);      return 0;  } -static int -glfs_pwritev_async_common(struct glfs_fd *glfd, const struct iovec *iovec, -                          int count, off_t offset, int flags, -                          gf_boolean_t oldcb, glfs_io_cbk fn, void *data) +int +pub_glfs_pwritev_async(struct glfs_fd *glfd, const struct iovec *iovec, +                       int count, off_t offset, int flags, glfs_io_cbk fn, +                       void *data)  {      struct glfs_io *gio = NULL;      int ret = -1; @@ -1464,7 +1366,6 @@ glfs_pwritev_async_common(struct glfs_fd *glfd, const struct iovec *iovec,      gio->glfd = glfd;      gio->offset = offset;      gio->flags = flags; -    gio->oldcb = oldcb;      gio->fn = fn;      gio->data = data;      gio->count = 1; @@ -1524,47 +1425,7 @@ invalid_fs:      return ret;  } -int -pub_glfs_pwritev_async34(struct glfs_fd *glfd, const struct iovec *iovec, -                         int count, off_t offset, int flags, glfs_io_cbk34 fn, -                         void *data) -{ -    return glfs_pwritev_async_common(glfd, iovec, count, offset, flags, -                                     _gf_true, (void *)fn, data); -} - -GFAPI_SYMVER_PUBLIC(glfs_pwritev_async34, glfs_pwritev_async, 3.4.0); - -int -pub_glfs_pwritev_async(struct glfs_fd *glfd, const struct iovec *iovec, -                       int count, off_t offset, int flags, glfs_io_cbk fn, -                       void *data) -{ -    return glfs_pwritev_async_common(glfd, iovec, count, offset, flags, -                                     _gf_false, fn, data); -} - -GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_pwritev_async, future); - -int -pub_glfs_write_async34(struct glfs_fd *glfd, const void *buf, size_t count, -                       int flags, glfs_io_cbk34 fn, void *data) -{ -    struct iovec iov = { -        0, -    }; -    ssize_t ret = 0; - -    iov.iov_base = (void *)buf; -    iov.iov_len = count; - -    ret = glfs_pwritev_async_common(glfd, &iov, 1, glfd->offset, flags, -                                    _gf_true, (void *)fn, data); - -    return ret; -} - -GFAPI_SYMVER_PUBLIC(glfs_write_async34, glfs_write_async, 3.4.0); +GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_pwritev_async, 3.4.0);  int  pub_glfs_write_async(struct glfs_fd *glfd, const void *buf, size_t count, @@ -1578,33 +1439,12 @@ pub_glfs_write_async(struct glfs_fd *glfd, const void *buf, size_t count,      iov.iov_base = (void *)buf;      iov.iov_len = count; -    ret = glfs_pwritev_async_common(glfd, &iov, 1, glfd->offset, flags, -                                    _gf_false, fn, data); - -    return ret; -} - -GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_write_async, future); - -int -pub_glfs_pwrite_async34(struct glfs_fd *glfd, const void *buf, int count, -                        off_t offset, int flags, glfs_io_cbk34 fn, void *data) -{ -    struct iovec iov = { -        0, -    }; -    ssize_t ret = 0; - -    iov.iov_base = (void *)buf; -    iov.iov_len = count; - -    ret = glfs_pwritev_async_common(glfd, &iov, 1, offset, flags, _gf_true, -                                    (void *)fn, data); +    ret = pub_glfs_pwritev_async(glfd, &iov, 1, glfd->offset, flags, fn, data);      return ret;  } -GFAPI_SYMVER_PUBLIC(glfs_pwrite_async34, glfs_pwrite_async, 3.4.0); +GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_write_async, 3.4.0);  int  pub_glfs_pwrite_async(struct glfs_fd *glfd, const void *buf, int count, @@ -1618,26 +1458,12 @@ pub_glfs_pwrite_async(struct glfs_fd *glfd, const void *buf, int count,      iov.iov_base = (void *)buf;      iov.iov_len = count; -    ret = glfs_pwritev_async_common(glfd, &iov, 1, offset, flags, _gf_false, fn, -                                    data); - -    return ret; -} - -GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_pwrite_async, future); - -int -pub_glfs_writev_async34(struct glfs_fd *glfd, const struct iovec *iov, -                        int count, int flags, glfs_io_cbk34 fn, void *data) -{ -    ssize_t ret = 0; +    ret = pub_glfs_pwritev_async(glfd, &iov, 1, offset, flags, fn, data); -    ret = glfs_pwritev_async_common(glfd, iov, count, glfd->offset, flags, -                                    _gf_true, (void *)fn, data);      return ret;  } -GFAPI_SYMVER_PUBLIC(glfs_writev_async34, glfs_writev_async, 3.4.0); +GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_pwrite_async, 3.4.0);  int  pub_glfs_writev_async(struct glfs_fd *glfd, const struct iovec *iov, int count, @@ -1645,12 +1471,12 @@ pub_glfs_writev_async(struct glfs_fd *glfd, const struct iovec *iov, int count,  {      ssize_t ret = 0; -    ret = glfs_pwritev_async_common(glfd, iov, count, glfd->offset, flags, -                                    _gf_false, fn, data); +    ret = pub_glfs_pwritev_async(glfd, iov, count, glfd->offset, flags, fn, +                                 data);      return ret;  } -GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_writev_async, future); +GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_writev_async, 3.4.0);  static int  glfs_fsync_common(struct glfs_fd *glfd, struct stat *prestat, @@ -1738,15 +1564,14 @@ glfs_fsync_async_cbk(call_frame_t *frame, void *cookie, xlator_t *this,                       int32_t op_ret, int32_t op_errno, struct iatt *prebuf,                       struct iatt *postbuf, dict_t *xdata)  { -    glfs_io_async_cbk(op_ret, op_errno, frame, cookie, NULL, 0, prebuf, -                      postbuf); +    glfs_io_async_cbk(op_ret, op_errno, frame, cookie, NULL, 0);      return 0;  }  static int -glfs_fsync_async_common(struct glfs_fd *glfd, gf_boolean_t oldcb, -                        glfs_io_cbk fn, void *data, int dataonly) +glfs_fsync_async_common(struct glfs_fd *glfd, glfs_io_cbk fn, void *data, +                        int dataonly)  {      struct glfs_io *gio = NULL;      int ret = 0; @@ -1790,7 +1615,6 @@ glfs_fsync_async_common(struct glfs_fd *glfd, gf_boolean_t oldcb,      gio->op = GF_FOP_FSYNC;      gio->glfd = glfd;      gio->flags = dataonly; -    gio->oldcb = oldcb;      gio->fn = fn;      gio->data = data; @@ -1814,24 +1638,6 @@ out:  }  int -pub_glfs_fsync_async34(struct glfs_fd *glfd, glfs_io_cbk34 fn, void *data) -{ -    int ret = -1; - -    DECLARE_OLD_THIS; -    __GLFS_ENTRY_VALIDATE_FD(glfd, invalid_fs); - -    ret = glfs_fsync_async_common(glfd, _gf_true, (void *)fn, data, 0); - -    __GLFS_EXIT_FS; - -invalid_fs: -    return ret; -} - -GFAPI_SYMVER_PUBLIC(glfs_fsync_async34, glfs_fsync_async, 3.4.0); - -int  pub_glfs_fsync_async(struct glfs_fd *glfd, glfs_io_cbk fn, void *data)  {      int ret = -1; @@ -1839,7 +1645,7 @@ pub_glfs_fsync_async(struct glfs_fd *glfd, glfs_io_cbk fn, void *data)      DECLARE_OLD_THIS;      __GLFS_ENTRY_VALIDATE_FD(glfd, invalid_fs); -    ret = glfs_fsync_async_common(glfd, _gf_false, fn, data, 0); +    ret = glfs_fsync_async_common(glfd, fn, data, 0);      __GLFS_EXIT_FS; @@ -1847,7 +1653,7 @@ invalid_fs:      return ret;  } -GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_fsync_async, future); +GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_fsync_async, 3.4.0);  static int  glfs_fdatasync_common(struct glfs_fd *glfd, struct stat *prestat, @@ -1931,24 +1737,6 @@ pub_glfs_fdatasync(struct glfs_fd *glfd, struct stat *prestat,  GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_fdatasync, future);  int -pub_glfs_fdatasync_async34(struct glfs_fd *glfd, glfs_io_cbk34 fn, void *data) -{ -    int ret = -1; - -    DECLARE_OLD_THIS; -    __GLFS_ENTRY_VALIDATE_FD(glfd, invalid_fs); - -    ret = glfs_fsync_async_common(glfd, _gf_true, (void *)fn, data, 1); - -    __GLFS_EXIT_FS; - -invalid_fs: -    return ret; -} - -GFAPI_SYMVER_PUBLIC(glfs_fdatasync_async34, glfs_fdatasync_async, 3.4.0); - -int  pub_glfs_fdatasync_async(struct glfs_fd *glfd, glfs_io_cbk fn, void *data)  {      int ret = -1; @@ -1956,7 +1744,7 @@ pub_glfs_fdatasync_async(struct glfs_fd *glfd, glfs_io_cbk fn, void *data)      DECLARE_OLD_THIS;      __GLFS_ENTRY_VALIDATE_FD(glfd, invalid_fs); -    ret = glfs_fsync_async_common(glfd, _gf_false, fn, data, 1); +    ret = glfs_fsync_async_common(glfd, fn, data, 1);      __GLFS_EXIT_FS; @@ -1964,7 +1752,7 @@ invalid_fs:      return ret;  } -GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_fdatasync_async, future); +GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_fdatasync_async, 3.4.0);  static int  glfs_ftruncate_common(struct glfs_fd *glfd, off_t offset, struct stat *prestat, @@ -2100,15 +1888,14 @@ glfs_ftruncate_async_cbk(call_frame_t *frame, void *cookie, xlator_t *this,                           int32_t op_ret, int32_t op_errno, struct iatt *prebuf,                           struct iatt *postbuf, dict_t *xdata)  { -    glfs_io_async_cbk(op_ret, op_errno, frame, cookie, NULL, 0, prebuf, -                      postbuf); +    glfs_io_async_cbk(op_ret, op_errno, frame, cookie, NULL, 0);      return 0;  } -static int -glfs_ftruncate_async_common(struct glfs_fd *glfd, off_t offset, -                            gf_boolean_t oldcb, glfs_io_cbk fn, void *data) +int +pub_glfs_ftruncate_async(struct glfs_fd *glfd, off_t offset, glfs_io_cbk fn, +                         void *data)  {      struct glfs_io *gio = NULL;      int ret = -1; @@ -2152,7 +1939,6 @@ glfs_ftruncate_async_common(struct glfs_fd *glfd, off_t offset,      gio->op = GF_FOP_FTRUNCATE;      gio->glfd = glfd;      gio->offset = offset; -    gio->oldcb = oldcb;      gio->fn = fn;      gio->data = data; @@ -2187,24 +1973,7 @@ invalid_fs:      return ret;  } -int -pub_glfs_ftruncate_async34(struct glfs_fd *glfd, off_t offset, glfs_io_cbk34 fn, -                           void *data) -{ -    return glfs_ftruncate_async_common(glfd, offset, _gf_true, (void *)fn, -                                       data); -} - -GFAPI_SYMVER_PUBLIC(glfs_ftruncate_async34, glfs_ftruncate_async, 3.4.0); - -int -pub_glfs_ftruncate_async(struct glfs_fd *glfd, off_t offset, glfs_io_cbk fn, -                         void *data) -{ -    return glfs_ftruncate_async_common(glfd, offset, _gf_false, fn, data); -} - -GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_ftruncate_async, future); +GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_ftruncate_async, 3.4.0);  int  pub_glfs_access(struct glfs *fs, const char *path, int mode) @@ -3022,15 +2791,14 @@ glfs_discard_async_cbk(call_frame_t *frame, void *cookie, xlator_t *this,                         struct iatt *preop_stbuf, struct iatt *postop_stbuf,                         dict_t *xdata)  { -    glfs_io_async_cbk(op_ret, op_errno, frame, cookie, NULL, 0, preop_stbuf, -                      postop_stbuf); +    glfs_io_async_cbk(op_ret, op_errno, frame, cookie, NULL, 0);      return 0;  } -static int -glfs_discard_async_common(struct glfs_fd *glfd, off_t offset, size_t len, -                          gf_boolean_t oldcb, glfs_io_cbk fn, void *data) +int +pub_glfs_discard_async(struct glfs_fd *glfd, off_t offset, size_t len, +                       glfs_io_cbk fn, void *data)  {      struct glfs_io *gio = NULL;      int ret = -1; @@ -3075,7 +2843,6 @@ glfs_discard_async_common(struct glfs_fd *glfd, off_t offset, size_t len,      gio->glfd = glfd;      gio->offset = offset;      gio->count = len; -    gio->oldcb = oldcb;      gio->fn = fn;      gio->data = data; @@ -3106,24 +2873,7 @@ invalid_fs:      return ret;  } -int -pub_glfs_discard_async35(struct glfs_fd *glfd, off_t offset, size_t len, -                         glfs_io_cbk34 fn, void *data) -{ -    return glfs_discard_async_common(glfd, offset, len, _gf_true, (void *)fn, -                                     data); -} - -GFAPI_SYMVER_PUBLIC(glfs_discard_async35, glfs_discard_async, 3.5.0); - -int -pub_glfs_discard_async(struct glfs_fd *glfd, off_t offset, size_t len, -                       glfs_io_cbk fn, void *data) -{ -    return glfs_discard_async_common(glfd, offset, len, _gf_false, fn, data); -} - -GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_discard_async, future); +GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_discard_async, 3.5.0);  static int  glfs_zerofill_async_cbk(call_frame_t *frame, void *cookie, xlator_t *this, @@ -3131,15 +2881,14 @@ glfs_zerofill_async_cbk(call_frame_t *frame, void *cookie, xlator_t *this,                          struct iatt *preop_stbuf, struct iatt *postop_stbuf,                          dict_t *xdata)  { -    glfs_io_async_cbk(op_ret, op_errno, frame, cookie, NULL, 0, preop_stbuf, -                      postop_stbuf); +    glfs_io_async_cbk(op_ret, op_errno, frame, cookie, NULL, 0);      return 0;  } -static int -glfs_zerofill_async_common(struct glfs_fd *glfd, off_t offset, off_t len, -                           gf_boolean_t oldcb, glfs_io_cbk fn, void *data) +int +pub_glfs_zerofill_async(struct glfs_fd *glfd, off_t offset, off_t len, +                        glfs_io_cbk fn, void *data)  {      struct glfs_io *gio = NULL;      int ret = -1; @@ -3184,7 +2933,6 @@ glfs_zerofill_async_common(struct glfs_fd *glfd, off_t offset, off_t len,      gio->glfd = glfd;      gio->offset = offset;      gio->count = len; -    gio->oldcb = oldcb;      gio->fn = fn;      gio->data = data; @@ -3217,24 +2965,7 @@ invalid_fs:      return ret;  } -int -pub_glfs_zerofill_async35(struct glfs_fd *glfd, off_t offset, off_t len, -                          glfs_io_cbk34 fn, void *data) -{ -    return glfs_zerofill_async_common(glfd, offset, len, _gf_true, (void *)fn, -                                      data); -} - -GFAPI_SYMVER_PUBLIC(glfs_zerofill_async35, glfs_zerofill_async, 3.5.0); - -int -pub_glfs_zerofill_async(struct glfs_fd *glfd, off_t offset, off_t len, -                        glfs_io_cbk fn, void *data) -{ -    return glfs_zerofill_async_common(glfd, offset, len, _gf_false, fn, data); -} - -GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_zerofill_async, future); +GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_zerofill_async, 3.5.0);  void  gf_dirent_to_dirent(gf_dirent_t *gf_dirent, struct dirent *dirent) diff --git a/api/src/glfs.h b/api/src/glfs.h index a007602fc8d..0673ca9505c 100644 --- a/api/src/glfs.h +++ b/api/src/glfs.h @@ -506,8 +506,7 @@ glfs_set_xlator_option(glfs_t *fs, const char *xlator, const char *key,    in a common callback function.  */ -typedef void (*glfs_io_cbk)(glfs_fd_t *fd, ssize_t ret, struct stat *prestat, -                            struct stat *poststat, void *data); +typedef void (*glfs_io_cbk)(glfs_fd_t *fd, ssize_t ret, void *data);  // glfs_{read,write}[_async] @@ -522,12 +521,12 @@ glfs_write(glfs_fd_t *fd, const void *buf, size_t count, int flags) __THROW  int  glfs_read_async(glfs_fd_t *fd, void *buf, size_t count, int flags,                  glfs_io_cbk fn, void *data) __THROW -    GFAPI_PUBLIC(glfs_read_async, future); +    GFAPI_PUBLIC(glfs_read_async, 3.4.0);  int  glfs_write_async(glfs_fd_t *fd, const void *buf, size_t count, int flags,                   glfs_io_cbk fn, void *data) __THROW -    GFAPI_PUBLIC(glfs_write_async, future); +    GFAPI_PUBLIC(glfs_write_async, 3.4.0);  // glfs_{read,write}v[_async] @@ -542,12 +541,12 @@ glfs_writev(glfs_fd_t *fd, const struct iovec *iov, int iovcnt,  int  glfs_readv_async(glfs_fd_t *fd, const struct iovec *iov, int count, int flags,                   glfs_io_cbk fn, void *data) __THROW -    GFAPI_PUBLIC(glfs_readv_async, future); +    GFAPI_PUBLIC(glfs_readv_async, 3.4.0);  int  glfs_writev_async(glfs_fd_t *fd, const struct iovec *iov, int count, int flags,                    glfs_io_cbk fn, void *data) __THROW -    GFAPI_PUBLIC(glfs_writev_async, future); +    GFAPI_PUBLIC(glfs_writev_async, 3.4.0);  // glfs_p{read,write}[_async] @@ -563,12 +562,12 @@ glfs_pwrite(glfs_fd_t *fd, const void *buf, size_t count, off_t offset,  int  glfs_pread_async(glfs_fd_t *fd, void *buf, size_t count, off_t offset,                   int flags, glfs_io_cbk fn, void *data) __THROW -    GFAPI_PUBLIC(glfs_pread_async, future); +    GFAPI_PUBLIC(glfs_pread_async, 3.4.0);  int  glfs_pwrite_async(glfs_fd_t *fd, const void *buf, int count, off_t offset,                    int flags, glfs_io_cbk fn, void *data) __THROW -    GFAPI_PUBLIC(glfs_pwrite_async, future); +    GFAPI_PUBLIC(glfs_pwrite_async, 3.4.0);  // glfs_p{read,write}v[_async] @@ -583,12 +582,12 @@ glfs_pwritev(glfs_fd_t *fd, const struct iovec *iov, int iovcnt, off_t offset,  int  glfs_preadv_async(glfs_fd_t *fd, const struct iovec *iov, int count,                    off_t offset, int flags, glfs_io_cbk fn, void *data) __THROW -    GFAPI_PUBLIC(glfs_preadv_async, future); +    GFAPI_PUBLIC(glfs_preadv_async, 3.4.0);  int  glfs_pwritev_async(glfs_fd_t *fd, const struct iovec *iov, int count,                     off_t offset, int flags, glfs_io_cbk fn, void *data) __THROW -    GFAPI_PUBLIC(glfs_pwritev_async, future); +    GFAPI_PUBLIC(glfs_pwritev_async, 3.4.0);  off_t  glfs_lseek(glfs_fd_t *fd, off_t offset, int whence) __THROW @@ -606,7 +605,7 @@ glfs_ftruncate(glfs_fd_t *fd, off_t length, struct stat *prestat,  int  glfs_ftruncate_async(glfs_fd_t *fd, off_t length, glfs_io_cbk fn,                       void *data) __THROW -    GFAPI_PUBLIC(glfs_ftruncate_async, future); +    GFAPI_PUBLIC(glfs_ftruncate_async, 3.4.0);  int  glfs_lstat(glfs_t *fs, const char *path, struct stat *buf) __THROW @@ -626,7 +625,7 @@ glfs_fsync(glfs_fd_t *fd, struct stat *prestat, struct stat *poststat) __THROW  int  glfs_fsync_async(glfs_fd_t *fd, glfs_io_cbk fn, void *data) __THROW -    GFAPI_PUBLIC(glfs_fsync_async, future); +    GFAPI_PUBLIC(glfs_fsync_async, 3.4.0);  int  glfs_fdatasync(glfs_fd_t *fd, struct stat *prestat, @@ -635,7 +634,7 @@ glfs_fdatasync(glfs_fd_t *fd, struct stat *prestat,  int  glfs_fdatasync_async(glfs_fd_t *fd, glfs_io_cbk fn, void *data) __THROW -    GFAPI_PUBLIC(glfs_fdatasync_async, future); +    GFAPI_PUBLIC(glfs_fdatasync_async, 3.4.0);  int  glfs_access(glfs_t *fs, const char *path, int mode) __THROW @@ -817,7 +816,7 @@ glfs_discard(glfs_fd_t *fd, off_t offset, size_t len) __THROW  int  glfs_discard_async(glfs_fd_t *fd, off_t length, size_t lent, glfs_io_cbk fn, -                   void *data) __THROW GFAPI_PUBLIC(glfs_discard_async, future); +                   void *data) __THROW GFAPI_PUBLIC(glfs_discard_async, 3.5.0);  int  glfs_zerofill(glfs_fd_t *fd, off_t offset, off_t len) __THROW @@ -826,7 +825,7 @@ glfs_zerofill(glfs_fd_t *fd, off_t offset, off_t len) __THROW  int  glfs_zerofill_async(glfs_fd_t *fd, off_t length, off_t len, glfs_io_cbk fn,                      void *data) __THROW -    GFAPI_PUBLIC(glfs_zerofill_async, future); +    GFAPI_PUBLIC(glfs_zerofill_async, 3.5.0);  char *  glfs_getcwd(glfs_t *fs, char *buf, size_t size) __THROW diff --git a/tests/basic/ec/ec-fast-fgetxattr.c b/tests/basic/ec/ec-fast-fgetxattr.c index bf982151861..7fb1aad12c7 100644 --- a/tests/basic/ec/ec-fast-fgetxattr.c +++ b/tests/basic/ec/ec-fast-fgetxattr.c @@ -30,8 +30,7 @@ fill_iov(struct iovec *iov, char fillchar, int count)  }  void -write_async_cbk(glfs_fd_t *fd, ssize_t ret, struct stat *prestat, -                struct stat *poststat, void *cookie) +write_async_cbk(glfs_fd_t *fd, ssize_t ret, void *cookie)  {      if (ret < 0) {          fprintf(stderr, "glfs_write failed"); diff --git a/tests/basic/gfapi/gfapi-async-calls-test.c b/tests/basic/gfapi/gfapi-async-calls-test.c index 5a291c3c76b..2ebe1f8a742 100644 --- a/tests/basic/gfapi/gfapi-async-calls-test.c +++ b/tests/basic/gfapi/gfapi-async-calls-test.c @@ -76,8 +76,7 @@ out:  }  void -write_async_cbk(glfs_fd_t *fd, ssize_t ret, struct stat *prestat, -                struct stat *poststat, void *cookie) +write_async_cbk(glfs_fd_t *fd, ssize_t ret, void *cookie)  {      if (ret < 0) {          LOG_ERR("glfs_write failed");  | 
