From: Dmitry Monakhov 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 Cc: Nick Piggin Signed-off-by: Andrew Morton --- drivers/block/loop.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff -puN drivers/block/loop.c~deny-partial-write-for-loop-dev-fd drivers/block/loop.c --- a/drivers/block/loop.c~deny-partial-write-for-loop-dev-fd +++ a/drivers/block/loop.c @@ -245,10 +245,8 @@ static int do_lo_send_aops(struct loop_d 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; _