On Wed, Dec 06, 2006 at 12:34:20AM -0500, J. Bruce Fields wrote: > +int gdlm_plock_callback(struct plock_op *op) > +{ > + struct file *file; > + struct file_lock *fl; > + int rv; > + > + spin_lock(&ops_lock); > + if (!list_empty(&op->list)) { > + printk(KERN_INFO "plock op on list\n"); > + list_del(&op->list); > + } > + spin_unlock(&ops_lock); > + > + rv = op->info.rv; > + > + if (!rv) { > + /* check if the following are still valid or make a copy */ > + file = op->info.file; > + fl = op->info.fl; > + > + if (posix_lock_file_wait(file, fl) < 0) > + log_error("gdlm_plock: vfs lock error file %p fl %p", > + file, fl); > + } > + > + kfree(op); > + return rv; > +} .. > + if (found) { > + if (op->info.callback) > + gdlm_plock_callback(op); > + else > + wake_up(&recv_wq); > + } The gfs side looks fine to me. Did you forget to call fl_notify from gdlm_plock_callback() or am I missing something? Dave - To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html