This is a two fold change, first it moves the translation
between linux dev_t and kdev_t up the call stack in xfs
and makes the bulk of xfs work in terms of its on disk
dev_t format. It also cleans up a few related chunks of
code.
The other part of the change reworks how we keep the linux
inode contents and the xfs inode fields in sync. A number
of places where we resynced the two have been removed, these
were basically replicating work elsewhere in the filesystem.
We now also ensure that the inode fields are filled in
before calling unlock_new_inode - there used to be a window.
Finally all the code which hooks together the linux inode
and the xfs inode is brought together as a more coherent
whole rather than being scattered around the inode create
path. Most calls to revalidate the linux inode from the
xfs inode are removed.
Date: Wed Oct 2 10:25:30 PDT 2002
Workarea: jen.americas.sgi.com:/src/lord/xfs-linux.2.4
The following file(s) were checked into:
bonnie.engr.sgi.com:/isms/slinx/2.4.x-xfs
Modid: 2.4.x-xfs:slinx:128899a
linux/fs/xfs/xfs_vnodeops.c - 1.566
- At this level all the code now speaks in terms of xfs dev_t
format.
linux/fs/xfs/xfs_dmapi.c - 1.79
- Change IRIX_DEV_TO_KDEV_T to XFS_DEV_TO_KDEV_T
linux/fs/xfs/xfs_vfsops.c - 1.387
- Add in the vnode initialization operation.
linux/fs/xfs/xfs_iget.c - 1.174
- Introduce xfs_revalidate_inode, this is a function to translate
internal xfs format inode fields into the linux inode format.
Move all vnode and inode linkage, and setup of the linux inode
into the VFS_INIT_INODE() call.
linux/fs/xfs/xfs_qm.c - 1.84
- No need to feed in a dev_t here, we are creating a regular
file and we ignore the rdev field.
linux/fs/xfs/xfs_inode.c - 1.350
- Change to an xfs format dev_t at this level, call the new
VFS_INIT_INODE() function rather than just the set inode
ops call.
linux/fs/xfs/xfs_inode.h - 1.169
- Prototype changes for dev_t format
linux/fs/xfs/xfs_types.h - 1.61
- Change xfs dev_t manipulation macros to be XFS_ from IRIX_
linux/fs/xfs/xfs_utils.c - 1.53
- Change xfs_dir_ialloc to take an xfs format dev_t
linux/fs/xfs/xfs_utils.h - 1.27
- Change prototype for xfs_dir_ialloc
linux/fs/xfs/linux/xfs_vnode.c - 1.98
- In vn_revalidate, account for the format change in va_rdev
also remove the flags argument, and simplify the code
linux/fs/xfs/linux/xfs_super.c - 1.216
- remove a linvfs_revalidate_core call, remove the inode
state checks and unlock_new_inode call from the
linvfs_set_inode_ops function.
linux/fs/xfs/linux/xfs_iops.c - 1.175
- remove linvfs_revalidate_core and calls to it, pass va_rdev around in
xfs format rather than kernel format.
linux/fs/xfs/linux/xfs_iops.h - 1.17
- Remove linvfs_revalidate_core
linux/fs/xfs/linux/xfs_ioctl.c - 1.77
- Remove a linvfs_revalidate call
linux/fs/xfs/linux/xfs_vnode.h - 1.65
- Change the vattr_t structure to contain dev_t's in xfs format
rather than as kdev_t structures. Change prototype for
vn_revalidate.
linux/fs/xfs/linux/xfs_vfs.h - 1.30
- Add a new vfs operation - INIT_INODE. This is used by the filesystem
to glue the xfs inode, the vnode and the linux inode together.
|