Hi. Actually, i_sb->s_blocksize and blocksize_bits both reflect a block size of 4096 too, so that didn't help. What does help is using blksize_size. I'll prepare a patch for Karol and I to try before submitting it to LKML. Regards, Nigel On Sat, 2004-01-10 at 22:13, Nigel Cunningham wrote: > 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.