diff options
| author | Pranith Kumar K <pranithk@gluster.com> | 2012-09-04 21:10:45 +0530 | 
|---|---|---|
| committer | Anand Avati <avati@redhat.com> | 2012-09-06 18:28:57 -0700 | 
| commit | baddf332d589d29d9bcb18d11dcbb875650e4298 (patch) | |
| tree | 3ef30374ff78113c1910217449e296e3a611f3da | |
| parent | b46e98787f735f6b7cd434e4eeb7f8f011a6e63b (diff) | |
storage/posix: Make posix_fremovexattr anon fd friendly.
Problem:
For anonymous fds posix_fremovexattr fails to work because the open
never happens and the fd-ctx is not set with the fd-number.
Fix:
Use posix_fd_ctx_get which opens and sets the fd-number in the fd-ctx
for anonymous fds.
Tests:
Added a syncop call in glustershd to test this change and it worked fine.
Change-Id: I9629190a87eb27a7a1578e4fe732a5eb1248f30c
BUG: 854331
Signed-off-by: Pranith Kumar K <pranithk@gluster.com>
Reviewed-on: http://review.gluster.org/3903
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Amar Tumballi <amarts@redhat.com>
Reviewed-by: Anand Avati <avati@redhat.com>
| -rw-r--r-- | xlators/storage/posix/src/posix.c | 5 | 
1 files changed, 1 insertions, 4 deletions
diff --git a/xlators/storage/posix/src/posix.c b/xlators/storage/posix/src/posix.c index d24e70cb..6a3f4e76 100644 --- a/xlators/storage/posix/src/posix.c +++ b/xlators/storage/posix/src/posix.c @@ -2984,7 +2984,6 @@ posix_fremovexattr (call_frame_t *frame, xlator_t *this,          int32_t           op_errno = 0;          struct posix_fd * pfd      = NULL;          int               _fd      = -1; -        uint64_t          tmp_pfd  = 0;          int               ret      = -1;          DECLARE_OLD_FS_ID_VAR; @@ -2995,15 +2994,13 @@ posix_fremovexattr (call_frame_t *frame, xlator_t *this,                  goto out;          } -        ret = fd_ctx_get (fd, this, &tmp_pfd); +        ret = posix_fd_ctx_get (fd, this, &pfd);          if (ret < 0) {                  op_errno = -ret;                  gf_log (this->name, GF_LOG_WARNING,                          "pfd is NULL from fd=%p", fd);                  goto out;          } -        pfd = (struct posix_fd *)(long)tmp_pfd; -          _fd = pfd->fd;  | 
