On Wed, 13 Oct 2010 22:45:57 +0200 Edward Shishkin <edward.shishkin@xxxxxxxxx> wrote: > Fix up overflow (ssize_t->int) in the direct-io subsystem. > > Signed-off-by: Edward Shishkin <edward@xxxxxxxxxx> > --- > fs/direct-io.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > --- linux-2.6.36-rc7.orig/fs/direct-io.c > +++ linux-2.6.36-rc7/fs/direct-io.c > @@ -218,7 +218,7 @@ static struct page *dio_get_page(struct > * filesystems can use it to hold additional state between get_block calls and > * dio_complete. > */ > -static int dio_complete(struct dio *dio, loff_t offset, int ret, bool is_async) > +static ssize_t dio_complete(struct dio *dio, loff_t offset, ssize_t ret, bool is_async) > { > ssize_t transferred = 0; > I'd call this a truncation error, not an overflow. Semantics. So what's the runtime effect? The subsystem will go stupid when doing a single transfer of over 2G on a 64-bit machine? Can this actually happen in practice? Has nobody ever done this before now? <goes to test it> <discovers that ubuntu 8.04's dd doesn't support conv=direct> <stupid thing> -- 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