diff options
| author | Vikas Gorur <vikas@zresearch.com> | 2009-02-23 02:33:11 -0800 | 
|---|---|---|
| committer | Anand V. Avati <avati@amp.gluster.com> | 2009-02-23 19:31:52 +0530 | 
| commit | a3ed4474de9db5bda606b374f3d8cb1cdbf8a9fb (patch) | |
| tree | 23da9bd50c184564c531a15a8c396af48499f07a /libglusterfs/src/call-stub.c | |
| parent | 80066c23da120621f26d83d631e204ab2943d181 (diff) | |
added lock_notify and lock_fnotify FOPs to everywhere necessary in libglusterfs/*
fixed indentation and resubmitting
Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
Diffstat (limited to 'libglusterfs/src/call-stub.c')
| -rw-r--r-- | libglusterfs/src/call-stub.c | 140 | 
1 files changed, 140 insertions, 0 deletions
diff --git a/libglusterfs/src/call-stub.c b/libglusterfs/src/call-stub.c index cd735725960..76f0a736a2b 100644 --- a/libglusterfs/src/call-stub.c +++ b/libglusterfs/src/call-stub.c @@ -2062,6 +2062,91 @@ fop_fxattrop_stub (call_frame_t *frame,  } +call_stub_t * +fop_lock_notify_cbk_stub (call_frame_t *frame, fop_lock_notify_cbk_t fn, +                          int32_t op_ret, int32_t op_errno) +{ +	call_stub_t *stub = NULL; + +	GF_VALIDATE_OR_GOTO ("call-stub", frame, out); +	 +	stub = stub_new (frame, 0, GF_FOP_LOCK_NOTIFY); +	GF_VALIDATE_OR_GOTO ("call-stub", stub, out); + +	stub->args.lock_notify_cbk.fn       = fn; +	stub->args.lock_notify_cbk.op_ret   = op_ret; +	stub->args.lock_notify_cbk.op_errno = op_errno; + +out: +	return stub; +} + + +call_stub_t * +fop_lock_notify_stub (call_frame_t *frame, fop_lock_notify_t fn, +		      loc_t *loc, int32_t timeout) +{ +	call_stub_t *stub = NULL; + +	if (!frame) +		return NULL; + +	stub = stub_new (frame, 1, GF_FOP_LOCK_NOTIFY); +	if (!stub) +		return NULL; + +	stub->args.lock_notify.fn = fn; +	 +	loc_copy (&stub->args.lock_notify.loc, loc); + +	stub->args.lock_notify.timeout = timeout; + +	return stub; +} + + +call_stub_t * +fop_lock_fnotify_cbk_stub (call_frame_t *frame, fop_lock_fnotify_cbk_t fn, +                           int32_t op_ret, int32_t op_errno) +{ +	call_stub_t *stub = NULL; + +	GF_VALIDATE_OR_GOTO ("call-stub", frame, out); +	 +	stub = stub_new (frame, 0, GF_FOP_LOCK_FNOTIFY); +	GF_VALIDATE_OR_GOTO ("call-stub", stub, out); + +	stub->args.lock_fnotify_cbk.fn       = fn; +	stub->args.lock_fnotify_cbk.op_ret   = op_ret; +	stub->args.lock_fnotify_cbk.op_errno = op_errno; + +out: +	return stub; +} + + +call_stub_t * +fop_lock_fnotify_stub (call_frame_t *frame, fop_lock_fnotify_t fn, +		       fd_t *fd, int32_t timeout) +{ +	call_stub_t *stub = NULL; + +	if (!frame) +		return NULL; + +	stub = stub_new (frame, 1, GF_FOP_LOCK_FNOTIFY); +	if (!stub) +		return NULL; + +	stub->args.lock_fnotify.fn = fn; + +	stub->args.lock_fnotify.fd      = fd_ref (fd); +	stub->args.lock_fnotify.timeout = timeout; + +	return stub; +} + +  static void  call_resume_wind (call_stub_t *stub)  { @@ -2458,6 +2543,22 @@ call_resume_wind (call_stub_t *stub)  		break;  	} +	case GF_FOP_LOCK_NOTIFY: +	{ +		stub->args.lock_notify.fn (stub->frame, +					   stub->frame->this, +					   &stub->args.lock_notify.loc, +					   stub->args.lock_notify.timeout); +		break; +	} +	case GF_FOP_LOCK_FNOTIFY: +	{ +		stub->args.lock_fnotify.fn (stub->frame, +					    stub->frame->this, +					    stub->args.lock_fnotify.fd, +					    stub->args.lock_fnotify.timeout); +		break; +	}  	default:  	{  		gf_log ("call-stub", @@ -3232,6 +3333,34 @@ call_resume_unwind (call_stub_t *stub)  		break;  	} +	case GF_FOP_LOCK_NOTIFY: +	{ +		if (!stub->args.lock_notify_cbk.fn) +			STACK_UNWIND (stub->frame, +				      stub->args.lock_notify_cbk.op_ret, +				      stub->args.lock_notify_cbk.op_errno); +		else +			stub->args.lock_notify_cbk.fn (stub->frame, +						       stub->frame->cookie, +						       stub->frame->this, +						       stub->args.lock_notify_cbk.op_ret, +						       stub->args.lock_notify_cbk.op_errno); +		break; +	} +	case GF_FOP_LOCK_FNOTIFY: +	{ +		if (!stub->args.lock_fnotify_cbk.fn) +			STACK_UNWIND (stub->frame, +				      stub->args.lock_fnotify_cbk.op_ret, +				      stub->args.lock_fnotify_cbk.op_errno); +		else +			stub->args.lock_fnotify_cbk.fn (stub->frame, +							stub->frame->cookie, +							stub->frame->this, +							stub->args.lock_fnotify_cbk.op_ret, +							stub->args.lock_fnotify_cbk.op_errno); +		break; +	}  	case GF_FOP_MAXVALUE:  	{  		gf_log ("call-stub", @@ -3540,6 +3669,17 @@ call_stub_destroy_wind (call_stub_t *stub)  		dict_unref (stub->args.xattrop.xattr);  		break;  	} +	case GF_FOP_LOCK_NOTIFY: +	{ +		loc_wipe (&stub->args.lock_notify.loc); +		break; +	} +	case GF_FOP_LOCK_FNOTIFY: +	{ +		if (stub->args.lock_fnotify.fd) +			fd_unref (stub->args.lock_fnotify.fd); +		break; +	}  	case GF_FOP_MAXVALUE:  	{  		gf_log ("call-stub",  | 
