Applying ext3 0.0.2c patches to 2.2.14-1.3.0.14

From: Marc MERLIN (marc_news@valinux.com)
Date: Wed Feb 23 2000 - 14:39:19 EST


Hi Steven,

I'm trying to integrate your patches with a VA kernel that HJ Lu based on
the RH kernel in rawhide.

I was able to apply your patch without major problems, except in one place
where the code looked a bit different.

Your patch was:
--- linux-rh61-ext3/fs/buffer.c.~1~ Thu Sep 30 23:47:02 1999
+++ linux-rh61-ext3/fs/buffer.c Mon Nov 8 22:06:04 1999
@@ -265,8 +272,8 @@
 void sync_dev(kdev_t dev)
 {
        sync_buffers(dev, 0);
- sync_supers(dev);
        sync_inodes(dev);
+ sync_supers(dev);
        sync_buffers(dev, 0);
        DQUOT_SYNC(dev);
        /*
@@ -285,8 +292,8 @@
 int fsync_dev(kdev_t dev)
 {
        sync_buffers(dev, 0);
- sync_supers(dev);
        sync_inodes(dev);
+ sync_supers(dev);
        DQUOT_SYNC(dev);
        return sync_buffers(dev, 1);
 }

After I applied it by hand, my tree looks like this:
(note that the buffer syncing moved down)

void sync_dev(kdev_t dev)
{
        sync_inodes(dev);
        sync_supers(dev);
        DQUOT_SYNC(dev);
        /* sync all the dirty buffers out to disk only _after_ all the
           high level layers finished generated buffer dirty data
           (or we'll return with some buffer still dirty on the blockdevice
           so breaking the semantics of this call) */
        sync_buffers(dev, 0);
        /*
         * FIXME(eric) we need to sync the physical devices here.
         * This is because some (scsi) controllers have huge amounts of
         * cache onboard (hundreds of Mb), and we need to instruct
         * them to commit all of the dirty memory to disk, and we should
         * not return until this has happened.
         *
         * This would need to get implemented by going through the assorted
         * layers so that each block major number can be synced, and this
         * would call down into the upper and mid-layer scsi.
         */
}

int fsync_dev(kdev_t dev)
{
        sync_buffers(dev, 0);
        sync_inodes(dev);
        sync_supers(dev);
        DQUOT_SYNC(dev);
        return sync_buffers(dev, 1);
}

Are the syncs done in the right order? Is the version shown here safe to use?

Thanks,
Marc

-- 
Microsoft is to software what McDonalds is to gourmet cooking
 
Home page: http://marc.merlins.org/ (friendly to non IE browsers)
Finger marc_f@merlins.org for PGP key and other contact information

- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Wed Feb 23 2000 - 21:00:34 EST