@@ -23,11 +23,11 @@ struct plock_op {
23
23
struct list_head list ;
24
24
int done ;
25
25
struct dlm_plock_info info ;
26
+ int (* callback )(struct file_lock * fl , int result );
26
27
};
27
28
28
29
struct plock_xop {
29
30
struct plock_op xop ;
30
- int (* callback )(struct file_lock * fl , int result );
31
31
void * fl ;
32
32
void * file ;
33
33
struct file_lock flc ;
@@ -129,19 +129,18 @@ int dlm_posix_lock(dlm_lockspace_t *lockspace, u64 number, struct file *file,
129
129
/* fl_owner is lockd which doesn't distinguish
130
130
processes on the nfs client */
131
131
op -> info .owner = (__u64 ) fl -> fl_pid ;
132
- xop -> callback = fl -> fl_lmops -> lm_grant ;
132
+ op -> callback = fl -> fl_lmops -> lm_grant ;
133
133
locks_init_lock (& xop -> flc );
134
134
locks_copy_lock (& xop -> flc , fl );
135
135
xop -> fl = fl ;
136
136
xop -> file = file ;
137
137
} else {
138
138
op -> info .owner = (__u64 )(long ) fl -> fl_owner ;
139
- xop -> callback = NULL ;
140
139
}
141
140
142
141
send_op (op );
143
142
144
- if (xop -> callback == NULL ) {
143
+ if (! op -> callback ) {
145
144
rv = wait_event_interruptible (recv_wq , (op -> done != 0 ));
146
145
if (rv == - ERESTARTSYS ) {
147
146
log_debug (ls , "dlm_posix_lock: wait killed %llx" ,
@@ -203,7 +202,7 @@ static int dlm_plock_callback(struct plock_op *op)
203
202
file = xop -> file ;
204
203
flc = & xop -> flc ;
205
204
fl = xop -> fl ;
206
- notify = xop -> callback ;
205
+ notify = op -> callback ;
207
206
208
207
if (op -> info .rv ) {
209
208
notify (fl , op -> info .rv );
@@ -436,10 +435,9 @@ static ssize_t dev_write(struct file *file, const char __user *u, size_t count,
436
435
if (op -> info .fsid == info .fsid &&
437
436
op -> info .number == info .number &&
438
437
op -> info .owner == info .owner ) {
439
- struct plock_xop * xop = (struct plock_xop * )op ;
440
438
list_del_init (& op -> list );
441
439
memcpy (& op -> info , & info , sizeof (info ));
442
- if (xop -> callback )
440
+ if (op -> callback )
443
441
do_callback = 1 ;
444
442
else
445
443
op -> done = 1 ;
0 commit comments