Re: 2.6.24-rc2-mm1 -- mkfs failing on variety of fs types

From: Dmitry Monakhov
Date: Wed Nov 14 2007 - 05:49:20 EST


On 02:28 Wed 14 Nov , Andrew Morton wrote:
> On Wed, 14 Nov 2007 08:56:01 +0000 Andy Whitcroft <apw@xxxxxxxxxxxx> wrote:
>
[snip]
> > We seem to have some general problem with mkfs for all filesystems.
> > UUID: e9aa2dc4-dfc3-47e8-865b-693f28eac2e5
> > Initializing journal - 0%....20%....40%....60%....80%....100%
> > bwrite: write 4096 bytes returned -1 (block=360448, dev=3): No space left on device
>
> It was mm-fix-blkdev-size-calculation-in-generic_write_checks.patch.
Oh my ..., I'm truly sorry. When i've sent this patch to Andrew first time
he ask me to remake it in order to make it less intrusive. When later
i've found what patch was buggy because of incorrect int to loff_t conversion
isize = i_size_read(inode) & ~(blksize - 1);
^^^^^^^^^^^^^^
Later i've missed when this patch was accepted some days ago :(.
>
> Odd, I thought that looked OK.
>
>
> Here's a revert (uploaded to hot-fixes/, too):
>
> --- a/mm/filemap.c~revert-mm-fix-blkdev-size-calculation-in-generic_write_checks
> +++ a/mm/filemap.c
> @@ -1855,11 +1855,9 @@ inline int generic_write_checks(struct f
> } else {
> #ifdef CONFIG_BLOCK
> loff_t isize;
> - unsigned int blksize;
> if (bdev_read_only(I_BDEV(inode)))
> return -EPERM;
> - blksize = block_size(I_BDEV(inode));
> - isize = i_size_read(inode) & ~(blksize - 1);
> + isize = i_size_read(inode);
> if (*pos >= isize) {
> if (*count || *pos > isize)
> return -ENOSPC;
> _
>

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/