[PATCH] deny partial write for loop dev fd

From: Dmitriy Monakhov
Date: Sat Jun 16 2007 - 11:39:21 EST


Partial write can be easily supported by LO_CRYPT_NONE mode, but
it is not easy in LO_CRYPT_CRYPTOAPI case, because of its block nature.
I don't know who still used cryptoapi, but theoretically it is possible.
So let's leave things as they are. Loop device doesn't support partial
write before Nick's "write_begin/write_end" patch set, and let's it
behave the same way after.

Signed-off-by: Dmitriy Monakhov <dmonakhov@xxxxxxxxxx>
---
drivers/block/loop.c | 4 +---
1 files changed, 1 insertions(+), 3 deletions(-)

diff --git a/drivers/block/loop.c b/drivers/block/loop.c
index 4bab9b1..de122f3 100644
--- a/drivers/block/loop.c
+++ b/drivers/block/loop.c
@@ -244,10 +244,8 @@ static int do_lo_send_aops(struct loop_device *lo, struct bio_vec *bvec,

ret = pagecache_write_end(file, mapping, pos, size, copied,
page, fsdata);
- if (ret < 0)
+ if (ret < 0 || ret != copied)
goto fail;
- if (ret < copied)
- copied = ret;

if (unlikely(transfer_result))
goto fail;
--
1.5.2


-
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/