I needed the following two patches to make it compile.  It passes a simple
mount, create a file, delete it again test with no obvious problems.
The patch to jfs_imap.c may well not be correct - without it I get very
odd asm errors in include/linux/rwsem.h - but I don't understand why it
works.

--- jfs_logmgr.c.orig   Wed Feb 20 22:16:16 2002
+++ jfs_logmgr.c        Wed Feb 20 23:03:44 2002
@@ -184,7 +184,7 @@
 static void lbmWrite(log_t * log, lbuf_t * bp, int flag, int cant_block);
 static void lbmDirectWrite(log_t * log, lbuf_t * bp, int flag);
 static int lbmIOWait(lbuf_t * bp, int flag);
-static int lbmIODone(struct bio *bio, int);
+static void lbmIODone(struct bio *bio);
 #ifdef _STILL_TO_PORT
 static void lbmDirectIODone(iobuf_t * ddbp);
 #endif                         /* _STILL_TO_PORT */
@@ -2086,7 +2086,7 @@
  *
  * executed at INTIODONE level
  */
-static int lbmIODone(struct bio *bio, int nr_sectors)
+static void lbmIODone(struct bio *bio)
 {
        lbuf_t *bp = bio->bi_private;
        lbuf_t *nextbp, *tail;
@@ -2120,7 +2120,7 @@
                /* wakeup I/O initiator */
                LCACHE_WAKEUP(&bp->l_ioevent);
 
-               return 0;
+               return;
        }
 
        /*
@@ -2145,7 +2145,7 @@
        if (bp->l_flag & lbmDIRECT) {
                LCACHE_WAKEUP(&bp->l_ioevent);
                LCACHE_UNLOCK(flags);
-               return 0;
+               return;
        }
 
        tail = log->wqueue;
@@ -2224,7 +2224,7 @@
 
                LCACHE_UNLOCK(flags);   /* unlock+enable */
        }
-       return 0;
+       return;
 }
 
 int jfsIOWait(void *arg)
--- jfs_imap.c.orig     Wed Feb 20 22:54:38 2002
+++ jfs_imap.c  Wed Feb 20 22:55:56 2002
@@ -1614,6 +1614,7 @@
                                                break;
 
                                        assert(rc == EIO);
+                                       IREAD_UNLOCK(ipimap);
                                } else {
                                        /* set the results of the allocation
                                         * and write the iag.
@@ -1622,11 +1623,12 @@
                                                    extno << L2INOSPEREXT,
                                                    extno, iagp);
                                        mark_metapage_dirty(mp);
+                                       IREAD_UNLOCK(ipimap);
                                }
                                release_metapage(mp);
                                /* free the imap inode & the AG lock & return.
                                 */
-                               IREAD_UNLOCK(ipimap);
+                               /* IREAD_UNLOCK(ipimap); */
                                AG_UNLOCK(imap, agno);
                                return (rc);
                        }
-- 
Mike Ricketts <[EMAIL PROTECTED]>                      http://www.earth.li/~mike/

God was satisfied with his own work, and that is fatal.
                -- Samuel Butler


_______________________________________________
Jfs-discussion mailing list
[EMAIL PROTECTED]
http://www-124.ibm.com/developerworks/oss/mailman/listinfo/jfs-discussion

Reply via email to