2006-05-05 02:56:34

by Constantine Sapuntzakis

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

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


Attachments:
(No filename) (541.00 B)
loop-fix-set-fd.diff (304.00 B)
Download all attachments