Re: [PATCH 1/1] fat: improve sync performance by grouping writes revised

From: Holden Karau
Date: Tue Oct 31 2006 - 13:11:10 EST


On 10/31/06, Jörn Engel <joern@xxxxxxxxxxxxxxxxxxxx> wrote:
On Tue, 31 October 2006 10:03:08 -0500, Holden Karau wrote:
> +static int fat_mirror_bhs_optw(struct super_block *sb, struct buffer_head **bhs,
> + int nr_bhs , int wait)
> {
> struct msdos_sb_info *sbi = MSDOS_SB(sb);
> - struct buffer_head *c_bh;
> + struct buffer_head *c_bh[nr_bhs*(sbi->fats)];

Variable-sized array on the kernel-stack? That can easily explode in
your hands. Unless you are _very_ sure about the bounds, you should
do an explicit kmalloc. And if you were that sure, you could just as
well have an array with fixed size.

sbi->fats has a range of 2 to 4, but I suppose that might concievably
change if someone decides they want a fat filesystem with a lot of
backup FATs and modifies some other parts of the driver to support
that. I'll change it to use kmalloc.
> + if (sb->s_flags & MS_SYNCHRONOUS )
[...]
> + }
[...]
> + int nr_bhs )

Trailing whitespace in those lines.
..... oops. I'll fix that.

Jörn

--
Prosperity makes friends, adversity tries them.
-- Publilius Syrus
-
To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html



--
Cell: 613-276-1645
-
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/