diff options
Diffstat (limited to 'xlators/features/quota/src/quota.c')
| -rw-r--r-- | xlators/features/quota/src/quota.c | 309 | 
1 files changed, 165 insertions, 144 deletions
diff --git a/xlators/features/quota/src/quota.c b/xlators/features/quota/src/quota.c index 42bcc21836d..10b61721fb3 100644 --- a/xlators/features/quota/src/quota.c +++ b/xlators/features/quota/src/quota.c @@ -194,7 +194,8 @@ out:  int32_t  quota_validate_cbk (call_frame_t *frame, void *cookie, xlator_t *this, -                    int32_t op_ret, int32_t op_errno, dict_t *dict) +                    int32_t op_ret, int32_t op_errno, dict_t *dict, +                    dict_t *xdata)  {          quota_local_t     *local          = NULL;          uint32_t           validate_count = 0, link_count = 0; @@ -457,7 +458,7 @@ validate:          STACK_WIND (frame, quota_validate_cbk, FIRST_CHILD(this),                      FIRST_CHILD(this)->fops->getxattr, &local->validate_loc, -                    QUOTA_SIZE_KEY); +                    QUOTA_SIZE_KEY, NULL);  loc_fill_failed:          inode_unref (_inode); @@ -803,7 +804,7 @@ out:  int32_t  quota_writev_cbk (call_frame_t *frame, void *cookie, xlator_t *this,                    int32_t op_ret, int32_t op_errno, struct iatt *prebuf, -                  struct iatt *postbuf) +                  struct iatt *postbuf, dict_t *xdata)  {          int32_t                  ret            = 0;          uint64_t                 ctx_int        = 0; @@ -847,7 +848,8 @@ quota_writev_cbk (call_frame_t *frame, void *cookie, xlator_t *this,          }  out: -        QUOTA_STACK_UNWIND (writev, frame, op_ret, op_errno, prebuf, postbuf); +        QUOTA_STACK_UNWIND (writev, frame, op_ret, op_errno, prebuf, postbuf, +                            xdata);          return 0;  } @@ -856,7 +858,7 @@ out:  int32_t  quota_writev_helper (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) +                     uint32_t flags, struct iobref *iobref, dict_t *xdata)  {          quota_local_t *local    = NULL;          int32_t        op_errno = EINVAL; @@ -874,11 +876,11 @@ quota_writev_helper (call_frame_t *frame, xlator_t *this, fd_t *fd,          STACK_WIND (frame, quota_writev_cbk, FIRST_CHILD(this),                      FIRST_CHILD(this)->fops->writev, fd, vector, count, off, -                    flags, iobref); +                    flags, iobref, xdata);          return 0;  unwind: -        QUOTA_STACK_UNWIND (writev, frame, -1, op_errno, NULL, NULL); +        QUOTA_STACK_UNWIND (writev, frame, -1, op_errno, NULL, NULL, NULL);          return 0;  } @@ -886,7 +888,7 @@ unwind:  int32_t  quota_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) +              uint32_t flags, struct iobref *iobref, dict_t *xdata)  {          int32_t            ret     = -1, op_errno = EINVAL;          int32_t            parents = 0; @@ -918,7 +920,7 @@ quota_writev (call_frame_t *frame, xlator_t *this, fd_t *fd,          }          stub = fop_writev_stub (frame, quota_writev_helper, fd, vector, count, -                                off, flags, iobref); +                                off, flags, iobref, xdata);          if (stub == NULL) {                  op_errno = ENOMEM;                  goto unwind; @@ -967,7 +969,7 @@ quota_writev (call_frame_t *frame, xlator_t *this, fd_t *fd,          return 0;  unwind: -        QUOTA_STACK_UNWIND (writev, frame, -1, op_errno, NULL, NULL); +        QUOTA_STACK_UNWIND (writev, frame, -1, op_errno, NULL, NULL, NULL);          return 0;  } @@ -976,17 +978,17 @@ int32_t  quota_mkdir_cbk (call_frame_t *frame, void *cookie, xlator_t *this,                   int32_t op_ret, int32_t op_errno, inode_t *inode,                   struct iatt *buf, struct iatt *preparent, -                 struct iatt *postparent) +                 struct iatt *postparent, dict_t *xdata)  {          QUOTA_STACK_UNWIND (mkdir, frame, op_ret, op_errno, inode, -                            buf, preparent, postparent); +                            buf, preparent, postparent, xdata);          return 0;  }  int32_t  quota_mkdir_helper (call_frame_t *frame, xlator_t *this, loc_t *loc, -                    mode_t mode, dict_t *params) +                    mode_t mode, mode_t umask, dict_t *xdata)  {          quota_local_t *local    = NULL;          int32_t        op_errno = EINVAL; @@ -1004,19 +1006,19 @@ quota_mkdir_helper (call_frame_t *frame, xlator_t *this, loc_t *loc,          }          STACK_WIND (frame, quota_mkdir_cbk, FIRST_CHILD(this), -                    FIRST_CHILD(this)->fops->mkdir, loc, mode, params); +                    FIRST_CHILD(this)->fops->mkdir, loc, mode, umask, xdata);          return 0;  unwind:          QUOTA_STACK_UNWIND (mkdir, frame, -1, op_errno, NULL, NULL, -                            NULL, NULL); +                            NULL, NULL, NULL);          return 0;  }  int32_t  quota_mkdir (call_frame_t *frame, xlator_t *this, loc_t *loc, mode_t mode, -             dict_t *params) +             mode_t umask, dict_t *xdata)  {          int32_t        ret            = 0, op_errno = 0;          quota_local_t *local          = NULL; @@ -1039,7 +1041,8 @@ quota_mkdir (call_frame_t *frame, xlator_t *this, loc_t *loc, mode_t mode,                  goto err;          } -        stub = fop_mkdir_stub (frame, quota_mkdir_helper, loc, mode, params); +        stub = fop_mkdir_stub (frame, quota_mkdir_helper, loc, mode, umask, +                               xdata);          if (stub == NULL) {                  op_errno = ENOMEM;                  goto err; @@ -1070,7 +1073,7 @@ quota_mkdir (call_frame_t *frame, xlator_t *this, loc_t *loc, mode_t mode,          return 0;  err:          QUOTA_STACK_UNWIND (mkdir, frame, -1, op_errno, NULL, NULL, NULL, -                            NULL); +                            NULL, NULL);          return 0;  } @@ -1080,7 +1083,7 @@ int32_t  quota_create_cbk (call_frame_t *frame, void *cookie, xlator_t *this,                    int32_t op_ret, int32_t op_errno, fd_t *fd, inode_t *inode,                    struct iatt *buf, struct iatt *preparent, -                  struct iatt *postparent) +                  struct iatt *postparent, dict_t *xdata)  {          int32_t            ret    = -1;          quota_local_t     *local  = NULL; @@ -1123,14 +1126,15 @@ unlock:  unwind:          QUOTA_STACK_UNWIND (create, frame, op_ret, op_errno, fd, inode, buf, -                            preparent, postparent); +                            preparent, postparent, xdata);          return 0;  }  int32_t  quota_create_helper (call_frame_t *frame, xlator_t *this, loc_t *loc, -                     int32_t flags, mode_t mode, fd_t *fd, dict_t *params) +                     int32_t flags, mode_t mode, mode_t umask, fd_t *fd, +                     dict_t *xdata)  {          quota_local_t *local    = NULL;          int32_t        op_errno = EINVAL; @@ -1147,20 +1151,20 @@ quota_create_helper (call_frame_t *frame, xlator_t *this, loc_t *loc,          }          STACK_WIND (frame, quota_create_cbk, FIRST_CHILD(this), -                    FIRST_CHILD(this)->fops->create, loc, flags, mode, fd, -                    params); +                    FIRST_CHILD(this)->fops->create, loc, flags, mode, umask, +                    fd, xdata);          return 0;  unwind:          QUOTA_STACK_UNWIND (create, frame, -1, op_errno, NULL, NULL, -                            NULL, NULL, NULL); +                            NULL, NULL, NULL, NULL);          return 0;  }  int32_t  quota_create (call_frame_t *frame, xlator_t *this, loc_t *loc, int32_t flags, -              mode_t mode, fd_t *fd, dict_t *params) +              mode_t mode, mode_t umask, fd_t *fd, dict_t *xdata)  {          int32_t            ret            = -1;          quota_local_t     *local          = NULL; @@ -1180,7 +1184,7 @@ quota_create (call_frame_t *frame, xlator_t *this, loc_t *loc, int32_t flags,          }          stub = fop_create_stub (frame, quota_create_helper, loc, flags, mode, -                                fd, params); +                                umask, fd, xdata);          if (stub == NULL) {                  goto err;          } @@ -1210,7 +1214,7 @@ quota_create (call_frame_t *frame, xlator_t *this, loc_t *loc, int32_t flags,          return 0;  err:          QUOTA_STACK_UNWIND (create, frame, -1, ENOMEM, NULL, NULL, NULL, NULL, -                            NULL); +                            NULL, NULL);          return 0;  } @@ -1219,7 +1223,7 @@ err:  int32_t  quota_unlink_cbk (call_frame_t *frame, void *cookie, xlator_t *this,                    int32_t op_ret, int32_t op_errno, struct iatt *preparent, -                  struct iatt *postparent) +                  struct iatt *postparent, dict_t *xdata)  {          quota_local_t     *local = NULL;          quota_inode_ctx_t *ctx   = NULL; @@ -1247,13 +1251,14 @@ quota_unlink_cbk (call_frame_t *frame, void *cookie, xlator_t *this,  out:          QUOTA_STACK_UNWIND (unlink, frame, op_ret, op_errno, preparent, -                            postparent); +                            postparent, xdata);          return 0;  }  int32_t -quota_unlink (call_frame_t *frame, xlator_t *this, loc_t *loc) +quota_unlink (call_frame_t *frame, xlator_t *this, loc_t *loc, int xflag, +              dict_t *xdata)  {          int32_t        ret = 0;          quota_local_t *local = NULL; @@ -1272,13 +1277,13 @@ quota_unlink (call_frame_t *frame, xlator_t *this, loc_t *loc)          }          STACK_WIND (frame, quota_unlink_cbk, FIRST_CHILD(this), -                    FIRST_CHILD(this)->fops->unlink, loc); +                    FIRST_CHILD(this)->fops->unlink, loc, xflag, xdata);          ret = 0;  err:          if (ret == -1) { -                QUOTA_STACK_UNWIND (unlink, frame, -1, 0, NULL, NULL); +                QUOTA_STACK_UNWIND (unlink, frame, -1, 0, NULL, NULL, NULL);          }          return 0; @@ -1289,7 +1294,7 @@ int32_t  quota_link_cbk (call_frame_t *frame, void *cookie, xlator_t *this,                  int32_t op_ret, int32_t op_errno, inode_t *inode,                  struct iatt *buf, struct iatt *preparent, -                struct iatt *postparent) +                struct iatt *postparent, dict_t *xdata)  {          int32_t               ret          = -1;          quota_local_t        *local        = NULL; @@ -1354,7 +1359,7 @@ unlock:  out:          QUOTA_STACK_UNWIND (link, frame, op_ret, op_errno, inode, buf, -                            preparent, postparent); +                            preparent, postparent, xdata);          return 0;  } @@ -1362,7 +1367,7 @@ out:  int32_t  quota_link_helper (call_frame_t *frame, xlator_t *this, loc_t *oldloc, -                   loc_t *newloc) +                   loc_t *newloc, dict_t *xdata)  {          quota_local_t *local    = NULL;          int32_t        op_errno = EINVAL; @@ -1380,18 +1385,19 @@ quota_link_helper (call_frame_t *frame, xlator_t *this, loc_t *oldloc,          }          STACK_WIND (frame, quota_link_cbk, FIRST_CHILD(this), -                    FIRST_CHILD(this)->fops->link, oldloc, newloc); +                    FIRST_CHILD(this)->fops->link, oldloc, newloc, xdata);          return 0;  unwind:          QUOTA_STACK_UNWIND (link, frame, -1, op_errno, NULL, NULL, -                            NULL, NULL); +                            NULL, NULL, NULL);          return 0;  }  int32_t -quota_link (call_frame_t *frame, xlator_t *this, loc_t *oldloc, loc_t *newloc) +quota_link (call_frame_t *frame, xlator_t *this, loc_t *oldloc, loc_t *newloc, +            dict_t *xdata)  {          int32_t            ret   = -1, op_errno = ENOMEM;          quota_local_t     *local = NULL; @@ -1411,7 +1417,7 @@ quota_link (call_frame_t *frame, xlator_t *this, loc_t *oldloc, loc_t *newloc)                  goto err;          } -        stub = fop_link_stub (frame, quota_link_helper, oldloc, newloc); +        stub = fop_link_stub (frame, quota_link_helper, oldloc, newloc, xdata);          if (stub == NULL) {                  goto err;          } @@ -1454,7 +1460,7 @@ quota_link (call_frame_t *frame, xlator_t *this, loc_t *oldloc, loc_t *newloc)  err:          if (ret < 0) {                  QUOTA_STACK_UNWIND (link, frame, -1, op_errno, NULL, NULL, -                                    NULL, NULL); +                                    NULL, NULL, NULL);          }          return 0; @@ -1465,7 +1471,8 @@ int32_t  quota_rename_cbk (call_frame_t *frame, void *cookie, xlator_t *this,                    int32_t op_ret, int32_t op_errno, struct iatt *buf,                    struct iatt *preoldparent, struct iatt *postoldparent, -                  struct iatt *prenewparent, struct iatt *postnewparent) +                  struct iatt *prenewparent, struct iatt *postnewparent, +                  dict_t *xdata)  {          int32_t               ret              = -1;          quota_local_t        *local            = NULL; @@ -1569,7 +1576,7 @@ unlock:  out:          QUOTA_STACK_UNWIND (rename, frame, op_ret, op_errno, buf, preoldparent, -                            postoldparent, prenewparent, postnewparent); +                            postoldparent, prenewparent, postnewparent, xdata);          return 0;  } @@ -1577,7 +1584,7 @@ out:  int32_t  quota_rename_helper (call_frame_t *frame, xlator_t *this, loc_t *oldloc, -                     loc_t *newloc) +                     loc_t *newloc, dict_t *xdata)  {          quota_local_t *local    = NULL;          int32_t        op_errno = EINVAL; @@ -1595,19 +1602,19 @@ quota_rename_helper (call_frame_t *frame, xlator_t *this, loc_t *oldloc,          }          STACK_WIND (frame, quota_rename_cbk, FIRST_CHILD(this), -                    FIRST_CHILD(this)->fops->rename, oldloc, newloc); +                    FIRST_CHILD(this)->fops->rename, oldloc, newloc, xdata);          return 0;  unwind:          QUOTA_STACK_UNWIND (rename, frame, -1, op_errno, NULL, NULL, -                            NULL, NULL, NULL); +                            NULL, NULL, NULL, NULL);          return 0;  }  int32_t  quota_rename (call_frame_t *frame, xlator_t *this, loc_t *oldloc, -              loc_t *newloc) +              loc_t *newloc, dict_t *xdata)  {          int32_t            ret            = -1, op_errno = ENOMEM;          quota_local_t     *local          = NULL; @@ -1633,7 +1640,8 @@ quota_rename (call_frame_t *frame, xlator_t *this, loc_t *oldloc,                  goto err;          } -        stub = fop_rename_stub (frame, quota_rename_helper, oldloc, newloc); +        stub = fop_rename_stub (frame, quota_rename_helper, oldloc, newloc, +                                xdata);          if (stub == NULL) {                  goto err;          } @@ -1681,7 +1689,7 @@ quota_rename (call_frame_t *frame, xlator_t *this, loc_t *oldloc,  err:          if (ret == -1) {                  QUOTA_STACK_UNWIND (rename, frame, -1, op_errno, NULL, -                                    NULL, NULL, NULL, NULL); +                                    NULL, NULL, NULL, NULL, NULL);          }          return 0; @@ -1692,7 +1700,7 @@ int32_t  quota_symlink_cbk (call_frame_t *frame, void *cookie, xlator_t *this,                     int32_t op_ret, int32_t op_errno, inode_t *inode,                     struct iatt *buf, struct iatt *preparent, -                   struct iatt *postparent) +                   struct iatt *postparent, dict_t *xdata)  {          int64_t            size   = 0;          quota_local_t     *local  = NULL; @@ -1736,7 +1744,7 @@ quota_symlink_cbk (call_frame_t *frame, void *cookie, xlator_t *this,  out:          QUOTA_STACK_UNWIND (symlink, frame, op_ret, op_errno, inode, buf, -                            preparent, postparent); +                            preparent, postparent, xdata);          return 0;  } @@ -1744,7 +1752,7 @@ out:  int  quota_symlink_helper (call_frame_t *frame, xlator_t *this, const char *linkpath, -                      loc_t *loc, dict_t *params) +                      loc_t *loc, mode_t umask, dict_t *xdata)  {          quota_local_t *local    = NULL;          int32_t        op_errno = EINVAL; @@ -1761,19 +1769,20 @@ quota_symlink_helper (call_frame_t *frame, xlator_t *this, const char *linkpath,          }          STACK_WIND (frame, quota_symlink_cbk, FIRST_CHILD(this), -                    FIRST_CHILD(this)->fops->symlink, linkpath, loc, params); +                    FIRST_CHILD(this)->fops->symlink, linkpath, loc, umask, +                    xdata);          return 0;  unwind:          QUOTA_STACK_UNWIND (symlink, frame, -1, op_errno, NULL, NULL, -                            NULL, NULL); +                            NULL, NULL, NULL);          return 0;  }  int  quota_symlink (call_frame_t *frame, xlator_t *this, const char *linkpath, -               loc_t *loc, dict_t *params) +               loc_t *loc, mode_t umask, dict_t *xdata)  {          int32_t          ret      = -1;          int32_t          op_errno = ENOMEM; @@ -1796,7 +1805,7 @@ quota_symlink (call_frame_t *frame, xlator_t *this, const char *linkpath,          local->link_count = 1;          stub = fop_symlink_stub (frame, quota_symlink_helper, linkpath, loc, -                                 params); +                                 umask, xdata);          if (stub == NULL) {                  goto err;          } @@ -1827,7 +1836,7 @@ quota_symlink (call_frame_t *frame, xlator_t *this, const char *linkpath,  err:          QUOTA_STACK_UNWIND (symlink, frame, -1, op_errno, NULL, NULL, NULL, -                            NULL); +                            NULL, NULL);          return 0;  } @@ -1836,7 +1845,7 @@ err:  int32_t  quota_truncate_cbk (call_frame_t *frame, void *cookie, xlator_t *this,                      int32_t op_ret, int32_t op_errno, struct iatt *prebuf, -                    struct iatt *postbuf) +                    struct iatt *postbuf, dict_t *xdata)  {          quota_local_t     *local = NULL;          int64_t            delta = 0; @@ -1873,13 +1882,14 @@ quota_truncate_cbk (call_frame_t *frame, void *cookie, xlator_t *this,  out:          QUOTA_STACK_UNWIND (truncate, frame, op_ret, op_errno, prebuf, -                            postbuf); +                            postbuf, xdata);          return 0;  }  int32_t -quota_truncate (call_frame_t *frame, xlator_t *this, loc_t *loc, off_t offset) +quota_truncate (call_frame_t *frame, xlator_t *this, loc_t *loc, off_t offset, +                dict_t *xdata)  {          int32_t          ret   = -1;          quota_local_t   *local = NULL; @@ -1898,11 +1908,11 @@ quota_truncate (call_frame_t *frame, xlator_t *this, loc_t *loc, off_t offset)          }          STACK_WIND (frame, quota_truncate_cbk, FIRST_CHILD(this), -                    FIRST_CHILD(this)->fops->truncate, loc, offset); +                    FIRST_CHILD(this)->fops->truncate, loc, offset, xdata);          return 0;  err: -        QUOTA_STACK_UNWIND (truncate, frame, -1, ENOMEM, NULL, NULL); +        QUOTA_STACK_UNWIND (truncate, frame, -1, ENOMEM, NULL, NULL, NULL);          return 0;  } @@ -1911,7 +1921,7 @@ err:  int32_t  quota_ftruncate_cbk (call_frame_t *frame, void *cookie, xlator_t *this,                       int32_t op_ret, int32_t op_errno, struct iatt *prebuf, -                     struct iatt *postbuf) +                     struct iatt *postbuf, dict_t *xdata)  {          quota_local_t     *local = NULL;          int64_t            delta = 0; @@ -1948,13 +1958,14 @@ quota_ftruncate_cbk (call_frame_t *frame, void *cookie, xlator_t *this,  out:          QUOTA_STACK_UNWIND (ftruncate, frame, op_ret, op_errno, prebuf, -                            postbuf); +                            postbuf, xdata);          return 0;  }  int32_t -quota_ftruncate (call_frame_t *frame, xlator_t *this, fd_t *fd, off_t offset) +quota_ftruncate (call_frame_t *frame, xlator_t *this, fd_t *fd, off_t offset, +                 dict_t *xdata)  {          quota_local_t   *local = NULL; @@ -1967,11 +1978,11 @@ quota_ftruncate (call_frame_t *frame, xlator_t *this, fd_t *fd, off_t offset)          local->loc.inode = inode_ref (fd->inode);          STACK_WIND (frame, quota_ftruncate_cbk, FIRST_CHILD(this), -                    FIRST_CHILD(this)->fops->ftruncate, fd, offset); +                    FIRST_CHILD(this)->fops->ftruncate, fd, offset, xdata);          return 0;  err: -        QUOTA_STACK_UNWIND (ftruncate, frame, -1, ENOMEM, NULL, NULL); +        QUOTA_STACK_UNWIND (ftruncate, frame, -1, ENOMEM, NULL, NULL, NULL);          return 0;  } @@ -2006,7 +2017,7 @@ quota_send_dir_limit_to_cli (call_frame_t *frame, xlator_t *this,          gf_log (this->name, GF_LOG_INFO, "str = %s", dir_limit); -        QUOTA_STACK_UNWIND (getxattr, frame, 0, 0, dict); +        QUOTA_STACK_UNWIND (getxattr, frame, 0, 0, dict, NULL);          ret = 0; @@ -2017,7 +2028,7 @@ out:  int32_t  quota_fgetxattr (call_frame_t *frame, xlator_t *this, fd_t *fd, -                 const char *name) +                 const char *name, dict_t *xdata)  {          int32_t ret     = 0; @@ -2030,14 +2041,14 @@ quota_fgetxattr (call_frame_t *frame, xlator_t *this, fd_t *fd,          }          STACK_WIND (frame, default_fgetxattr_cbk, FIRST_CHILD(this), -                    FIRST_CHILD(this)->fops->fgetxattr, fd, name); +                    FIRST_CHILD(this)->fops->fgetxattr, fd, name, xdata);          return 0;  }  int32_t  quota_getxattr (call_frame_t *frame, xlator_t *this, loc_t *loc, -                const char *name) +                const char *name, dict_t *xdata)  {          int32_t ret     = 0; @@ -2049,14 +2060,14 @@ quota_getxattr (call_frame_t *frame, xlator_t *this, loc_t *loc,          }          STACK_WIND (frame, default_getxattr_cbk, FIRST_CHILD(this), -                    FIRST_CHILD(this)->fops->getxattr, loc, name); +                    FIRST_CHILD(this)->fops->getxattr, loc, name, xdata);          return 0;  }  int32_t  quota_stat_cbk (call_frame_t *frame, void *cookie, xlator_t *this, -                int32_t op_ret, int32_t op_errno, struct iatt *buf) +                int32_t op_ret, int32_t op_errno, struct iatt *buf, dict_t *xdata)  {          quota_local_t     *local = NULL;          quota_inode_ctx_t *ctx   = NULL; @@ -2088,13 +2099,13 @@ quota_stat_cbk (call_frame_t *frame, void *cookie, xlator_t *this,          UNLOCK (&ctx->lock);  out: -        QUOTA_STACK_UNWIND (stat, frame, op_ret, op_errno, buf); +        QUOTA_STACK_UNWIND (stat, frame, op_ret, op_errno, buf, xdata);          return 0;  }  int32_t -quota_stat (call_frame_t *frame, xlator_t *this, loc_t *loc) +quota_stat (call_frame_t *frame, xlator_t *this, loc_t *loc, dict_t *xdata)  {          quota_local_t *local = NULL;          int32_t        ret   = -1; @@ -2112,18 +2123,19 @@ quota_stat (call_frame_t *frame, xlator_t *this, loc_t *loc)          }          STACK_WIND (frame, quota_stat_cbk, FIRST_CHILD(this), -                    FIRST_CHILD(this)->fops->stat, loc); +                    FIRST_CHILD(this)->fops->stat, loc, xdata);          return 0;  unwind: -        QUOTA_STACK_UNWIND (stat, frame, -1, ENOMEM, NULL); +        QUOTA_STACK_UNWIND (stat, frame, -1, ENOMEM, NULL, NULL);          return 0;  }  int32_t  quota_fstat_cbk (call_frame_t *frame, void *cookie, xlator_t *this, -                 int32_t op_ret, int32_t op_errno, struct iatt *buf) +                 int32_t op_ret, int32_t op_errno, struct iatt *buf, +                 dict_t *xdata)  {          quota_local_t     *local = NULL;          quota_inode_ctx_t *ctx   = NULL; @@ -2155,13 +2167,13 @@ quota_fstat_cbk (call_frame_t *frame, void *cookie, xlator_t *this,          UNLOCK (&ctx->lock);  out: -        QUOTA_STACK_UNWIND (fstat, frame, op_ret, op_errno, buf); +        QUOTA_STACK_UNWIND (fstat, frame, op_ret, op_errno, buf, xdata);          return 0;  }  int32_t -quota_fstat (call_frame_t *frame, xlator_t *this, fd_t *fd) +quota_fstat (call_frame_t *frame, xlator_t *this, fd_t *fd, dict_t *xdata)  {          quota_local_t *local = NULL; @@ -2175,11 +2187,11 @@ quota_fstat (call_frame_t *frame, xlator_t *this, fd_t *fd)          local->loc.inode = inode_ref (fd->inode);          STACK_WIND (frame, quota_fstat_cbk, FIRST_CHILD(this), -                    FIRST_CHILD(this)->fops->fstat, fd); +                    FIRST_CHILD(this)->fops->fstat, fd, xdata);          return 0;  unwind: -        QUOTA_STACK_UNWIND (fstat, frame, -1, ENOMEM, NULL); +        QUOTA_STACK_UNWIND (fstat, frame, -1, ENOMEM, NULL, NULL);          return 0;  } @@ -2187,7 +2199,7 @@ unwind:  int32_t  quota_readlink_cbk (call_frame_t *frame, void *cookie, xlator_t *this,                      int32_t op_ret, int32_t op_errno, const char *path, -                    struct iatt *buf) +                    struct iatt *buf, dict_t *xdata)  {          quota_local_t     *local = NULL;          quota_inode_ctx_t *ctx   = NULL; @@ -2218,13 +2230,14 @@ quota_readlink_cbk (call_frame_t *frame, void *cookie, xlator_t *this,          UNLOCK (&ctx->lock);  out: -        QUOTA_STACK_UNWIND (readlink, frame, op_ret, op_errno, path, buf); +        QUOTA_STACK_UNWIND (readlink, frame, op_ret, op_errno, path, buf, xdata);          return 0;  }  int32_t -quota_readlink (call_frame_t *frame, xlator_t *this, loc_t *loc, size_t size) +quota_readlink (call_frame_t *frame, xlator_t *this, loc_t *loc, size_t size, +                dict_t *xdata)  {          quota_local_t *local = NULL;          int32_t        ret   = -1; @@ -2243,11 +2256,11 @@ quota_readlink (call_frame_t *frame, xlator_t *this, loc_t *loc, size_t size)          }          STACK_WIND (frame, quota_readlink_cbk, FIRST_CHILD(this), -                    FIRST_CHILD(this)->fops->readlink, loc, size); +                    FIRST_CHILD(this)->fops->readlink, loc, size, xdata);          return 0;  unwind: -        QUOTA_STACK_UNWIND (readlink, frame, -1, ENOMEM, NULL, NULL); +        QUOTA_STACK_UNWIND (readlink, frame, -1, ENOMEM, NULL, NULL, NULL);          return 0;  } @@ -2255,7 +2268,8 @@ unwind:  int32_t  quota_readv_cbk (call_frame_t *frame, void *cookie, xlator_t *this,                   int32_t op_ret, int32_t op_errno, struct iovec *vector, -                 int32_t count, struct iatt *buf, struct iobref *iobref) +                 int32_t count, struct iatt *buf, struct iobref *iobref, +                 dict_t *xdata)  {          quota_local_t     *local = NULL;          quota_inode_ctx_t *ctx   = NULL; @@ -2287,14 +2301,14 @@ quota_readv_cbk (call_frame_t *frame, void *cookie, xlator_t *this,  out:          QUOTA_STACK_UNWIND (readv, frame, op_ret, op_errno, vector, count, -                            buf, iobref); +                            buf, iobref, xdata);          return 0;  }  int32_t  quota_readv (call_frame_t *frame, xlator_t *this, fd_t *fd, size_t size, -             off_t offset, uint32_t flags) +             off_t offset, uint32_t flags, dict_t *xdata)  {          quota_local_t *local = NULL; @@ -2308,11 +2322,12 @@ quota_readv (call_frame_t *frame, xlator_t *this, fd_t *fd, size_t size,          local->loc.inode = inode_ref (fd->inode);          STACK_WIND (frame, quota_readv_cbk, FIRST_CHILD(this), -                    FIRST_CHILD(this)->fops->readv, fd, size, offset, flags); +                    FIRST_CHILD(this)->fops->readv, fd, size, offset, flags, +                    xdata);          return 0;  unwind: -        QUOTA_STACK_UNWIND (readv, frame, -1, ENOMEM, NULL, -1, NULL, NULL); +        QUOTA_STACK_UNWIND (readv, frame, -1, ENOMEM, NULL, -1, NULL, NULL, NULL);          return 0;  } @@ -2320,7 +2335,7 @@ unwind:  int32_t  quota_fsync_cbk (call_frame_t *frame, void *cookie, xlator_t *this,                   int32_t op_ret, int32_t op_errno, struct iatt *prebuf, -                 struct iatt *postbuf) +                 struct iatt *postbuf, dict_t *xdata)  {          quota_local_t     *local = NULL;          quota_inode_ctx_t *ctx   = NULL; @@ -2351,13 +2366,15 @@ quota_fsync_cbk (call_frame_t *frame, void *cookie, xlator_t *this,          UNLOCK (&ctx->lock);  out: -        QUOTA_STACK_UNWIND (fsync, frame, op_ret, op_errno, prebuf, postbuf); +        QUOTA_STACK_UNWIND (fsync, frame, op_ret, op_errno, prebuf, postbuf, +                            xdata);          return 0;  }  int32_t -quota_fsync (call_frame_t *frame, xlator_t *this, fd_t *fd, int32_t flags) +quota_fsync (call_frame_t *frame, xlator_t *this, fd_t *fd, int32_t flags, +             dict_t *xdata)  {          quota_local_t *local = NULL; @@ -2371,11 +2388,11 @@ quota_fsync (call_frame_t *frame, xlator_t *this, fd_t *fd, int32_t flags)          frame->local = local;          STACK_WIND (frame, quota_fsync_cbk, FIRST_CHILD(this), -                    FIRST_CHILD(this)->fops->fsync, fd, flags); +                    FIRST_CHILD(this)->fops->fsync, fd, flags, xdata);          return 0;  unwind: -        QUOTA_STACK_UNWIND (fsync, frame, -1, ENOMEM, NULL, NULL); +        QUOTA_STACK_UNWIND (fsync, frame, -1, ENOMEM, NULL, NULL, NULL);          return 0;  } @@ -2384,7 +2401,7 @@ unwind:  int32_t  quota_setattr_cbk (call_frame_t *frame, void *cookie, xlator_t *this,                     int32_t op_ret, int32_t op_errno, struct iatt *statpre, -                   struct iatt *statpost) +                   struct iatt *statpost, dict_t *xdata)  {          quota_local_t     *local = NULL;          quota_inode_ctx_t *ctx   = NULL; @@ -2417,14 +2434,14 @@ quota_setattr_cbk (call_frame_t *frame, void *cookie, xlator_t *this,  out:          QUOTA_STACK_UNWIND (setattr, frame, op_ret, op_errno, statpre, -                            statpost); +                            statpost, xdata);          return 0;  }  int32_t  quota_setattr (call_frame_t *frame, xlator_t *this, loc_t *loc, -               struct iatt *stbuf, int32_t valid) +               struct iatt *stbuf, int32_t valid, dict_t *xdata)  {          quota_local_t *local = NULL;          int32_t        ret   = -1; @@ -2443,11 +2460,11 @@ quota_setattr (call_frame_t *frame, xlator_t *this, loc_t *loc,          }          STACK_WIND (frame, quota_setattr_cbk, FIRST_CHILD (this), -                    FIRST_CHILD (this)->fops->setattr, loc, stbuf, valid); +                    FIRST_CHILD (this)->fops->setattr, loc, stbuf, valid, xdata);          return 0;  unwind: -        QUOTA_STACK_UNWIND (setattr, frame, -1, ENOMEM, NULL, NULL); +        QUOTA_STACK_UNWIND (setattr, frame, -1, ENOMEM, NULL, NULL, NULL);          return 0;  } @@ -2455,7 +2472,7 @@ unwind:  int32_t  quota_fsetattr_cbk (call_frame_t *frame, void *cookie, xlator_t *this,                      int32_t op_ret, int32_t op_errno, struct iatt *statpre, -                    struct iatt *statpost) +                    struct iatt *statpost, dict_t *xdata)  {          quota_local_t     *local = NULL;          quota_inode_ctx_t *ctx   = NULL; @@ -2487,14 +2504,14 @@ quota_fsetattr_cbk (call_frame_t *frame, void *cookie, xlator_t *this,  out:          QUOTA_STACK_UNWIND (fsetattr, frame, op_ret, op_errno, statpre, -                            statpost); +                            statpost, xdata);          return 0;  }  int32_t  quota_fsetattr (call_frame_t *frame, xlator_t *this, fd_t *fd, -                struct iatt *stbuf, int32_t valid) +                struct iatt *stbuf, int32_t valid, dict_t *xdata)  {          quota_local_t *local = NULL; @@ -2508,11 +2525,11 @@ quota_fsetattr (call_frame_t *frame, xlator_t *this, fd_t *fd,          local->loc.inode = inode_ref (fd->inode);          STACK_WIND (frame, quota_fsetattr_cbk, FIRST_CHILD (this), -                    FIRST_CHILD (this)->fops->fsetattr, fd, stbuf, valid); +                    FIRST_CHILD (this)->fops->fsetattr, fd, stbuf, valid, xdata);          return 0;  unwind: -        QUOTA_STACK_UNWIND (fsetattr, frame, -1, ENOMEM, NULL, NULL); +        QUOTA_STACK_UNWIND (fsetattr, frame, -1, ENOMEM, NULL, NULL, NULL);          return 0;  } @@ -2521,7 +2538,7 @@ int32_t  quota_mknod_cbk (call_frame_t *frame, void *cookie, xlator_t *this,                   int32_t op_ret, int32_t op_errno, inode_t *inode,                   struct iatt *buf, struct iatt *preparent, -                 struct iatt *postparent) +                 struct iatt *postparent, dict_t *xdata)  {          int32_t            ret    = -1;          quota_local_t     *local  = NULL; @@ -2563,14 +2580,14 @@ unlock:  unwind:          QUOTA_STACK_UNWIND (mknod, frame, op_ret, op_errno, inode, -                            buf, preparent, postparent); +                            buf, preparent, postparent, xdata);          return 0;  }  int  quota_mknod_helper (call_frame_t *frame, xlator_t *this, loc_t *loc, -                    mode_t mode, dev_t rdev, dict_t *parms) +                    mode_t mode, dev_t rdev, mode_t umask, dict_t *xdata)  {          quota_local_t *local    = NULL;          int32_t        op_errno = EINVAL; @@ -2587,20 +2604,21 @@ quota_mknod_helper (call_frame_t *frame, xlator_t *this, loc_t *loc,          }          STACK_WIND (frame, quota_mknod_cbk, FIRST_CHILD(this), -                    FIRST_CHILD(this)->fops->mknod, loc, mode, rdev, parms); +                    FIRST_CHILD(this)->fops->mknod, loc, mode, rdev, umask, +                    xdata);          return 0;  unwind:          QUOTA_STACK_UNWIND (mknod, frame, -1, op_errno, NULL, NULL, -                            NULL, NULL); +                            NULL, NULL, NULL);          return 0;  }  int  quota_mknod (call_frame_t *frame, xlator_t *this, loc_t *loc, mode_t mode, -             dev_t rdev, dict_t *parms) +             dev_t rdev, mode_t umask, dict_t *xdata)  {          int32_t            ret            = -1;          quota_local_t     *local          = NULL; @@ -2620,7 +2638,7 @@ quota_mknod (call_frame_t *frame, xlator_t *this, loc_t *loc, mode_t mode,          }          stub = fop_mknod_stub (frame, quota_mknod_helper, loc, mode, rdev, -                               parms); +                               umask, xdata);          if (stub == NULL) {                  goto err;          } @@ -2649,22 +2667,23 @@ quota_mknod (call_frame_t *frame, xlator_t *this, loc_t *loc, mode_t mode,          return 0;  err: -        QUOTA_STACK_UNWIND (mknod, frame, -1, ENOMEM, NULL, NULL, NULL, NULL); +        QUOTA_STACK_UNWIND (mknod, frame, -1, ENOMEM, NULL, NULL, NULL, NULL, +                            NULL);          return 0;  }  int  quota_setxattr_cbk (call_frame_t *frame, void *cookie, -                    xlator_t *this, int op_ret, int op_errno) +                    xlator_t *this, int op_ret, int op_errno, dict_t *xdata)  { -        QUOTA_STACK_UNWIND (setxattr, frame, op_ret, op_errno); +        QUOTA_STACK_UNWIND (setxattr, frame, op_ret, op_errno, xdata);          return 0;  }  int  quota_setxattr (call_frame_t *frame, xlator_t *this, -                loc_t *loc, dict_t *dict, int flags) +                loc_t *loc, dict_t *dict, int flags, dict_t *xdata)  {          data_pair_t    *trav     = NULL;          int             op_errno = EINVAL; @@ -2680,24 +2699,24 @@ quota_setxattr (call_frame_t *frame, xlator_t *this,          STACK_WIND (frame, quota_setxattr_cbk,                      FIRST_CHILD(this),                      FIRST_CHILD(this)->fops->setxattr, -                    loc, dict, flags); +                    loc, dict, flags, xdata);          return 0;  err: -        QUOTA_STACK_UNWIND (setxattr, frame, op_ret, op_errno); +        QUOTA_STACK_UNWIND (setxattr, frame, op_ret, op_errno, NULL);          return 0;  }  int  quota_fsetxattr_cbk (call_frame_t *frame, void *cookie, -                     xlator_t *this, int op_ret, int op_errno) +                     xlator_t *this, int op_ret, int op_errno, dict_t *xdata)  { -        QUOTA_STACK_UNWIND (fsetxattr, frame, op_ret, op_errno); +        QUOTA_STACK_UNWIND (fsetxattr, frame, op_ret, op_errno, xdata);          return 0;  }  int  quota_fsetxattr (call_frame_t *frame, xlator_t *this, fd_t *fd, -                 dict_t *dict, int flags) +                 dict_t *dict, int flags, dict_t *xdata)  {          data_pair_t    *trav     = NULL;          int32_t         op_ret   = -1; @@ -2713,25 +2732,25 @@ quota_fsetxattr (call_frame_t *frame, xlator_t *this, fd_t *fd,          STACK_WIND (frame, quota_fsetxattr_cbk,                      FIRST_CHILD(this),                      FIRST_CHILD(this)->fops->fsetxattr, -                    fd, dict, flags); +                    fd, dict, flags, xdata);          return 0;   err: -        QUOTA_STACK_UNWIND (fsetxattr, frame, op_ret, op_errno); +        QUOTA_STACK_UNWIND (fsetxattr, frame, op_ret, op_errno, NULL);          return 0;  }  int -quota_removexattr_cbk (call_frame_t *frame, void *cookie, -                       xlator_t *this, int32_t op_ret, int32_t op_errno) +quota_removexattr_cbk (call_frame_t *frame, void *cookie, xlator_t *this, +                       int32_t op_ret, int32_t op_errno, dict_t *xdata)  { -        QUOTA_STACK_UNWIND (removexattr, frame, op_ret, op_errno); +        QUOTA_STACK_UNWIND (removexattr, frame, op_ret, op_errno, xdata);          return 0;  }  int  quota_removexattr (call_frame_t *frame, xlator_t *this, -                   loc_t *loc, const char *name) +                   loc_t *loc, const char *name, dict_t *xdata)  {          int32_t         op_errno = EINVAL; @@ -2746,25 +2765,25 @@ quota_removexattr (call_frame_t *frame, xlator_t *this,          STACK_WIND (frame, quota_removexattr_cbk,                      FIRST_CHILD(this),                      FIRST_CHILD(this)->fops->removexattr, -                    loc, name); +                    loc, name, xdata);          return 0;  err: -        QUOTA_STACK_UNWIND (removexattr, frame, -1,  op_errno); +        QUOTA_STACK_UNWIND (removexattr, frame, -1,  op_errno, NULL);          return 0;  }  int -quota_fremovexattr_cbk (call_frame_t *frame, void *cookie, -                        xlator_t *this, int32_t op_ret, int32_t op_errno) +quota_fremovexattr_cbk (call_frame_t *frame, void *cookie, xlator_t *this, +                        int32_t op_ret, int32_t op_errno, dict_t *xdata)  { -        QUOTA_STACK_UNWIND (fremovexattr, frame, op_ret, op_errno); +        QUOTA_STACK_UNWIND (fremovexattr, frame, op_ret, op_errno, xdata);          return 0;  }  int  quota_fremovexattr (call_frame_t *frame, xlator_t *this, -                    fd_t *fd, const char *name) +                    fd_t *fd, const char *name, dict_t *xdata)  {          int32_t         op_ret   = -1;          int32_t         op_errno = EINVAL; @@ -2779,16 +2798,17 @@ quota_fremovexattr (call_frame_t *frame, xlator_t *this,          STACK_WIND (frame, quota_fremovexattr_cbk,                      FIRST_CHILD(this),                      FIRST_CHILD(this)->fops->fremovexattr, -                    fd, name); +                    fd, name, xdata);          return 0;   err: -        QUOTA_STACK_UNWIND (fremovexattr, frame, op_ret, op_errno); +        QUOTA_STACK_UNWIND (fremovexattr, frame, op_ret, op_errno, NULL);          return 0;  }  int32_t  quota_statfs_cbk (call_frame_t *frame, void *cookie, xlator_t *this, -                  int32_t op_ret, int32_t op_errno, struct statvfs *buf) +                  int32_t op_ret, int32_t op_errno, struct statvfs *buf, +                  dict_t *xdata)  {  	inode_t            *root_inode = NULL;          quota_priv_t       *priv       = NULL; @@ -2853,13 +2873,13 @@ unwind:  	if (root_inode) {  		inode_unref(root_inode);  	} -        STACK_UNWIND_STRICT (statfs, frame, op_ret, op_errno, buf); +        STACK_UNWIND_STRICT (statfs, frame, op_ret, op_errno, buf, xdata);          return 0;  }  int32_t -quota_statfs (call_frame_t *frame, xlator_t *this, loc_t *loc) +quota_statfs (call_frame_t *frame, xlator_t *this, loc_t *loc, dict_t *xdata)  {  	inode_t *root_inode = NULL; @@ -2868,7 +2888,7 @@ quota_statfs (call_frame_t *frame, xlator_t *this, loc_t *loc)  		inode_ref(root_inode);  		STACK_WIND_COOKIE (frame, quota_statfs_cbk, root_inode,  				   FIRST_CHILD(this), -				   FIRST_CHILD(this)->fops->statfs, loc); +				   FIRST_CHILD(this)->fops->statfs, loc, xdata);  	}  	else {  		/* @@ -2881,7 +2901,7 @@ quota_statfs (call_frame_t *frame, xlator_t *this, loc_t *loc)  		gf_log(this->name,GF_LOG_WARNING,  		       "missing inode, cannot adjust for quota");  		STACK_WIND (frame, default_statfs_cbk, FIRST_CHILD(this), -			    FIRST_CHILD(this)->fops->statfs, loc); +			    FIRST_CHILD(this)->fops->statfs, loc, xdata);  	}          return 0;  } @@ -2889,7 +2909,8 @@ quota_statfs (call_frame_t *frame, xlator_t *this, loc_t *loc)  int  quota_readdirp_cbk (call_frame_t *frame, void *cookie, xlator_t *this, -                    int op_ret, int op_errno, gf_dirent_t *entries) +                    int op_ret, int op_errno, gf_dirent_t *entries, +                    dict_t *xdata)  {          gf_dirent_t *entry = NULL; @@ -2901,7 +2922,7 @@ quota_readdirp_cbk (call_frame_t *frame, void *cookie, xlator_t *this,          }  unwind: -        STACK_UNWIND_STRICT (readdirp, frame, op_ret, op_errno, entries); +        STACK_UNWIND_STRICT (readdirp, frame, op_ret, op_errno, entries, xdata);          return 0;  } @@ -2923,7 +2944,7 @@ quota_readdirp (call_frame_t *frame, xlator_t *this, fd_t *fd, size_t size,                      fd, size, offset, dict);          return 0;  err: -        STACK_UNWIND_STRICT (readdirp, frame, -1, EINVAL, NULL); +        STACK_UNWIND_STRICT (readdirp, frame, -1, EINVAL, NULL, NULL);          return 0;  }  | 
