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