diff options
Diffstat (limited to 'xlators/cluster/afr')
-rw-r--r-- | xlators/cluster/afr/src/afr-common.c | 2 | ||||
-rw-r--r-- | xlators/cluster/afr/src/afr-dir-write.c | 8 | ||||
-rw-r--r-- | xlators/cluster/afr/src/afr-dir-write.h | 3 | ||||
-rw-r--r-- | xlators/cluster/afr/src/afr.h | 1 |
4 files changed, 11 insertions, 3 deletions
diff --git a/xlators/cluster/afr/src/afr-common.c b/xlators/cluster/afr/src/afr-common.c index 22bb4322edd..6a732e1180d 100644 --- a/xlators/cluster/afr/src/afr-common.c +++ b/xlators/cluster/afr/src/afr-common.c @@ -391,6 +391,8 @@ afr_local_cleanup (afr_local_t *local, xlator_t *this) { /* create */ if (local->cont.create.fd) fd_unref (local->cont.create.fd); + if (local->cont.create.params) + dict_unref (local->cont.create.params); } { /* writev */ diff --git a/xlators/cluster/afr/src/afr-dir-write.c b/xlators/cluster/afr/src/afr-dir-write.c index 27dd3517794..3e9f48f9a2c 100644 --- a/xlators/cluster/afr/src/afr-dir-write.c +++ b/xlators/cluster/afr/src/afr-dir-write.c @@ -253,7 +253,8 @@ afr_create_wind (call_frame_t *frame, xlator_t *this) &local->loc, local->cont.create.flags, local->cont.create.mode, - local->cont.create.fd); + local->cont.create.fd, + local->cont.create.params); if (!--call_count) break; } @@ -280,7 +281,8 @@ afr_create_done (call_frame_t *frame, xlator_t *this) int afr_create (call_frame_t *frame, xlator_t *this, - loc_t *loc, int32_t flags, mode_t mode, fd_t *fd) + loc_t *loc, int32_t flags, mode_t mode, + fd_t *fd, dict_t *params) { afr_private_t * priv = NULL; afr_local_t * local = NULL; @@ -326,6 +328,8 @@ afr_create (call_frame_t *frame, xlator_t *this, local->cont.create.flags = flags; local->cont.create.mode = mode; local->cont.create.fd = fd_ref (fd); + if (params) + local->cont.create.params = dict_ref (params); if (loc->parent) local->cont.create.parent_ino = loc->parent->ino; diff --git a/xlators/cluster/afr/src/afr-dir-write.h b/xlators/cluster/afr/src/afr-dir-write.h index 4fa618b6575..5369ba968a0 100644 --- a/xlators/cluster/afr/src/afr-dir-write.h +++ b/xlators/cluster/afr/src/afr-dir-write.h @@ -22,7 +22,8 @@ int32_t afr_create (call_frame_t *frame, xlator_t *this, - loc_t *loc, int32_t flags, mode_t mode, fd_t *fd); + loc_t *loc, int32_t flags, mode_t mode, + fd_t *fd, dict_t *params); int32_t afr_mknod (call_frame_t *frame, xlator_t *this, diff --git a/xlators/cluster/afr/src/afr.h b/xlators/cluster/afr/src/afr.h index 6df8c697ca6..f222cb0f866 100644 --- a/xlators/cluster/afr/src/afr.h +++ b/xlators/cluster/afr/src/afr.h @@ -480,6 +480,7 @@ typedef struct _afr_local { uint64_t gen; ino_t parent_ino; fd_t *fd; + dict_t *params; int32_t flags; mode_t mode; inode_t *inode; |