On Wed, Dec 06, 2006 at 10:47:46PM -0800, Marc Eshel wrote:
> Here is a rewrite of gdlm_plock_callback(). We still need to add the 
> lock cancel.
> Marc.
> 
> int gdlm_plock_callback(struct plock_op *op)
> {
>     struct file *file;
>     struct file_lock *fl;
>     int (*notify)(void *, void *, int) = NULL;
>     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;
> 
>    /* check if the following 2 are still valid or make a copy */
>    file = op->info.file;
>    fl = op->info.fl;
>    notify = op->info.callback;
> 
>    if (!rv) { /* got fs lock */
>        rv = posix_lock_file(file, fl);
>        if (rv) { /* did not get posix lock */

If we never request the local lock until after we've gotten the lock
from GFS, then this should never happen.  So I think this could just be
a BUG_ON(rv)--except that would mean a failure in the lock manager could
oops the kernel, so maybe it'd be better just to printk.

--b.
-
To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to