summaryrefslogtreecommitdiffstats
path: root/xlators/cluster/afr
diff options
context:
space:
mode:
Diffstat (limited to 'xlators/cluster/afr')
-rw-r--r--xlators/cluster/afr/src/afr-common.c2
-rw-r--r--xlators/cluster/afr/src/afr-dir-write.c8
-rw-r--r--xlators/cluster/afr/src/afr-dir-write.h3
-rw-r--r--xlators/cluster/afr/src/afr.h1
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;