diff options
30 files changed, 107 insertions, 86 deletions
diff --git a/libglusterfs/src/call-stub.c b/libglusterfs/src/call-stub.c index c80dfb593c3..789b12c9796 100644 --- a/libglusterfs/src/call-stub.c +++ b/libglusterfs/src/call-stub.c @@ -449,10 +449,8 @@ out:  call_stub_t * -fop_mkdir_stub (call_frame_t *frame, -		fop_mkdir_t fn, -		loc_t *loc, -		mode_t mode) +fop_mkdir_stub (call_frame_t *frame, fop_mkdir_t fn, +		loc_t *loc, mode_t mode, dict_t *params)  {  	call_stub_t *stub = NULL; @@ -465,6 +463,8 @@ fop_mkdir_stub (call_frame_t *frame,  	stub->args.mkdir.fn = fn;  	loc_copy (&stub->args.mkdir.loc, loc);  	stub->args.mkdir.mode = mode; +        if (params) +                stub->args.mkdir.params = dict_ref (params);  out:  	return stub;  } @@ -2161,10 +2161,10 @@ call_resume_wind (call_stub_t *stub)  	case GF_FOP_MKDIR:  	{ -		stub->args.mkdir.fn (stub->frame, -				     stub->frame->this, +		stub->args.mkdir.fn (stub->frame, stub->frame->this,  				     &stub->args.mkdir.loc, -				     stub->args.mkdir.mode); +				     stub->args.mkdir.mode, +                                     stub->args.mkdir.params);  	}  	break; @@ -3341,6 +3341,8 @@ call_stub_destroy_wind (call_stub_t *stub)  	case GF_FOP_MKDIR:  	{  		loc_wipe (&stub->args.mkdir.loc); +                if (stub->args.mkdir.params) +                        dict_unref (stub->args.mkdir.params);  	}  	break; diff --git a/libglusterfs/src/call-stub.h b/libglusterfs/src/call-stub.h index 1c46cbc0bee..7c67b18e514 100644 --- a/libglusterfs/src/call-stub.h +++ b/libglusterfs/src/call-stub.h @@ -146,6 +146,7 @@ typedef struct {  			fop_mkdir_t fn;  			loc_t loc;  			mode_t mode; +                        dict_t *params;  		} mkdir;  		struct {  			fop_mkdir_cbk_t fn; @@ -686,10 +687,8 @@ fop_mknod_cbk_stub (call_frame_t *frame,                      struct iatt *postparent);  call_stub_t * -fop_mkdir_stub (call_frame_t *frame, -		fop_mkdir_t fn, -		loc_t *loc, -		mode_t mode); +fop_mkdir_stub (call_frame_t *frame, fop_mkdir_t fn, +		loc_t *loc, mode_t mode, dict_t *params);  call_stub_t *  fop_mkdir_cbk_stub (call_frame_t *frame, diff --git a/libglusterfs/src/defaults.c b/libglusterfs/src/defaults.c index d7018855e9d..3224e730405 100644 --- a/libglusterfs/src/defaults.c +++ b/libglusterfs/src/defaults.c @@ -285,17 +285,15 @@ default_mkdir_cbk (call_frame_t *frame,  	return 0;  } -int32_t -default_mkdir (call_frame_t *frame, -	       xlator_t *this, -	       loc_t *loc, -	       mode_t mode) + +int +default_mkdir (call_frame_t *frame, xlator_t *this, +	       loc_t *loc, mode_t mode, dict_t *params)  { -	STACK_WIND (frame, -		    default_mkdir_cbk, +	STACK_WIND (frame, default_mkdir_cbk,  		    FIRST_CHILD(this),  		    FIRST_CHILD(this)->fops->mkdir, -		    loc, mode); +		    loc, mode, params);  	return 0;  } diff --git a/libglusterfs/src/defaults.h b/libglusterfs/src/defaults.h index b951b0781da..f58d55e1a73 100644 --- a/libglusterfs/src/defaults.h +++ b/libglusterfs/src/defaults.h @@ -85,10 +85,8 @@ int32_t default_readlink (call_frame_t *frame,  int32_t default_mknod (call_frame_t *frame, xlator_t *this,  		       loc_t *loc, mode_t mode, dev_t rdev, dict_t *params); -int32_t default_mkdir (call_frame_t *frame, -		       xlator_t *this, -		       loc_t *loc, -		       mode_t mode); +int32_t default_mkdir (call_frame_t *frame, xlator_t *this, +		       loc_t *loc, mode_t mode, dict_t *params);  int32_t default_unlink (call_frame_t *frame,  			xlator_t *this, diff --git a/libglusterfs/src/xlator.h b/libglusterfs/src/xlator.h index 73ca9e0c648..84839418374 100644 --- a/libglusterfs/src/xlator.h +++ b/libglusterfs/src/xlator.h @@ -447,10 +447,8 @@ typedef int32_t (*fop_mknod_t) (call_frame_t *frame, xlator_t *this,  				loc_t *loc, mode_t mode, dev_t rdev,                                  dict_t *params); -typedef int32_t (*fop_mkdir_t) (call_frame_t *frame, -				xlator_t *this, -				loc_t *loc, -				mode_t mode); +typedef int32_t (*fop_mkdir_t) (call_frame_t *frame, xlator_t *this, +				loc_t *loc, mode_t mode, dict_t *params);  typedef int32_t (*fop_unlink_t) (call_frame_t *frame,  				 xlator_t *this, diff --git a/xlators/cluster/afr/src/afr-common.c b/xlators/cluster/afr/src/afr-common.c index 1cbc3ba558f..e5330b4e468 100644 --- a/xlators/cluster/afr/src/afr-common.c +++ b/xlators/cluster/afr/src/afr-common.c @@ -400,6 +400,11 @@ afr_local_cleanup (afr_local_t *local, xlator_t *this)                          dict_unref (local->cont.mknod.params);  	} +	{ /* mkdir */ +                if (local->cont.mkdir.params) +                        dict_unref (local->cont.mkdir.params); +	} +  	{ /* writev */  		GF_FREE (local->cont.writev.vector);  	} diff --git a/xlators/cluster/afr/src/afr-dir-write.c b/xlators/cluster/afr/src/afr-dir-write.c index d1077af9eef..70da6f94955 100644 --- a/xlators/cluster/afr/src/afr-dir-write.c +++ b/xlators/cluster/afr/src/afr-dir-write.c @@ -762,7 +762,8 @@ afr_mkdir_wind (call_frame_t *frame, xlator_t *this)  					   (void *) (long) i,	  					   priv->children[i],   					   priv->children[i]->fops->mkdir, -					   &local->loc, local->cont.mkdir.mode); +					   &local->loc, local->cont.mkdir.mode, +                                           local->cont.mkdir.params);  			if (!--call_count)  				break;  		} @@ -789,7 +790,7 @@ afr_mkdir_done (call_frame_t *frame, xlator_t *this)  int  afr_mkdir (call_frame_t *frame, xlator_t *this, -	   loc_t *loc, mode_t mode) +	   loc_t *loc, mode_t mode, dict_t *params)  {  	afr_private_t * priv  = NULL;  	afr_local_t   * local = NULL; @@ -833,6 +834,8 @@ afr_mkdir (call_frame_t *frame, xlator_t *this,          UNLOCK (&priv->read_child_lock);  	local->cont.mkdir.mode  = mode; +        if (params) +                local->cont.mkdir.params = dict_ref (params);          if (loc->parent)                  local->cont.mkdir.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 2394c46698b..878e1e714cf 100644 --- a/xlators/cluster/afr/src/afr-dir-write.h +++ b/xlators/cluster/afr/src/afr-dir-write.h @@ -31,7 +31,7 @@ afr_mknod (call_frame_t *frame, xlator_t *this,  int32_t  afr_mkdir (call_frame_t *frame, xlator_t *this, -	   loc_t *loc, mode_t mode); +	   loc_t *loc, mode_t mode, dict_t *params);  int32_t  afr_unlink (call_frame_t *frame, xlator_t *this, diff --git a/xlators/cluster/afr/src/afr-self-heal-common.c b/xlators/cluster/afr/src/afr-self-heal-common.c index cc26abc02a0..fda879d3cb2 100644 --- a/xlators/cluster/afr/src/afr-self-heal-common.c +++ b/xlators/cluster/afr/src/afr-self-heal-common.c @@ -1070,7 +1070,7 @@ sh_missing_entries_mkdir (call_frame_t *frame, xlator_t *this)                                                     (void *) (long) i,                                                     priv->children[i],                                                     priv->children[i]->fops->mkdir, -                                                   &local->loc, st_mode); +                                                   &local->loc, st_mode, NULL);                                  if (!--call_count)                                          break;                          } diff --git a/xlators/cluster/afr/src/afr-self-heal-entry.c b/xlators/cluster/afr/src/afr-self-heal-entry.c index f95d8fc7e9c..140795bdd7f 100644 --- a/xlators/cluster/afr/src/afr-self-heal-entry.c +++ b/xlators/cluster/afr/src/afr-self-heal-entry.c @@ -575,7 +575,7 @@ afr_sh_entry_expunge_lookup_trash_cbk (call_frame_t *expunge_frame, void *cookie                                     (void *) (long) active_src,                                     priv->children[active_src],                                     priv->children[active_src]->fops->mkdir, -                                   &trash_loc, 0777); +                                   &trash_loc, 0777, NULL);                  loc_wipe (&trash_loc);                  return 0; @@ -1315,7 +1315,8 @@ afr_sh_entry_impunge_mkdir (call_frame_t *impunge_frame, xlator_t *this,  			   priv->children[child_index],  			   priv->children[child_index]->fops->mkdir,  			   &impunge_local->loc, -                           st_mode_from_ia (stbuf->ia_prot, stbuf->ia_type)); +                           st_mode_from_ia (stbuf->ia_prot, stbuf->ia_type), +                           NULL);  	return 0;  } diff --git a/xlators/cluster/afr/src/afr.h b/xlators/cluster/afr/src/afr.h index 2f44dce7073..85f66c8255c 100644 --- a/xlators/cluster/afr/src/afr.h +++ b/xlators/cluster/afr/src/afr.h @@ -509,6 +509,7 @@ typedef struct _afr_local {                          uint64_t gen;                          ino_t parent_ino;  			int32_t mode; +                        dict_t *params;  			inode_t *inode;  			struct iatt buf;                          struct iatt read_child_buf; diff --git a/xlators/cluster/dht/src/dht-common.c b/xlators/cluster/dht/src/dht-common.c index bf84dfa6b22..0da8ad73eef 100644 --- a/xlators/cluster/dht/src/dht-common.c +++ b/xlators/cluster/dht/src/dht-common.c @@ -3493,7 +3493,7 @@ dht_mkdir_hashed_cbk (call_frame_t *frame, void *cookie,  		STACK_WIND (frame, dht_mkdir_cbk,  			    conf->subvolumes[i],  			    conf->subvolumes[i]->fops->mkdir, -			    &local->loc, local->mode); +			    &local->loc, local->mode, local->params);  	}  	return 0;  err: @@ -3501,9 +3501,10 @@ err:          return 0;  } +  int  dht_mkdir (call_frame_t *frame, xlator_t *this, -	   loc_t *loc, mode_t mode) +	   loc_t *loc, mode_t mode, dict_t *params)  {  	dht_local_t  *local  = NULL;  	dht_conf_t   *conf = NULL; @@ -3552,6 +3553,8 @@ dht_mkdir (call_frame_t *frame, xlator_t *this,  		goto err;  	} +        local->params = dict_ref (params); +  	local->layout = dht_layout_new (this, conf->subvolume_cnt);  	if (!local->layout) {  		gf_log (this->name, GF_LOG_ERROR, @@ -3563,7 +3566,7 @@ dht_mkdir (call_frame_t *frame, xlator_t *this,  	STACK_WIND (frame, dht_mkdir_hashed_cbk,  		    hashed_subvol,  		    hashed_subvol->fops->mkdir, -		    loc, mode); +		    loc, mode, params);  	return 0; diff --git a/xlators/cluster/dht/src/dht-selfheal.c b/xlators/cluster/dht/src/dht-selfheal.c index f3504935ded..d5d9892b556 100644 --- a/xlators/cluster/dht/src/dht-selfheal.c +++ b/xlators/cluster/dht/src/dht-selfheal.c @@ -277,7 +277,8 @@ dht_selfheal_dir_mkdir (call_frame_t *frame, loc_t *loc,  				    layout->list[i].xlator->fops->mkdir,  				    loc,                                      st_mode_from_ia (local->stbuf.ia_prot, -                                                     local->stbuf.ia_type)); +                                                     local->stbuf.ia_type), +                                    NULL);  		}  	} diff --git a/xlators/cluster/stripe/src/stripe.c b/xlators/cluster/stripe/src/stripe.c index 658b9a1b004..5ec3d668121 100644 --- a/xlators/cluster/stripe/src/stripe.c +++ b/xlators/cluster/stripe/src/stripe.c @@ -188,7 +188,8 @@ stripe_entry_self_heal (call_frame_t *frame, xlator_t *this,                          STACK_WIND (rframe, stripe_sh_make_entry_cbk,                                      trav->xlator, trav->xlator->fops->mkdir,                                      &local->loc, st_mode_from_ia (local->stbuf.ia_prot, -                                                                  local->stbuf.ia_type)); +                                                                  local->stbuf.ia_type), +                                    NULL);                  }                  trav = trav->next;          } @@ -1585,8 +1586,10 @@ out:          return 0;  } -int32_t -stripe_mkdir (call_frame_t *frame, xlator_t *this, loc_t *loc, mode_t mode) + +int +stripe_mkdir (call_frame_t *frame, xlator_t *this, loc_t *loc, mode_t mode, +              dict_t *params)  {          stripe_private_t *priv = NULL;          stripe_local_t   *local = NULL; @@ -1622,7 +1625,7 @@ stripe_mkdir (call_frame_t *frame, xlator_t *this, loc_t *loc, mode_t mode)          while (trav) {                  STACK_WIND (frame, stripe_mkdir_cbk,                              trav->xlator, trav->xlator->fops->mkdir, -                            loc, mode); +                            loc, mode, params);                  trav = trav->next;          } diff --git a/xlators/debug/error-gen/src/error-gen.c b/xlators/debug/error-gen/src/error-gen.c index 955b197ed63..e7ed8c6a850 100644 --- a/xlators/debug/error-gen/src/error-gen.c +++ b/xlators/debug/error-gen/src/error-gen.c @@ -730,7 +730,7 @@ error_gen_mkdir_cbk (call_frame_t *frame, void *cookie, xlator_t *this,  int  error_gen_mkdir (call_frame_t *frame, xlator_t *this, -		 loc_t *loc, mode_t mode) +		 loc_t *loc, mode_t mode, dict_t *params)  {  	int              op_errno = 0;          eg_t            *egp = NULL; @@ -752,7 +752,7 @@ error_gen_mkdir (call_frame_t *frame, xlator_t *this,  	STACK_WIND (frame, error_gen_mkdir_cbk,  		    FIRST_CHILD(this),  		    FIRST_CHILD(this)->fops->mkdir, -		    loc, mode); +		    loc, mode, params);  	return 0;  } diff --git a/xlators/debug/io-stats/src/io-stats.c b/xlators/debug/io-stats/src/io-stats.c index ce2bac51ad9..b283bd7b4bc 100644 --- a/xlators/debug/io-stats/src/io-stats.c +++ b/xlators/debug/io-stats/src/io-stats.c @@ -884,14 +884,14 @@ io_stats_mknod (call_frame_t *frame, xlator_t *this,  int  io_stats_mkdir (call_frame_t *frame, xlator_t *this, -                loc_t *loc, mode_t mode) +                loc_t *loc, mode_t mode, dict_t *params)  {          BUMP_FOP (MKDIR);          STACK_WIND (frame, io_stats_mkdir_cbk,                      FIRST_CHILD(this),                      FIRST_CHILD(this)->fops->mkdir, -                    loc, mode); +                    loc, mode, params);          return 0;  } diff --git a/xlators/debug/trace/src/trace.c b/xlators/debug/trace/src/trace.c index 339ebeaf57f..7b5164c8439 100644 --- a/xlators/debug/trace/src/trace.c +++ b/xlators/debug/trace/src/trace.c @@ -1349,7 +1349,8 @@ trace_mknod (call_frame_t *frame, xlator_t *this, loc_t *loc,  int -trace_mkdir (call_frame_t *frame, xlator_t *this, loc_t *loc, mode_t mode) +trace_mkdir (call_frame_t *frame, xlator_t *this, loc_t *loc, mode_t mode, +             dict_t *params)  {          if (trace_fop_names[GF_FOP_MKDIR].enabled) {                  gf_log (this->name, GF_LOG_NORMAL, @@ -1361,7 +1362,7 @@ trace_mkdir (call_frame_t *frame, xlator_t *this, loc_t *loc, mode_t mode)          STACK_WIND (frame, trace_mkdir_cbk,                      FIRST_CHILD(this),                      FIRST_CHILD(this)->fops->mkdir, -                    loc, mode); +                    loc, mode, params);          return 0;  } diff --git a/xlators/features/access-control/src/access-control.c b/xlators/features/access-control/src/access-control.c index 1601a49526e..159debb3f01 100644 --- a/xlators/features/access-control/src/access-control.c +++ b/xlators/features/access-control/src/access-control.c @@ -626,11 +626,12 @@ out:  } -int32_t -ac_mkdir_resume (call_frame_t *frame, xlator_t *this, loc_t *loc, mode_t mode) +int +ac_mkdir_resume (call_frame_t *frame, xlator_t *this, loc_t *loc, mode_t mode, +                 dict_t *params)  {          STACK_WIND (frame, default_mkdir_cbk, FIRST_CHILD(this), -                    FIRST_CHILD(this)->fops->mkdir, loc, mode); +                    FIRST_CHILD(this)->fops->mkdir, loc, mode, params);          return 0;  } @@ -670,14 +671,15 @@ out:  } -int32_t -ac_mkdir (call_frame_t *frame, xlator_t *this, loc_t *loc, mode_t mode) +int +ac_mkdir (call_frame_t *frame, xlator_t *this, loc_t *loc, mode_t mode, +          dict_t *params)  {          call_stub_t     *stub = NULL;          int             ret = -EFAULT;          loc_t           parentloc = {0, }; -        stub = fop_mkdir_stub (frame, ac_mkdir_resume, loc, mode); +        stub = fop_mkdir_stub (frame, ac_mkdir_resume, loc, mode, params);  	if (!stub) {  		gf_log (this->name, GF_LOG_ERROR, "cannot create call stub: "                          "(out of memory)"); diff --git a/xlators/features/quota/src/quota.c b/xlators/features/quota/src/quota.c index e6b4569006c..002f6b35b51 100644 --- a/xlators/features/quota/src/quota.c +++ b/xlators/features/quota/src/quota.c @@ -377,7 +377,8 @@ quota_mkdir_cbk (call_frame_t *frame, void *cookie, xlator_t *this,  int -quota_mkdir (call_frame_t *frame, xlator_t *this, loc_t *loc, mode_t mode) +quota_mkdir (call_frame_t *frame, xlator_t *this, loc_t *loc, mode_t mode, +             dict_t *params)  {  	struct quota_priv *priv = NULL; @@ -405,7 +406,7 @@ quota_mkdir (call_frame_t *frame, xlator_t *this, loc_t *loc, mode_t mode)  	STACK_WIND (frame, quota_mkdir_cbk,  		    FIRST_CHILD(this),  		    FIRST_CHILD(this)->fops->mkdir, -		    loc, mode); +		    loc, mode, params);  	return 0;  } diff --git a/xlators/features/read-only/src/read-only.c b/xlators/features/read-only/src/read-only.c index 0c1b06e781e..9ebbdaaba0f 100644 --- a/xlators/features/read-only/src/read-only.c +++ b/xlators/features/read-only/src/read-only.c @@ -122,8 +122,9 @@ ro_mknod (call_frame_t *frame, xlator_t *this, loc_t *loc, mode_t mode,  } -int32_t -ro_mkdir (call_frame_t *frame, xlator_t *this, loc_t *loc, mode_t mode) +int +ro_mkdir (call_frame_t *frame, xlator_t *this, loc_t *loc, mode_t mode, +          dict_t *params)  {          STACK_UNWIND_STRICT (mkdir, frame, -1, EROFS, NULL, NULL, NULL, NULL);          return 0; diff --git a/xlators/features/trash/src/trash.c b/xlators/features/trash/src/trash.c index dd61929d7ff..1fb4377bad3 100644 --- a/xlators/features/trash/src/trash.c +++ b/xlators/features/trash/src/trash.c @@ -124,7 +124,7 @@ trash_unlink_mkdir_cbk (call_frame_t *frame, void *cookie, xlator_t *this,                  STACK_WIND_COOKIE (frame, trash_unlink_mkdir_cbk, tmp_path,                                     this->children->xlator,                                     this->children->xlator->fops->mkdir, -                                   &tmp_loc, 0755); +                                   &tmp_loc, 0755, NULL);                  goto out;          } @@ -166,7 +166,7 @@ trash_unlink_mkdir_cbk (call_frame_t *frame, void *cookie, xlator_t *this,          STACK_WIND_COOKIE (frame, trash_unlink_mkdir_cbk, tmp_path,                             this->children->xlator,                             this->children->xlator->fops->mkdir, -                           &tmp_loc, 0755); +                           &tmp_loc, 0755, NULL);  out:          GF_FREE (cookie); @@ -215,7 +215,7 @@ trash_unlink_rename_cbk (call_frame_t *frame, void *cookie, xlator_t *this,                  STACK_WIND_COOKIE (frame, trash_unlink_mkdir_cbk, tmp_cookie,                                     FIRST_CHILD(this),                                     FIRST_CHILD(this)->fops->mkdir, -                                   &tmp_loc, 0755); +                                   &tmp_loc, 0755, NULL);                  GF_FREE (tmp_str); @@ -360,7 +360,7 @@ trash_rename_rename_cbk (call_frame_t *frame, void *cookie, xlator_t *this,                  STACK_WIND_COOKIE (frame, trash_rename_mkdir_cbk, tmp_path,                                     this->children->xlator,                                     this->children->xlator->fops->mkdir, -                                   &tmp_loc, 0755); +                                   &tmp_loc, 0755, NULL);                  GF_FREE (tmp_str);                  return 0; @@ -426,7 +426,7 @@ trash_rename_mkdir_cbk (call_frame_t *frame, void *cookie, xlator_t *this,                          STACK_WIND_COOKIE (frame, trash_rename_mkdir_cbk,                                             tmp_path,  this->children->xlator,                                             this->children->xlator->fops->mkdir, -                                           &tmp_loc, 0755); +                                           &tmp_loc, 0755, NULL);                  }                  goto out; @@ -805,7 +805,7 @@ trash_truncate_create_cbk (call_frame_t *frame, void *cookie, xlator_t *this,                  STACK_WIND_COOKIE (frame, trash_truncate_mkdir_cbk,                                     tmp_path, FIRST_CHILD(this),                                     FIRST_CHILD(this)->fops->mkdir, -                                   &tmp_loc, 0755); +                                   &tmp_loc, 0755, NULL);                  GF_FREE (tmp_str);                  goto out;          } @@ -883,7 +883,7 @@ trash_truncate_mkdir_cbk (call_frame_t *frame, void *cookie, xlator_t *this,                  STACK_WIND_COOKIE (frame, trash_truncate_mkdir_cbk,                                     tmp_path, this->children->xlator,                                     this->children->xlator->fops->mkdir, -                                   &tmp_loc, 0755); +                                   &tmp_loc, 0755, NULL);                  goto out;          } @@ -930,7 +930,7 @@ trash_truncate_mkdir_cbk (call_frame_t *frame, void *cookie, xlator_t *this,          STACK_WIND_COOKIE (frame, trash_truncate_mkdir_cbk, tmp_path,                             this->children->xlator,                             this->children->xlator->fops->mkdir, -                           &tmp_loc, 0755); +                           &tmp_loc, 0755, NULL);  out:          GF_FREE (cookie); /* strdup (dir_name) was sent here :) */ @@ -1182,7 +1182,7 @@ trash_ftruncate_create_cbk (call_frame_t *frame, void *cookie, xlator_t *this,                  STACK_WIND_COOKIE (frame, trash_truncate_mkdir_cbk,                                     tmp_path, FIRST_CHILD(this),                                     FIRST_CHILD(this)->fops->mkdir, -                                   &tmp_loc, 0755); +                                   &tmp_loc, 0755, NULL);                  GF_FREE (tmp_str);                  return 0;          } @@ -1251,7 +1251,7 @@ trash_ftruncate_mkdir_cbk (call_frame_t *frame, void *cookie, xlator_t *this,                  STACK_WIND_COOKIE (frame, trash_ftruncate_mkdir_cbk,                                     tmp_path, this->children->xlator,                                     this->children->xlator->fops->mkdir, -                                   &tmp_loc, 0755); +                                   &tmp_loc, 0755, NULL);                  goto out;          } @@ -1298,7 +1298,7 @@ trash_ftruncate_mkdir_cbk (call_frame_t *frame, void *cookie, xlator_t *this,          STACK_WIND_COOKIE (frame, trash_ftruncate_mkdir_cbk, tmp_path,                             this->children->xlator,                             this->children->xlator->fops->mkdir, -                           &tmp_loc, 0755); +                           &tmp_loc, 0755, NULL);  out:          GF_FREE (cookie); /* strdup (dir_name) was sent here :) */ diff --git a/xlators/mount/fuse/src/fuse-bridge.c b/xlators/mount/fuse/src/fuse-bridge.c index 2a5369769d8..6ff5dafa7a5 100644 --- a/xlators/mount/fuse/src/fuse-bridge.c +++ b/xlators/mount/fuse/src/fuse-bridge.c @@ -1079,7 +1079,7 @@ fuse_mkdir_resume (fuse_state_t *state)                  state->loc.path);          FUSE_FOP (state, fuse_newentry_cbk, GF_FOP_MKDIR, -                  mkdir, &state->loc, state->mode); +                  mkdir, &state->loc, state->mode, NULL);  }  static void diff --git a/xlators/nfs/server/src/nfs-fops.c b/xlators/nfs/server/src/nfs-fops.c index 75b8e0103b8..a71e1204a44 100644 --- a/xlators/nfs/server/src/nfs-fops.c +++ b/xlators/nfs/server/src/nfs-fops.c @@ -701,8 +701,8 @@ nfs_fop_mkdir (xlator_t *nfsx, xlator_t *xl, nfs_user_t *nfu, loc_t *pathloc,          nfs_fop_handle_local_init (frame, nfsx, nfl, cbk, local, ret, err);          nfs_fop_save_root_ino (nfl, pathloc); -        STACK_WIND_COOKIE (frame, nfs_fop_mkdir_cbk, xl, xl, xl->fops->mkdir, -                           pathloc, mode); +        STACK_WIND_COOKIE  (frame, nfs_fop_mkdir_cbk, xl, xl, xl->fops->mkdir, +                            pathloc, mode, NULL);          ret = 0;  err:          if (ret < 0) { diff --git a/xlators/performance/io-threads/src/io-threads.c b/xlators/performance/io-threads/src/io-threads.c index 0901a882bd3..a9c596fb944 100644 --- a/xlators/performance/io-threads/src/io-threads.c +++ b/xlators/performance/io-threads/src/io-threads.c @@ -482,21 +482,23 @@ iot_mkdir_cbk (call_frame_t *frame, void * cookie, xlator_t *this,  int -iot_mkdir_wrapper (call_frame_t *frame, xlator_t *this, loc_t *loc, mode_t mode) +iot_mkdir_wrapper (call_frame_t *frame, xlator_t *this, loc_t *loc, mode_t mode, +                   dict_t *params)  {          STACK_WIND (frame, iot_mkdir_cbk, FIRST_CHILD (this), -                    FIRST_CHILD (this)->fops->mkdir, loc, mode); +                    FIRST_CHILD (this)->fops->mkdir, loc, mode, params);          return 0;  }  int -iot_mkdir (call_frame_t *frame, xlator_t *this, loc_t *loc, mode_t mode) +iot_mkdir (call_frame_t *frame, xlator_t *this, loc_t *loc, mode_t mode, +           dict_t *params)  {          call_stub_t     *stub = NULL;          int             ret = -1; -        stub = fop_mkdir_stub (frame, iot_mkdir_wrapper, loc, mode); +        stub = fop_mkdir_stub (frame, iot_mkdir_wrapper, loc, mode, params);          if (!stub) {                  gf_log (this->name, GF_LOG_ERROR, "cannot create mkdir stub"                          "(out of memory)"); diff --git a/xlators/performance/stat-prefetch/src/stat-prefetch.c b/xlators/performance/stat-prefetch/src/stat-prefetch.c index f82b50e1bdc..cd784dcf07f 100644 --- a/xlators/performance/stat-prefetch/src/stat-prefetch.c +++ b/xlators/performance/stat-prefetch/src/stat-prefetch.c @@ -1697,8 +1697,9 @@ out:  } -int32_t -sp_mkdir (call_frame_t *frame, xlator_t *this, loc_t *loc, mode_t mode) +int +sp_mkdir (call_frame_t *frame, xlator_t *this, loc_t *loc, mode_t mode, +          dict_t *params)  {          int32_t         ret          = -1, op_errno = -1;          char            need_unwind  = 1; @@ -1750,7 +1751,7 @@ out:                                   NULL);          } else {                  STACK_WIND (frame, sp_new_entry_cbk, FIRST_CHILD(this), -                            FIRST_CHILD(this)->fops->mkdir, loc, mode); +                            FIRST_CHILD(this)->fops->mkdir, loc, mode, params);          }          return 0; diff --git a/xlators/protocol/client/src/client.c b/xlators/protocol/client/src/client.c index ef33fbe891d..e5e5bd11198 100644 --- a/xlators/protocol/client/src/client.c +++ b/xlators/protocol/client/src/client.c @@ -387,10 +387,9 @@ out:  } - -int32_t +int  client_mkdir (call_frame_t *frame, xlator_t *this, loc_t *loc, -              mode_t mode) +              mode_t mode, dict_t *params)  {          int          ret  = -1;          clnt_conf_t *conf = NULL; diff --git a/xlators/protocol/legacy/client/src/client-protocol.c b/xlators/protocol/legacy/client/src/client-protocol.c index 5e811949e09..e0f716ed965 100644 --- a/xlators/protocol/legacy/client/src/client-protocol.c +++ b/xlators/protocol/legacy/client/src/client-protocol.c @@ -1011,7 +1011,8 @@ unwind:   * external reference through client_protocol_xlator->fops->mkdir   */  int -client_mkdir (call_frame_t *frame, xlator_t *this, loc_t *loc, mode_t mode) +client_mkdir (call_frame_t *frame, xlator_t *this, loc_t *loc, mode_t mode, +              dict_t *params)  {          gf_hdr_common_t    *hdr = NULL;          gf_fop_mkdir_req_t *req = NULL; diff --git a/xlators/protocol/legacy/server/src/server-protocol.c b/xlators/protocol/legacy/server/src/server-protocol.c index 730b4f8131d..4c48e75a9ec 100644 --- a/xlators/protocol/legacy/server/src/server-protocol.c +++ b/xlators/protocol/legacy/server/src/server-protocol.c @@ -4212,7 +4212,8 @@ server_mkdir_resume (call_frame_t *frame, xlator_t *bound_xl)          STACK_WIND (frame, server_mkdir_cbk,                      bound_xl, bound_xl->fops->mkdir, -                    &(state->loc), state->mode); +                    &(state->loc), state->mode, +                    state->params);          return 0;  err: diff --git a/xlators/protocol/server/src/server3_1-fops.c b/xlators/protocol/server/src/server3_1-fops.c index 926a5574a42..ecafb57f52b 100644 --- a/xlators/protocol/server/src/server3_1-fops.c +++ b/xlators/protocol/server/src/server3_1-fops.c @@ -2011,7 +2011,7 @@ server_mkdir_resume (call_frame_t *frame, xlator_t *bound_xl)          STACK_WIND (frame, server_mkdir_cbk,                      bound_xl, bound_xl->fops->mkdir, -                    &(state->loc), state->mode); +                    &(state->loc), state->mode, state->params);          return 0;  err: diff --git a/xlators/storage/posix/src/posix.c b/xlators/storage/posix/src/posix.c index f732a20c8a8..1afbffab844 100644 --- a/xlators/storage/posix/src/posix.c +++ b/xlators/storage/posix/src/posix.c @@ -1327,9 +1327,9 @@ unlock:  } -int32_t +int  posix_mkdir (call_frame_t *frame, xlator_t *this, -             loc_t *loc, mode_t mode) +             loc_t *loc, mode_t mode, dict_t *params)  {          int32_t               op_ret      = -1;          int32_t               op_errno    = 0;  | 
