TAKE 970240 - kill BMAPI_DEVICE
kill BMAPI_DEVICE
There is no reason to go into the iomap machinery just to get the right block device for an inode. Instead look at the realtime flag in the inode and grab the right device from the mount structure.
I created a new helper, xfs_find_bdev_for_inode instead of opencoding it because I plan to use it in other places in the future.
Date: Thu Sep 13 14:33:42 AEST 2007 Workarea: linuxbuild.melbourne.sgi.com:/home/donaldd/isms/2.6.x-xfs Inspected by: [email protected]
The following file(s) were checked into:
longdrop.melbourne.sgi.com:/isms/linux/2.6.x-xfs-melb
Modid: xfs-linux-melb:xfs-kern:29680afs/xfs/xfs_iomap.h - 1.11 - changed
http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_iomap.h.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h
- kill BMAPI_DEVICE
fs/xfs/xfs_iomap.c - 1.55 - changed
http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_iomap.c.diff?r1=text&tr1=1.55&r2=text&tr2=1.54&f=h
- kill BMAPI_DEVICE
fs/xfs/linux-2.6/xfs_aops.c - 1.154 - changed
http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/linux-2.6/xfs_aops.c.diff?r1=text&tr1=1.154&r2=text&tr2=1.153&f=h
- kill BMAPI_DEVICE
Can one of you let me know the process of submitting changes?
Problem: Real time flag set on a regular file can race with directio which can lead to
incorrect real time device for iomap in xfs_vm_direct_IO. This
can happen
only on the first I/O to the file as we don't set real time
flag if any of
the extents or delayed blocks present.
Fix:
xfs_setattr() {
...
if (!(mask & XFS_AT_SIZE)) {
if (need_io_lock && vap->va_xflags & XFS_XFLAG_REALTIME)
lock_flags |= XFS_IOLOCK_EXCL;
.....
}
...}
-Thanks,
Saradhi.
Quoted 17 lines · On 9/13/07, [email protected] <[email protected]> wrote:
kill
BMAPI_DEVICEThere is no reason to go into the iomap machinery just to get the right block device for an inode. Instead look at the realtime flag in the inode and grab the right device from the mount structure.
I created a new helper,
xfs_find_bdev_for_inodeinstead of opencoding it because I plan to use it in other places in the future.Signed-off-by Christoph Hellwig <[email protected] >Date: Thu Sep 13 14:33:42 AEST 2007 Workarea: linuxbuild.melbourne.sgi.com:/home/donaldd/isms/2.6.x-xfs Inspected by: [email protected]
Quoted 6 lines
The following file(s) were checked into:
longdrop.melbourne.sgi.com:/isms/linux/2.6.x-xfs-melbModid: xfs-linux-melb:xfs-kern:29680a
fs/xfs/xfs_iomap.h- 1.11 - changed
http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/> xfs_iomap.h.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h
Quoted 5 lines
http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_iomap.h.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h
- killBMAPI_DEVICE
fs/xfs/xfs_iomap.c- 1.55 - changed
http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/> xfs_iomap.c.diff?r1=text&tr1=1.55&r2=text&tr2=1.54&f=h
Quoted 5 lines
http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_iomap.c.diff?r1=text&tr1=1.55&r2=text&tr2=1.54&f=h
- killBMAPI_DEVICE
fs/xfs/linux-2.6/xfs_aops.c- 1.154 - changed
http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/> linux-2.6/xfs_aops.c.diff?r1=text&tr1=1.154&r2=text&tr2=1.153&f=h
Quoted 7 lines
http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/linux-2.6/xfs_aops.c.diff?r1=text&tr1=1.154&r2=text&tr2=1.153&f=h
- killBMAPI_DEVICE
[[HTML alternate version deleted]]
Quoted 1 line · Bhagi rathi
Can one of you let me know the process of submitting changes?
Just send a unified diff (using diff -u) to the list.
Quoted 11 lines
Problem: Real time flag set on a regular file can race with directio which can lead to
incorrect real time device for iomap inxfs_vm_direct_IO. This
can happen
only on the first I/O to the file as we don't set real time
flag if any of
the extents or delayed blocks present.Fix:
Quoted 7 lines
xfs_setattr() {
...
if (!(mask & XFS_AT_SIZE)) {
if (need_io_lock && vap->va_xflags & XFS_XFLAG_REALTIME)
lock_flags |= XFS_IOLOCK_EXCL;
.....
}I have a patch queued up aswell, although it's after a reorganization of the code to not clutter xfs_setattr even more. If you want to send out the fix now please go ahead.