Thu Feb 14 2002  Andrew Morton  <akpm@zip.com.au>

	* dir_commit_chunk(): call writeout_one_page() as well as
	  waitfor_one_page() for IS_SYNC directories, so that we
	  actually do sync the directory. (forward-port from 2.4).

Thu Feb  7 2002  Alexander Viro  <viro@parcelfarce.linux.theplanet.co.uk>

	* super.c: switched to ->get_sb()
	* ChangeLog: fixed dates ;-)

2002-01-24  David S. Miller  <davem@redhat.com>

	* inode.c: Include linux/init.h

Mon Jan 21 2002  Alexander Viro  <viro@parcelfarce.linux.theplanet.co.uk>
	* ialloc.c (sysv_new_inode): zero SYSV_I(inode)->i_data out.
	* i_vnode renamed to vfs_inode.  Sorry, but let's keep that
	  consistent.

Sat Jan 19 2002  Christoph Hellwig  <hch@infradead.org>

	* include/linux/sysv_fs.h (SYSV_I): Get fs-private inode data using
		list_entry() instead of inode->u.
	* include/linux/sysv_fs_i.h: Add 'struct inode  i_vnode' field to
		sysv_inode_info structure.
	* inode.c: Include <linux/slab.h>, implement alloc_inode/destroy_inode
		sop methods, add infrastructure for per-fs inode slab cache.
	* super.c (init_sysv_fs): Initialize inode cache, recover properly
		in the case of failed register_filesystem for V7.
	(exit_sysv_fs): Destroy inode cache.

Sat Jan 19 2002  Christoph Hellwig  <hch@infradead.org>

	* include/linux/sysv_fs.h: Include <linux/sysv_fs_i.h>, declare SYSV_I().
	* dir.c (sysv_find_entry): Use SYSV_I() instead of ->u.sysv_i to
		access fs-private inode data.
	* ialloc.c (sysv_new_inode): Likewise.
	* inode.c (sysv_read_inode): Likewise.
	(sysv_update_inode): Likewise.
	* itree.c (get_branch): Likewise.
	(sysv_truncate): Likewise.
	* symlink.c (sysv_readlink): Likewise.
	(sysv_follow_link): Likewise.

Fri Jan  4 2002  Alexander Viro  <viro@parcelfarce.linux.theplanet.co.uk>

	* ialloc.c (sysv_free_inode): Use sb->s_id instead of bdevname().
	* inode.c (sysv_read_inode): Likewise.
	  (sysv_update_inode): Likewise.
	  (sysv_sync_inode): Likewise.
	* super.c (detect_sysv): Likewise.
	  (complete_read_super): Likewise.
	  (sysv_read_super): Likewise.
	  (v7_read_super): Likewise.

Sun Dec 30 2001  Manfred Spraul  <manfred@colorfullife.com>

	* dir.c (dir_commit_chunk): Do not set dir->i_version.
	(sysv_readdir): Likewise.

Thu Dec 27 2001  Alexander Viro  <viro@parcelfarce.linux.theplanet.co.uk>

	* itree.c (get_block): Use map_bh() to fill out bh_result.

Tue Dec 25 2001  Alexander Viro  <viro@parcelfarce.linux.theplanet.co.uk>

	* super.c (sysv_read_super): Use sb_set_blocksize() to set blocksize.
	  (v7_read_super): Likewise.

Tue Nov 27 2001  Alexander Viro  <viro@parcelfarce.linux.theplanet.co.uk>

	* itree.c (get_block): Change type for iblock argument to sector_t.
	* super.c (sysv_read_super): Set s_blocksize early.
	  (v7_read_super): Likewise.
	* balloc.c (sysv_new_block): Use sb_bread(). instead of bread().
	  (sysv_count_free_blocks): Likewise.
	* ialloc.c (sysv_raw_inode): Likewise.
	* itree.c (get_branch): Likewise.
	  (free_branches): Likewise.
	* super.c (sysv_read_super): Likewise.
	  (v7_read_super): Likewise.

Sat Dec 15 2001  Christoph Hellwig  <hch@infradead.org>

	* inode.c (sysv_read_inode): Mark inode as bad in case of failure.
	* super.c (complete_read_super): Check for bad root inode.

Wed Nov 21 2001  Andrew Morton  <andrewm@uow.edu.au>

	* file.c (sysv_sync_file): Call fsync_inode_data_buffers.

Fri Oct 26 2001  Christoph Hellwig  <hch@infradead.org>

	* dir.c, ialloc.c, namei.c, include/linux/sysv_fs_i.h:
	Implement per-Inode lookup offset cache.
	Modelled after Ted's ext2 patch.

Fri Oct 26 2001  Christoph Hellwig  <hch@infradead.org>

	* inode.c, super.c, include/linux/sysv_fs.h,
	  include/linux/sysv_fs_sb.h:
	Remove symlink faking.	Noone really wants to use these as
	linux filesystems and native OSes don't support it anyway.


