Re: [patch] 512-byte alignment for O_DIRECT I/O

From: Andrew Morton (akpm@digeo.com)
Date: Tue Oct 08 2002 - 11:54:03 EST


Steve Lord wrote:
>
> On Mon, 2002-10-07 at 17:59, Andrew Morton wrote:
> >
> > This patch from Badari is passing all testing now.
> >
> .....
> > +++ 2.5.41-akpm/fs/xfs/linux/xfs_aops.c Mon Oct 7 15:50:21 2002
> > @@ -688,8 +688,8 @@ linvfs_direct_IO(
> > {
> > struct inode *inode = file->f_dentry->d_inode->i_mapping->host;
> >
> > - return generic_direct_IO(rw, inode, iov, offset, nr_segs,
> > - linvfs_get_blocks_direct);
> > + return generic_direct_IO(rw, inode, inode->i_sb->s_bdev,
> > + iov, offset, nr_segs, linvfs_get_blocks_direct);
> > }
> >
> > STATIC int
> >
>
> Actually this part is broken for XFS - it will work for most cases,
> but not for realtime files, in this case there is another bdev involved.
> I just have to work out how to get to it from here...... the getblock
> code knows enough to set it in the bh, but at this level we do not.
>

Well we can pass in NULL for the while, get the old behaviour.

But yes, I'd prefer to only ever use the get_block() value. It's
really messy though - things like deferring the check of the aligment
of all the iovec segments until we've run get_block...

Maybe we should ask the caller to pass in the alignment itself,
just 512, 2048, etc?
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Tue Oct 15 2002 - 22:00:25 EST