[PATCH] drivers/block/loop.c: don't return garbage if LOOP_SET_STATUS not called

From: Constantine Sapuntzakis
Date: Thu May 04 2006 - 22:56:11 EST


While writing a version of losetup, I ran into the problem that the
loop device was
returning total garbage.

It turns out the problem was that this losetup was only issuing
the LOOP_SET_FD ioctl and not issuing a subsequent LOOP_SET_STATUS
ioctl. This losetup didn't have any special status to set, so it left
out the call.

The deeper cause is that loop_set_fd sets the transfer function to
NULL, which causes no transfer to happen lo_do_transfer.

This patch fixes the problem by setting transfer to transfer_none in
loop_set_fd.

-Costa

Attachment: loop-fix-set-fd.diff
Description: Binary data