diff options
32 files changed, 106 insertions, 94 deletions
diff --git a/libglusterfs/src/call-stub.c b/libglusterfs/src/call-stub.c index 4e62276fc5f..c80dfb593c3 100644 --- a/libglusterfs/src/call-stub.c +++ b/libglusterfs/src/call-stub.c @@ -393,11 +393,8 @@ out:  call_stub_t * -fop_mknod_stub (call_frame_t *frame, -		fop_mknod_t fn, -		loc_t *loc, -		mode_t mode, -		dev_t rdev) +fop_mknod_stub (call_frame_t *frame, fop_mknod_t fn, +		loc_t *loc, mode_t mode, dev_t rdev, dict_t *params)  {  	call_stub_t *stub = NULL; @@ -411,6 +408,8 @@ fop_mknod_stub (call_frame_t *frame,  	loc_copy (&stub->args.mknod.loc, loc);  	stub->args.mknod.mode = mode;  	stub->args.mknod.rdev = rdev; +        if (params) +                stub->args.mknod.params = dict_ref (params);  out:  	return stub;  } @@ -2152,11 +2151,11 @@ call_resume_wind (call_stub_t *stub)  	case GF_FOP_MKNOD:  	{ -		stub->args.mknod.fn (stub->frame, -				     stub->frame->this, +		stub->args.mknod.fn (stub->frame, stub->frame->this,  				     &stub->args.mknod.loc,  				     stub->args.mknod.mode, -				     stub->args.mknod.rdev); +				     stub->args.mknod.rdev, +                                     stub->args.mknod.params);  	}  	break; @@ -3334,6 +3333,8 @@ call_stub_destroy_wind (call_stub_t *stub)  	case GF_FOP_MKNOD:  	{  		loc_wipe (&stub->args.mknod.loc); +                if (stub->args.mknod.params) +                        dict_unref (stub->args.mknod.params);  	}  	break; diff --git a/libglusterfs/src/call-stub.h b/libglusterfs/src/call-stub.h index fd79cc2d6cf..1c46cbc0bee 100644 --- a/libglusterfs/src/call-stub.h +++ b/libglusterfs/src/call-stub.h @@ -130,6 +130,7 @@ typedef struct {  			loc_t loc;  			mode_t mode;  			dev_t rdev; +                        dict_t *params;  		} mknod;  		struct {  			fop_mknod_cbk_t fn; @@ -671,11 +672,8 @@ fop_readlink_cbk_stub (call_frame_t *frame,                         struct iatt *buf);  call_stub_t * -fop_mknod_stub (call_frame_t *frame, -		fop_mknod_t fn, -		loc_t *loc, -		mode_t mode, -		dev_t rdev); +fop_mknod_stub (call_frame_t *frame, fop_mknod_t fn, +		loc_t *loc, mode_t mode, dev_t rdev, dict_t *params);  call_stub_t *  fop_mknod_cbk_stub (call_frame_t *frame, diff --git a/libglusterfs/src/defaults.c b/libglusterfs/src/defaults.c index 8a450b6d6d6..d7018855e9d 100644 --- a/libglusterfs/src/defaults.c +++ b/libglusterfs/src/defaults.c @@ -252,18 +252,15 @@ default_mknod_cbk (call_frame_t *frame,  	return 0;  } -int32_t -default_mknod (call_frame_t *frame, -	       xlator_t *this, -	       loc_t *loc, -	       mode_t mode, -	       dev_t rdev) + +int +default_mknod (call_frame_t *frame, xlator_t *this, +	       loc_t *loc, mode_t mode, dev_t rdev, dict_t *parms)  { -	STACK_WIND (frame, -		    default_mknod_cbk, +	STACK_WIND (frame, default_mknod_cbk,  		    FIRST_CHILD(this),  		    FIRST_CHILD(this)->fops->mknod, -		    loc, mode, rdev); +		    loc, mode, rdev, parms);  	return 0;  } diff --git a/libglusterfs/src/defaults.h b/libglusterfs/src/defaults.h index 751380d3207..b951b0781da 100644 --- a/libglusterfs/src/defaults.h +++ b/libglusterfs/src/defaults.h @@ -82,11 +82,8 @@ int32_t default_readlink (call_frame_t *frame,  			  loc_t *loc,  			  size_t size); -int32_t default_mknod (call_frame_t *frame, -		       xlator_t *this, -		       loc_t *loc, -		       mode_t mode, -		       dev_t rdev); +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, diff --git a/libglusterfs/src/xlator.h b/libglusterfs/src/xlator.h index 10f0418df2d..73ca9e0c648 100644 --- a/libglusterfs/src/xlator.h +++ b/libglusterfs/src/xlator.h @@ -443,11 +443,9 @@ typedef int32_t (*fop_readlink_t) (call_frame_t *frame,  				   loc_t *loc,  				   size_t size); -typedef int32_t (*fop_mknod_t) (call_frame_t *frame, -				xlator_t *this, -				loc_t *loc, -				mode_t mode, -				dev_t rdev); +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, diff --git a/xlators/cluster/afr/src/afr-common.c b/xlators/cluster/afr/src/afr-common.c index 6a732e1180d..1cbc3ba558f 100644 --- a/xlators/cluster/afr/src/afr-common.c +++ b/xlators/cluster/afr/src/afr-common.c @@ -395,6 +395,11 @@ afr_local_cleanup (afr_local_t *local, xlator_t *this)                          dict_unref (local->cont.create.params);  	} +	{ /* mknod */ +                if (local->cont.mknod.params) +                        dict_unref (local->cont.mknod.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 3e9f48f9a2c..d1077af9eef 100644 --- a/xlators/cluster/afr/src/afr-dir-write.c +++ b/xlators/cluster/afr/src/afr-dir-write.c @@ -508,7 +508,8 @@ afr_mknod_wind (call_frame_t *frame, xlator_t *this)  					   priv->children[i],   					   priv->children[i]->fops->mknod,  					   &local->loc, local->cont.mknod.mode, -					   local->cont.mknod.dev); +					   local->cont.mknod.dev, +                                           local->cont.mknod.params);  			if (!--call_count)  				break;  		} @@ -534,7 +535,7 @@ afr_mknod_done (call_frame_t *frame, xlator_t *this)  int  afr_mknod (call_frame_t *frame, xlator_t *this, -	   loc_t *loc, mode_t mode, dev_t dev) +	   loc_t *loc, mode_t mode, dev_t dev, dict_t *params)  {  	afr_private_t * priv  = NULL;  	afr_local_t   * local = NULL; @@ -579,6 +580,8 @@ afr_mknod (call_frame_t *frame, xlator_t *this,  	local->cont.mknod.mode  = mode;  	local->cont.mknod.dev   = dev; +        if (params) +                local->cont.mknod.params = dict_ref (params);          if (loc->parent)                  local->cont.mknod.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 5369ba968a0..2394c46698b 100644 --- a/xlators/cluster/afr/src/afr-dir-write.h +++ b/xlators/cluster/afr/src/afr-dir-write.h @@ -27,7 +27,7 @@ afr_create (call_frame_t *frame, xlator_t *this,  int32_t  afr_mknod (call_frame_t *frame, xlator_t *this, -	   loc_t *loc, mode_t mode, dev_t dev); +	   loc_t *loc, mode_t mode, dev_t dev, dict_t *params);  int32_t  afr_mkdir (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 1324ea3fa3e..cc26abc02a0 100644 --- a/xlators/cluster/afr/src/afr-self-heal-common.c +++ b/xlators/cluster/afr/src/afr-self-heal-common.c @@ -987,7 +987,7 @@ sh_missing_entries_mknod (call_frame_t *frame, xlator_t *this)  	int              enoent_count = 0;  	int              call_count = 0;  	mode_t           st_mode = 0; -	dev_t            ia_gen = 0; +	dev_t            ia_dev = 0;  	local = frame->local; @@ -1003,7 +1003,7 @@ sh_missing_entries_mknod (call_frame_t *frame, xlator_t *this)  	st_mode = st_mode_from_ia (sh->buf[sh->source].ia_prot,                                     sh->buf[sh->source].ia_type); -	ia_gen  = sh->buf[sh->source].ia_gen; +	ia_dev  = sh->buf[sh->source].ia_dev;  	gf_log (this->name, GF_LOG_TRACE,  		"mknod %s mode 0%o on %d subvolumes", @@ -1016,7 +1016,7 @@ sh_missing_entries_mknod (call_frame_t *frame, xlator_t *this)  					   (void *) (long) i,  					   priv->children[i],  					   priv->children[i]->fops->mknod, -					   &local->loc, st_mode, ia_gen); +					   &local->loc, st_mode, ia_dev, 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 31f8c7bbca9..f95d8fc7e9c 100644 --- a/xlators/cluster/afr/src/afr-self-heal-entry.c +++ b/xlators/cluster/afr/src/afr-self-heal-entry.c @@ -1288,7 +1288,7 @@ afr_sh_entry_impunge_mknod (call_frame_t *impunge_frame, xlator_t *this,  			   priv->children[child_index]->fops->mknod,  			   &impunge_local->loc,  			   st_mode_from_ia (stbuf->ia_prot, stbuf->ia_type), -                           stbuf->ia_rdev); +                           stbuf->ia_rdev, NULL);  	return 0;  } diff --git a/xlators/cluster/afr/src/afr.h b/xlators/cluster/afr/src/afr.h index f222cb0f866..2f44dce7073 100644 --- a/xlators/cluster/afr/src/afr.h +++ b/xlators/cluster/afr/src/afr.h @@ -496,6 +496,7 @@ typedef struct _afr_local {                          ino_t parent_ino;  			dev_t dev;  			mode_t mode; +                        dict_t *params;  			inode_t *inode;  			struct iatt buf;                          struct iatt preparent; diff --git a/xlators/cluster/dht/src/dht-common.c b/xlators/cluster/dht/src/dht-common.c index 17ddb3247ab..bf84dfa6b22 100644 --- a/xlators/cluster/dht/src/dht-common.c +++ b/xlators/cluster/dht/src/dht-common.c @@ -2804,7 +2804,8 @@ dht_mknod_linkfile_create_cbk (call_frame_t *frame, void *cookie,          STACK_WIND (frame, dht_newfile_cbk,                      cached_subvol, cached_subvol->fops->mknod, -                    &local->loc, local->mode, local->rdev); +                    &local->loc, local->mode, local->rdev, +                    local->params);          return 0;   err: @@ -2814,7 +2815,7 @@ dht_mknod_linkfile_create_cbk (call_frame_t *frame, void *cookie,  int  dht_mknod (call_frame_t *frame, xlator_t *this, -	   loc_t *loc, mode_t mode, dev_t rdev) +	   loc_t *loc, mode_t mode, dev_t rdev, dict_t *params)  {  	xlator_t    *subvol = NULL;  	int          op_errno = -1; @@ -2862,13 +2863,14 @@ dht_mknod (call_frame_t *frame, xlator_t *this,                  STACK_WIND (frame, dht_newfile_cbk,                              subvol, subvol->fops->mknod, -                            loc, mode, rdev); +                            loc, mode, rdev, params);          } else {                  avail_subvol = dht_free_disk_available_subvol (this, subvol);                  if (avail_subvol != subvol) {                          /* Choose the minimum filled volume, and create the                              files there */ +                        local->params = dict_ref (params);                          local->cached_subvol = avail_subvol;                          local->mode = mode;                           local->rdev = rdev; @@ -2882,7 +2884,7 @@ dht_mknod (call_frame_t *frame, xlator_t *this,                          STACK_WIND (frame, dht_newfile_cbk,                                      subvol, subvol->fops->mknod, -                                    loc, mode, rdev); +                                    loc, mode, rdev, params);                  }          } diff --git a/xlators/cluster/dht/src/dht-linkfile.c b/xlators/cluster/dht/src/dht-linkfile.c index 09af83d891b..950318b7e5c 100644 --- a/xlators/cluster/dht/src/dht-linkfile.c +++ b/xlators/cluster/dht/src/dht-linkfile.c @@ -124,7 +124,7 @@ dht_linkfile_create (call_frame_t *frame, fop_mknod_cbk_t linkfile_cbk,  	STACK_WIND (frame, dht_linkfile_create_cbk,  		    fromvol, fromvol->fops->mknod, loc, -		    S_IFREG | DHT_LINKFILE_MODE, 0); +		    S_IFREG | DHT_LINKFILE_MODE, 0, NULL);  	return 0;  } diff --git a/xlators/cluster/dht/src/nufa.c b/xlators/cluster/dht/src/nufa.c index e807ff304e0..190fbae695e 100644 --- a/xlators/cluster/dht/src/nufa.c +++ b/xlators/cluster/dht/src/nufa.c @@ -410,7 +410,9 @@ nufa_mknod_linkfile_cbk (call_frame_t *frame, void *cookie, xlator_t *this,  		STACK_WIND (frame, dht_newfile_cbk,  			    local->cached_subvol,  			    local->cached_subvol->fops->mknod, -			    &local->loc, local->mode, local->rdev); +			    &local->loc, local->mode, local->rdev, +                            local->params); +  		return 0;  	} @@ -425,7 +427,7 @@ nufa_mknod_linkfile_cbk (call_frame_t *frame, void *cookie, xlator_t *this,  int  nufa_mknod (call_frame_t *frame, xlator_t *this, -	    loc_t *loc, mode_t mode, dev_t rdev) +	    loc_t *loc, mode_t mode, dev_t rdev, dict_t *params)  {  	dht_local_t *local = NULL;  	dht_conf_t  *conf  = NULL; @@ -477,6 +479,7 @@ nufa_mknod (call_frame_t *frame, xlator_t *this,  			goto err;  		} +                local->params = dict_ref (params);  		local->mode = mode;  		local->rdev = rdev;  		local->cached_subvol = avail_subvol; @@ -491,7 +494,7 @@ nufa_mknod (call_frame_t *frame, xlator_t *this,  	STACK_WIND (frame, dht_newfile_cbk,  		    subvol, subvol->fops->mknod, -		    loc, mode, rdev); +		    loc, mode, rdev, params);  	return 0; diff --git a/xlators/cluster/dht/src/switch.c b/xlators/cluster/dht/src/switch.c index f47ffb1fde4..f3de211fd4b 100644 --- a/xlators/cluster/dht/src/switch.c +++ b/xlators/cluster/dht/src/switch.c @@ -511,7 +511,8 @@ switch_mknod_linkfile_cbk (call_frame_t *frame, void *cookie, xlator_t *this,  		STACK_WIND (frame, dht_newfile_cbk,  			    local->cached_subvol,  			    local->cached_subvol->fops->mknod, -			    &local->loc, local->mode, local->rdev); +			    &local->loc, local->mode, local->rdev, +                            local->params);  		return 0;  	} @@ -524,7 +525,7 @@ switch_mknod_linkfile_cbk (call_frame_t *frame, void *cookie, xlator_t *this,  int  switch_mknod (call_frame_t *frame, xlator_t *this, -	    loc_t *loc, mode_t mode, dev_t rdev) +              loc_t *loc, mode_t mode, dev_t rdev, dict_t *params)  {  	dht_local_t *local = NULL;  	dht_conf_t  *conf  = NULL; @@ -575,6 +576,7 @@ switch_mknod (call_frame_t *frame, xlator_t *this,  			goto err;  		} +                local->params = dict_ref (params);  		local->mode = mode;  		local->rdev = rdev;  		local->cached_subvol = avail_subvol; @@ -589,7 +591,7 @@ switch_mknod (call_frame_t *frame, xlator_t *this,  	STACK_WIND (frame, dht_newfile_cbk,  		    subvol, subvol->fops->mknod, -		    loc, mode, rdev); +		    loc, mode, rdev, params);  	return 0; diff --git a/xlators/cluster/stripe/src/stripe.c b/xlators/cluster/stripe/src/stripe.c index a13bba34f52..658b9a1b004 100644 --- a/xlators/cluster/stripe/src/stripe.c +++ b/xlators/cluster/stripe/src/stripe.c @@ -181,7 +181,8 @@ stripe_entry_self_heal (call_frame_t *frame, xlator_t *this,                                      trav->xlator, trav->xlator->fops->mknod,                                      &local->loc,                                      st_mode_from_ia (local->stbuf.ia_prot, -                                                     local->stbuf.ia_type), 0); +                                                     local->stbuf.ia_type), 0, +                                    NULL);                  }                  if (IA_ISDIR (local->stbuf.ia_type)) {                          STACK_WIND (rframe, stripe_sh_make_entry_cbk, @@ -1425,9 +1426,10 @@ stripe_single_mknod_cbk (call_frame_t *frame, void *cookie, xlator_t *this,          return 0;  } -int32_t + +int  stripe_mknod (call_frame_t *frame, xlator_t *this, loc_t *loc, mode_t mode, -              dev_t rdev) +              dev_t rdev, dict_t *params)  {          stripe_private_t *priv = NULL;          stripe_local_t   *local = NULL; @@ -1482,7 +1484,7 @@ stripe_mknod (call_frame_t *frame, xlator_t *this, loc_t *loc, mode_t mode,                  while (trav) {                          STACK_WIND (frame, stripe_mknod_ifreg_cbk,                                      trav->xlator, trav->xlator->fops->mknod, -                                    loc, mode, rdev); +                                    loc, mode, rdev, params);                          trav = trav->next;                  } @@ -1492,7 +1494,7 @@ stripe_mknod (call_frame_t *frame, xlator_t *this, loc_t *loc, mode_t mode,          STACK_WIND (frame, stripe_single_mknod_cbk,                      FIRST_CHILD(this), FIRST_CHILD(this)->fops->mknod, -                    loc, mode, rdev); +                    loc, mode, rdev, params);          return 0;  err: diff --git a/xlators/debug/error-gen/src/error-gen.c b/xlators/debug/error-gen/src/error-gen.c index 0a2e77d26d5..955b197ed63 100644 --- a/xlators/debug/error-gen/src/error-gen.c +++ b/xlators/debug/error-gen/src/error-gen.c @@ -689,7 +689,7 @@ error_gen_mknod_cbk (call_frame_t *frame, void *cookie, xlator_t *this,  int  error_gen_mknod (call_frame_t *frame, xlator_t *this, loc_t *loc, -		 mode_t mode, dev_t rdev) +		 mode_t mode, dev_t rdev, dict_t *params)  {  	int              op_errno = 0;          eg_t            *egp = NULL; @@ -711,7 +711,7 @@ error_gen_mknod (call_frame_t *frame, xlator_t *this, loc_t *loc,  	STACK_WIND (frame, error_gen_mknod_cbk,  		    FIRST_CHILD(this),  		    FIRST_CHILD(this)->fops->mknod, -		    loc, mode, rdev); +		    loc, mode, rdev, params);  	return 0;  } diff --git a/xlators/debug/io-stats/src/io-stats.c b/xlators/debug/io-stats/src/io-stats.c index adc45ae87a9..ce2bac51ad9 100644 --- a/xlators/debug/io-stats/src/io-stats.c +++ b/xlators/debug/io-stats/src/io-stats.c @@ -869,14 +869,14 @@ io_stats_readlink (call_frame_t *frame, xlator_t *this,  int  io_stats_mknod (call_frame_t *frame, xlator_t *this, -                loc_t *loc, mode_t mode, dev_t dev) +                loc_t *loc, mode_t mode, dev_t dev, dict_t *params)  {          BUMP_FOP (MKNOD);          STACK_WIND (frame, io_stats_mknod_cbk,                      FIRST_CHILD(this),                      FIRST_CHILD(this)->fops->mknod, -                    loc, mode, dev); +                    loc, mode, dev, params);          return 0;  } diff --git a/xlators/debug/trace/src/trace.c b/xlators/debug/trace/src/trace.c index 16ea557933f..339ebeaf57f 100644 --- a/xlators/debug/trace/src/trace.c +++ b/xlators/debug/trace/src/trace.c @@ -1331,7 +1331,7 @@ trace_readlink (call_frame_t *frame, xlator_t *this, loc_t *loc, size_t size)  int  trace_mknod (call_frame_t *frame, xlator_t *this, loc_t *loc, -             mode_t mode, dev_t dev) +             mode_t mode, dev_t dev, dict_t *params)  {          if (trace_fop_names[GF_FOP_MKNOD].enabled) {                  gf_log (this->name, GF_LOG_NORMAL, @@ -1342,7 +1342,7 @@ trace_mknod (call_frame_t *frame, xlator_t *this, loc_t *loc,          STACK_WIND (frame, trace_mknod_cbk,                      FIRST_CHILD(this),                      FIRST_CHILD(this)->fops->mknod, -                    loc, mode, dev); +                    loc, mode, dev, params);          return 0;  } diff --git a/xlators/features/access-control/src/access-control.c b/xlators/features/access-control/src/access-control.c index 407596684f6..1601a49526e 100644 --- a/xlators/features/access-control/src/access-control.c +++ b/xlators/features/access-control/src/access-control.c @@ -545,12 +545,12 @@ out:  } -int32_t +int  ac_mknod_resume (call_frame_t *frame, xlator_t *this, loc_t *loc, mode_t mode, -                 dev_t rdev) +                 dev_t rdev, dict_t *params)  {          STACK_WIND (frame, default_mknod_cbk, FIRST_CHILD(this), -                    FIRST_CHILD(this)->fops->mknod, loc, mode, rdev); +                    FIRST_CHILD(this)->fops->mknod, loc, mode, rdev, params);          return 0;  } @@ -586,15 +586,15 @@ out:  } -int32_t +int  ac_mknod (call_frame_t *frame, xlator_t *this, loc_t *loc, mode_t mode, -          dev_t rdev) +          dev_t rdev, dict_t *params)  {          call_stub_t     *stub = NULL;          int             ret = -EFAULT;          loc_t           parentloc = {0, }; -        stub = fop_mknod_stub (frame, ac_mknod_resume, loc, mode, rdev); +        stub = fop_mknod_stub (frame, ac_mknod_resume, loc, mode, rdev, 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 82107a0a1fc..e6b4569006c 100644 --- a/xlators/features/quota/src/quota.c +++ b/xlators/features/quota/src/quota.c @@ -324,7 +324,7 @@ quota_mknod_cbk (call_frame_t *frame, void *cookie, xlator_t *this,  int  quota_mknod (call_frame_t *frame, xlator_t *this, -	     loc_t *loc, mode_t mode, dev_t rdev) +	     loc_t *loc, mode_t mode, dev_t rdev, dict_t *params)  {  	struct quota_priv *priv = NULL; @@ -351,7 +351,7 @@ quota_mknod (call_frame_t *frame, xlator_t *this,  	STACK_WIND (frame, quota_mknod_cbk,  		    FIRST_CHILD(this),  		    FIRST_CHILD(this)->fops->mknod, -		    loc, mode, rdev); +		    loc, mode, rdev, params);  	return 0;  } diff --git a/xlators/features/read-only/src/read-only.c b/xlators/features/read-only/src/read-only.c index 85cd4c8e365..0c1b06e781e 100644 --- a/xlators/features/read-only/src/read-only.c +++ b/xlators/features/read-only/src/read-only.c @@ -113,9 +113,9 @@ ro_ftruncate (call_frame_t *frame, xlator_t *this, fd_t *fd, off_t offset)  	return 0;  } -int32_t +int  ro_mknod (call_frame_t *frame, xlator_t *this, loc_t *loc, mode_t mode, -          dev_t rdev) +          dev_t rdev, dict_t *params)  {          STACK_UNWIND_STRICT (mknod, frame, -1, EROFS, NULL, NULL, NULL, NULL);          return 0; diff --git a/xlators/mount/fuse/src/fuse-bridge.c b/xlators/mount/fuse/src/fuse-bridge.c index 18e4d918031..2a5369769d8 100644 --- a/xlators/mount/fuse/src/fuse-bridge.c +++ b/xlators/mount/fuse/src/fuse-bridge.c @@ -1019,7 +1019,7 @@ fuse_mknod_resume (fuse_state_t *state)                  state->loc.path);          FUSE_FOP (state, fuse_newentry_cbk, GF_FOP_MKNOD, -                  mknod, &state->loc, state->mode, state->rdev); +                  mknod, &state->loc, state->mode, state->rdev, NULL);  } diff --git a/xlators/nfs/server/src/nfs-fops.c b/xlators/nfs/server/src/nfs-fops.c index 08d3d6a46d8..75b8e0103b8 100644 --- a/xlators/nfs/server/src/nfs-fops.c +++ b/xlators/nfs/server/src/nfs-fops.c @@ -842,8 +842,8 @@ nfs_fop_mknod (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_mknod_cbk, xl, xl, xl->fops->mknod, -                           pathloc, mode, dev); +        STACK_WIND_COOKIE  (frame, nfs_fop_mknod_cbk, xl, xl, xl->fops->mknod, +                            pathloc, mode, dev, NULL);          ret = 0;  err:          if (ret < 0) { diff --git a/xlators/performance/io-cache/src/io-cache.c b/xlators/performance/io-cache/src/io-cache.c index 88b4c7dbb2c..0809b6a82c5 100644 --- a/xlators/performance/io-cache/src/io-cache.c +++ b/xlators/performance/io-cache/src/io-cache.c @@ -698,9 +698,9 @@ ioc_mknod_cbk (call_frame_t *frame, void *cookie, xlator_t *this,  } -int32_t +int  ioc_mknod (call_frame_t *frame, xlator_t *this, loc_t *loc, mode_t mode, -           dev_t rdev) +           dev_t rdev, dict_t *params)  {          ioc_local_t *local = NULL;          int32_t      op_errno = -1, ret = -1; @@ -722,11 +722,10 @@ ioc_mknod (call_frame_t *frame, xlator_t *this, loc_t *loc, mode_t mode,          frame->local = local; -	STACK_WIND (frame, -		    ioc_mknod_cbk, +	STACK_WIND (frame, ioc_mknod_cbk,  		    FIRST_CHILD(this),  		    FIRST_CHILD(this)->fops->mknod, -		    loc, mode, rdev); +		    loc, mode, rdev, params);          return 0;  unwind: diff --git a/xlators/performance/io-threads/src/io-threads.c b/xlators/performance/io-threads/src/io-threads.c index 5992944ab42..0901a882bd3 100644 --- a/xlators/performance/io-threads/src/io-threads.c +++ b/xlators/performance/io-threads/src/io-threads.c @@ -429,22 +429,23 @@ iot_mknod_cbk (call_frame_t *frame, void *cookie, xlator_t *this,  int  iot_mknod_wrapper (call_frame_t *frame, xlator_t *this, loc_t *loc, mode_t mode, -                   dev_t rdev) +                   dev_t rdev, dict_t *params)  {          STACK_WIND (frame, iot_mknod_cbk, FIRST_CHILD (this), -                    FIRST_CHILD (this)->fops->mknod, loc, mode, rdev); +                    FIRST_CHILD (this)->fops->mknod, loc, mode, rdev, params);          return 0;  }  int  iot_mknod (call_frame_t *frame, xlator_t *this, loc_t *loc, mode_t mode, -           dev_t rdev) +           dev_t rdev, dict_t *params)  {          call_stub_t     *stub = NULL;          int             ret = -1; -        stub = fop_mknod_stub (frame, iot_mknod_wrapper, loc, mode, rdev); +        stub = fop_mknod_stub (frame, iot_mknod_wrapper, loc, mode, rdev, +                               params);          if (!stub) {                  gf_log (this->name, GF_LOG_ERROR, "cannot create mknod 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 6039bd019b9..f82b50e1bdc 100644 --- a/xlators/performance/stat-prefetch/src/stat-prefetch.c +++ b/xlators/performance/stat-prefetch/src/stat-prefetch.c @@ -1757,9 +1757,9 @@ out:  } -int32_t +int  sp_mknod (call_frame_t *frame, xlator_t *this, loc_t *loc, mode_t mode, -          dev_t rdev) +          dev_t rdev, dict_t *params)  {          int32_t         op_errno     = -1, ret = -1;          char            need_unwind  = 1; @@ -1811,7 +1811,8 @@ out:                                   NULL);          } else {                  STACK_WIND (frame, sp_new_entry_cbk, FIRST_CHILD(this), -                            FIRST_CHILD(this)->fops->mknod, loc, mode, rdev); +                            FIRST_CHILD(this)->fops->mknod, loc, mode, +                            rdev, params);          }          return 0; diff --git a/xlators/protocol/client/src/client.c b/xlators/protocol/client/src/client.c index 98289b1d67e..ef33fbe891d 100644 --- a/xlators/protocol/client/src/client.c +++ b/xlators/protocol/client/src/client.c @@ -358,10 +358,9 @@ out:  } - -int32_t +int  client_mknod (call_frame_t *frame, xlator_t *this, loc_t *loc, mode_t mode, -              dev_t rdev) +              dev_t rdev, 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 e688e0e56b2..5e811949e09 100644 --- a/xlators/protocol/legacy/client/src/client-protocol.c +++ b/xlators/protocol/legacy/client/src/client-protocol.c @@ -943,7 +943,7 @@ unwind:   */  int  client_mknod (call_frame_t *frame, xlator_t *this, loc_t *loc, mode_t mode, -              dev_t dev) +              dev_t dev, dict_t *params)  {          gf_hdr_common_t    *hdr = NULL;          gf_fop_mknod_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 1fbe86923a0..730b4f8131d 100644 --- a/xlators/protocol/legacy/server/src/server-protocol.c +++ b/xlators/protocol/legacy/server/src/server-protocol.c @@ -4157,7 +4157,8 @@ server_mknod_resume (call_frame_t *frame, xlator_t *bound_xl)          STACK_WIND (frame, server_mknod_cbk,                      bound_xl, bound_xl->fops->mknod, -                    &(state->loc), state->mode, state->dev); +                    &(state->loc), state->mode, state->dev, +                    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 644b84a2072..926a5574a42 100644 --- a/xlators/protocol/server/src/server3_1-fops.c +++ b/xlators/protocol/server/src/server3_1-fops.c @@ -2035,7 +2035,8 @@ server_mknod_resume (call_frame_t *frame, xlator_t *bound_xl)          STACK_WIND (frame, server_mknod_cbk,                      bound_xl, bound_xl->fops->mknod, -                    &(state->loc), state->mode, state->dev); +                    &(state->loc), state->mode, state->dev, +                    state->params);          return 0;  err: diff --git a/xlators/storage/posix/src/posix.c b/xlators/storage/posix/src/posix.c index aae903fee07..f732a20c8a8 100644 --- a/xlators/storage/posix/src/posix.c +++ b/xlators/storage/posix/src/posix.c @@ -1064,9 +1064,10 @@ posix_readlink (call_frame_t *frame, xlator_t *this,          return 0;  } -int32_t + +int  posix_mknod (call_frame_t *frame, xlator_t *this, -             loc_t *loc, mode_t mode, dev_t dev) +             loc_t *loc, mode_t mode, dev_t dev, dict_t *params)  {  	int                   tmp_fd      = 0;          int32_t               op_ret      = -1;  | 
