From: Yury Umanets I have found small inconsistency in loop_set_fd(). It checks if ->sendfile() is implemented for passed block device file. But in fact, loop back device driver never calls it. It uses ->sendfile() from backing store file. --- 25-akpm/drivers/block/loop.c | 2 +- 1 files changed, 1 insertion(+), 1 deletion(-) diff -puN drivers/block/loop.c~loop_set_fd-sendfile-check-fix drivers/block/loop.c --- 25/drivers/block/loop.c~loop_set_fd-sendfile-check-fix 2004-04-21 00:57:55.683321608 -0700 +++ 25-akpm/drivers/block/loop.c 2004-04-21 00:57:55.687321000 -0700 @@ -656,7 +656,7 @@ static int loop_set_fd(struct loop_devic * If we can't read - sorry. If we only can't write - well, * it's going to be read-only. */ - if (!lo_file->f_op->sendfile) + if (!file->f_op->sendfile) goto out_putf; if (!aops->prepare_write || !aops->commit_write) _