diff options
author | OGAWA Hirofumi <hirofumi@mail.parknet.co.jp> | 2007-02-20 13:57:55 -0800 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-02-20 17:10:14 -0800 |
commit | 94412a96c4553255bda7a232a349059dd7543338 (patch) | |
tree | bfffad25e95f33503b4d212b6670885262084b11 /fs/fat | |
parent | 346fd59bab28093276be102632f72691a2c243fe (diff) | |
download | blackbird-op-linux-94412a96c4553255bda7a232a349059dd7543338.tar.gz blackbird-op-linux-94412a96c4553255bda7a232a349059dd7543338.zip |
[PATCH] FAT: DIO-write fallback to normal buffered
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 <hirofumi@mail.parknet.co.jp>
Acked-by: Jan Kara <jack@suse.cz>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'fs/fat')
-rw-r--r-- | fs/fat/inode.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/fs/fat/inode.c b/fs/fat/inode.c index 761073544217..9bfe607c892e 100644 --- a/fs/fat/inode.c +++ b/fs/fat/inode.c @@ -173,10 +173,12 @@ static ssize_t fat_direct_IO(int rw, struct kiocb *iocb, * * 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; } /* |