This removes a lock from the path which converts delayed allocate
extents into real extents. It was previously obtaining the I/O
lock in the xfs inode which it does not need to do (this was also
going to cause problems with cxfs).
This introduces VOP_STRATEGY, currently a misnomer since it does
not do quite what it does in Irix, but there will probably be more
changes to come later in this area.
Also a pagebuf change to avoid calling balance_dirty when operating on
a partial page - as there is the chance that some other part of the
page could be in a buffer on the dirty queue and cause us to deadlock
on the page lock.
Date: Thu Jan 18 14:31:19 PST 2001
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:82528a
linux/mm/vmscan.c - 1.45
linux/mm/page_alloc.c - 1.34
linux/mm/filemap.c - 1.64
- Wrap testing for delalloc page in a macro
linux/include/linux/mm.h - 1.45
- define DelallocPage() macro
linux/fs/buffer.c - 1.52
- Wrap testing for delalloc page in a macro
linux/fs/xfs/xfs_vnodeops.c - 1.485
- Add xfs_strategy to vnode ops
linux/fs/xfs/linux/xfs_lrw.h - 1.15
- prototype for xfs_strategy
linux/fs/xfs/linux/xfs_lrw.c - 1.70
- Rework the code for converting dealloc to real space, add xfs_strategy
to do this.
linux/fs/xfs/linux/xfs_iops.c - 1.88
- Call VOP_STRATEGY instead of VOP_BMAP for delalloc space allocation
calls.
linux/fs/pagebuf/page_buf_io.c - 1.41
- Wrap testing for delalloc page in a macro, and do not call balance
dirty in a case where we could have other I/O pending in the same
page i.e. when doing a partial page operation.
linux/fs/xfs/linux/xfs_vnode.h - 1.13
- Add VOP_STRATEGY
|