I think we have a rather bad race in the logmanager read completion
hadnling.  See jfs_logmgr.c:lbmRead():

        generic_make_request(READ, &bp->l_bh);
        run_task_queue(&tq_disk);

        wait_event(bp->l_ioevent, (bp->l_flag != lbmREAD));

lbmREAD get's cleared by lbmIODone without any atomicy guarntees.
A possible soloution might be to use bitops on ->l_flag, but that
would make lbmWrite rather ugly.

I'd prefer to always take the LCACHE_LOCK for ->l_flag manipulations.

Comments?

        Christoph

-- 
Of course it doesn't work. We've performed a software upgrade.
_______________________________________________
Jfs-discussion mailing list
[EMAIL PROTECTED]
http://www-124.ibm.com/developerworks/oss/mailman/listinfo/jfs-discussion

Reply via email to