xfs
[Top] [All Lists]

Re: Swapfiles broken on XFS.

To: Christoph Hellwig <hch@xxxxxxxxxxxxx>
Subject: Re: Swapfiles broken on XFS.
From: Nigel Cunningham <ncunningham@xxxxxxxxxxxxxxxxxxxxx>
Date: Sat, 10 Jan 2004 09:13:26 +1300
Cc: XFS list <linux-xfs@xxxxxxxxxxx>, Karol Kozimor <sziwan@xxxxxxxxxxx>, swsusp-devel <swsusp-devel@xxxxxxxxxxxxxxxxxxxxx>, Linux Kernel Mailing List <linux-kernel@xxxxxxxxxxxxxxx>
In-reply-to: <20040109161653.A25678@xxxxxxxxxxxxx>
References: <1073620506.3790.21.camel@laptop-linux> <20040109161653.A25678@xxxxxxxxxxxxx>
Reply-to: ncunningham@xxxxxxxxxxxxxxxxxxxxx
Sender: linux-xfs-bounce@xxxxxxxxxxx
Hi again.

Perhaps I wasn't clear enough.

Both the page_io and Suspend can cope fine with block size < 4096. The
issue is where they get the information from as to how many blocks per
page they actually need to use when called brw_page. At the moment, they
both assume that i_sb->s_blocksize and blocksize_bits is the place to
go. What you're saying sounds right to me. They should both be looking
at i_blkbits and i_blksize in the struct inode, shouldn't they? I'll
make the change, test and submit a patch to LKML.

Regards,

Nigel

On Sat, 2004-01-10 at 05:16, Christoph Hellwig wrote:
> On Fri, Jan 09, 2004 at 04:55:09PM +1300, Nigel Cunningham wrote:
> > It appears to me that a swapfile on an XFS filesystem will not work, at
> > least some of the time.
> 
> XFS sets s_blocksize to the filesystem blocksize and bdev->bd_block_size /
> i_blkbits to the XFS sector size.  The first would be 4096 in your
> case and the latter 512.  We cannot set a bigger device block size because
> XFS log writes are in 512b units.
> 
> I don't think the swap code should do any assumptions about any relation
> of the above two.
-- 
My work on Software Suspend is graciously brought to you by
LinuxFund.org.

Attachment: signature.asc
Description: This is a digitally signed message part

<Prev in Thread] Current Thread [Next in Thread>