I just realised (!) that RT files are being assigned block numbers on
the RT device, but since they have the same i_dev field as the other
files, they're being written to the non-RT device.
This is my hack in xfs_rdwr that works around the problem, but I can't
work out where the correct place to set the device number is.
dxm@snort ~/isms/slinx-xfs/linux/fs/xfs> p_rdiff linux/xfs_lrw.c
142a143,149
>
> if (xip->i_d.di_flags & XFS_DIFLAG_REALTIME) {
> /* XXX - hack */
> filp->f_dentry->d_inode->i_dev=xip->i_mount->m_rtdev;
> /* it's a bad idea to write RT data on the non-RT partition
*/
> ASSERT(filp->f_dentry->d_inode->i_dev == xip->i_mount->
m_rtdev);
> }
Can anyone clue me in on where the appropriate place to set the i_dev
field of the inode (and xfs_inode, I guess) would be?
The places I've looked have the xfs_inode but not the inode.
(while I'm asking - is there a way to get the inode from the xfs_inode?)
Ta very much
-----------------------------------------------------
Daniel Moore dxm@xxxxxxx
R&D Software Engineer Phone: +61-3-98348209
SGI Performance Tools Group Fax: +61-3-98132378
-----------------------------------------------------
|