2001-11-06 11:20:58

by Jonas Diemer

[permalink] [raw]
Subject: 2.4.14 breaks block/loop.c (loopback device)

Hi!

The latest kernel seems to breake the loop device. I used 2.4.13 before, and
everything was fine. I didn't change my kernel config when upgrading.

I compile the loop device as a module. trying to modprobe/insmod it, I get the
following error message:

unresolved symbol in loop.o: deactivate_page


I did a

# grep -R "deactivate_page" *

in linux-2.4.14: there is no other occurances of deactivate_page in the whole
linux source.
the patch file shows, that the function "deactivate_page" has been removed
(probably replaced by some similar function). but it seems that nobody updated
loop.c.

I hope you can help

regards
Jonas

PS: As I am not subscribed to the list, please CC me in your answers.


Jonas


2001-11-06 15:43:39

by Tim Tassonis

[permalink] [raw]
Subject: Re: 2.4.14 breaks block/loop.c (loopback device)

Hi

> Hi!
>
> The latest kernel seems to breake the loop device. I used 2.4.13 before,
and
> everything was fine. I didn't change my kernel config when upgrading.
>
> I compile the loop device as a module. trying to modprobe/insmod it, I
get the
> following error message:
>
> unresolved symbol in loop.o: deactivate_page


You can apply below patch to fix this. Worked for me with no problem. This
was already discussed on the list and Linus said this would be the
appropriate fix.


diff -ru linux/drivers/block/loop.c linux-patched/drivers/block/loop.c
--- linux/drivers/block/loop.c Tue Nov 6 10:41:15 2001
+++ linux-patched/drivers/block/loop.c Tue Nov 6 10:43:51 2001
@@ -218,14 +218,12 @@
index++;
pos += size;
UnlockPage(page);
- deactivate_page(page);
page_cache_release(page);
}
return 0;

unlock:
UnlockPage(page);
- deactivate_page(page);
page_cache_release(page);
fail:
return -1;