diff options
| author | Pavan Sondur <pavan@gluster.com> | 2009-10-05 09:45:52 +0000 | 
|---|---|---|
| committer | Anand V. Avati <avati@dev.gluster.com> | 2009-10-06 07:22:16 -0700 | 
| commit | 29f81133a6cd95ebc9fac627a4fb0da73977f5a8 (patch) | |
| tree | bf5a633b59b8bce4a28023f39a35fb5d89dcf4bd /xlators/performance/write-behind/src/write-behind.c | |
| parent | f3e46f2cb44e95c453bfa20c870dca6e42fc9a7a (diff) | |
Removed remaining references to chmod, chown and utimens as part of setattr changes.
Removed references to chmod, chown and utimes. Removed utimes references in AFR and writebehind.
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 146 (Add setattr FOP)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=146
Diffstat (limited to 'xlators/performance/write-behind/src/write-behind.c')
| -rw-r--r-- | xlators/performance/write-behind/src/write-behind.c | 42 | 
1 files changed, 26 insertions, 16 deletions
diff --git a/xlators/performance/write-behind/src/write-behind.c b/xlators/performance/write-behind/src/write-behind.c index 29ae081c351..478202638e6 100644 --- a/xlators/performance/write-behind/src/write-behind.c +++ b/xlators/performance/write-behind/src/write-behind.c @@ -1040,8 +1040,8 @@ unwind:  int32_t  -wb_utimens_cbk (call_frame_t *frame, void *cookie, xlator_t *this, -                int32_t op_ret, int32_t op_errno, struct stat *buf) +wb_setattr_cbk (call_frame_t *frame, void *cookie, xlator_t *this, +                int32_t op_ret, int32_t op_errno, struct stat *statpre, struct stat *statpost)  {          wb_local_t   *local = NULL;                 wb_request_t *request = NULL; @@ -1062,7 +1062,7 @@ wb_utimens_cbk (call_frame_t *frame, void *cookie, xlator_t *this,                  }          } -        STACK_UNWIND (frame, op_ret, op_errno, buf); +        STACK_UNWIND (frame, op_ret, op_errno, statpre, statpost);          if (request) {                  wb_request_unref (request); @@ -1097,23 +1097,24 @@ wb_utimens_cbk (call_frame_t *frame, void *cookie, xlator_t *this,  static int32_t  -wb_utimens_helper (call_frame_t *frame, xlator_t *this, loc_t *loc, -                   struct timespec tv[2]) +wb_setattr_helper (call_frame_t *frame, xlator_t *this, loc_t *loc, +                   struct stat *stbuf, int32_t valid)  {          STACK_WIND (frame, -                    wb_utimens_cbk, +                    wb_setattr_cbk,                      FIRST_CHILD(this), -                    FIRST_CHILD(this)->fops->utimens, +                    FIRST_CHILD(this)->fops->setattr,                      loc, -                    tv); +                    stbuf, +                    valid);          return 0;  }  int32_t  -wb_utimens (call_frame_t *frame, xlator_t *this, loc_t *loc, -            struct timespec tv[2]) +wb_setattr (call_frame_t *frame, xlator_t *this, loc_t *loc, +            struct stat *stbuf, int32_t valid)  {          wb_file_t    *file = NULL;          fd_t         *iter_fd = NULL; @@ -1123,6 +1124,15 @@ wb_utimens (call_frame_t *frame, xlator_t *this, loc_t *loc,          wb_request_t *request = NULL;          int32_t       ret = -1, op_errno = EINVAL; +        if (!(valid & (GF_SET_ATTR_ATIME | GF_SET_ATTR_MTIME))) { +                STACK_WIND (frame, +                            wb_setattr_cbk, +                            FIRST_CHILD (this), +                            FIRST_CHILD (this)->fops->setattr, +                            loc, stbuf, valid); +                goto out; +        } +          if (loc->inode) {                  /*                      FIXME: fd_lookup extends life of fd till the execution @@ -1150,7 +1160,7 @@ wb_utimens (call_frame_t *frame, xlator_t *this, loc_t *loc,          frame->local = local;          if (file) { -                stub = fop_utimens_stub (frame, wb_utimens_helper, loc, tv); +                stub = fop_setattr_stub (frame, wb_setattr_helper, loc, stbuf, valid);                  if (stub == NULL) {                          op_errno = ENOMEM;                          goto unwind; @@ -1169,11 +1179,11 @@ wb_utimens (call_frame_t *frame, xlator_t *this, loc_t *loc,                  }          } else {                  STACK_WIND (frame, -                            wb_utimens_cbk, +                            wb_setattr_cbk,                              FIRST_CHILD(this), -                            FIRST_CHILD(this)->fops->utimens, +                            FIRST_CHILD(this)->fops->setattr,                              loc, -                            tv); +                            stbuf, valid);          }          return 0; @@ -1183,7 +1193,7 @@ unwind:          if (stub) {                  call_stub_destroy (stub);          } - +out:          return 0;  } @@ -2482,7 +2492,7 @@ struct xlator_fops fops = {          .fstat       = wb_fstat,          .truncate    = wb_truncate,          .ftruncate   = wb_ftruncate, -        .utimens     = wb_utimens, +        .setattr     = wb_setattr,  };  struct xlator_mops mops = {  | 
