[RESEND: forget to add [EMAIL PROTECTED] If the DIO write on FAT is expanding the size, it will be fail by -EINVAL, because FAT can't handle it now.
This patch fallback it to the normal buffered-write and would return success. Signed-off-by: OGAWA Hirofumi <[EMAIL PROTECTED]> --- fs/fat/inode.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff -puN fs/fat/inode.c~fat_direct-io-fallback fs/fat/inode.c --- linux-2.6/fs/fat/inode.c~fat_direct-io-fallback 2007-02-10 22:08:33.000000000 +0900 +++ linux-2.6-hirofumi/fs/fat/inode.c 2007-02-10 22:08:33.000000000 +0900 @@ -173,10 +173,12 @@ static ssize_t fat_direct_IO(int rw, str * * But we must fill the remaining area or hole by nul for * updating ->mmu_private. + * + * Return 0, and fallback to normal buffered write. */ loff_t size = offset + iov_length(iov, nr_segs); if (MSDOS_I(inode)->mmu_private < size) - return -EINVAL; + return 0; } /* _ - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/