Click to See Complete Forum and Search --> : Kernel 2.2.18 and reiserfs?


fsvara
12-14-2000, 12:44 PM
I've downloaded the kernel 2.2.18 2 hours after it was released http://www.linuxnewbie.org/ubb/biggrin.gif and compiled it yesterday. However, when I booted it today (worked very well excpet for the following problem), I saw that my /home partition wasn't accessible, as it is reiserfs. I had previously patched my 2.2.17 kernel with a patch from one of the reiserfs mirrors.
Now I tried to patch the 2.2.18 kernel with the 2.2.17 reiserfs patch, which led to an error while patching (the file fs.h) and the make bzImage to fail.
I'd like to know if there are any versions of the patch that can be used with the kernel 2.2.18 and where I can get them (the reiserfs.org mirrors are badly administered, some just seem to be not there, and those that are there differ greatly in content)...
Ah, something else: I got a 'failed' when it tried to mount /dev/pts. I have the PTS fielsystem enabled in the kernel. Any ideas?
thx in advance,
fsvara

PLBlaze
12-14-2000, 03:50 PM
Your reiserfs patch failed because it was made for 2.2.17...kernel 2.2.18 has the usb backport in place and that's why reiserfs patch fails because of usb stuff.It's rather easy to fix though (fs.h file i mean)



--- linux/include/linux/fs.h Thu Dec 14 14:45:33 2000
+++ linux/include/linux/fs.h Thu Dec 14 14:45:31 2000
@@ -279,6 +279,7 @@
#include <linux/hfs_fs_i.h>
#include <linux/adfs_fs_i.h>
#include <linux/qnx4_fs_i.h>
+#include <linux/reiserfs_fs_i.h>
#include <linux/usbdev_fs_i.h>

/*
@@ -394,6 +395,7 @@
struct hfs_inode_info hfs_i;
struct adfs_inode_info adfs_i;
struct qnx4_inode_info qnx4_i;
+ struct reiserfs_inode_info reiserfs_i;
struct usbdev_inode_info usbdev_i;
struct socket socket_i;
void *generic_ip;
@@ -519,6 +521,7 @@
#include <linux/hfs_fs_sb.h>
#include <linux/adfs_fs_sb.h>
#include <linux/qnx4_fs_sb.h>
+#include <linux/reiserfs_fs_sb.h>
#include <linux/usbdev_fs_sb.h>

extern struct list_head super_blocks;
@@ -562,7 +565,8 @@
struct smb_sb_info smbfs_sb;
struct hfs_sb_info hfs_sb;
struct adfs_sb_info adfs_sb;
- struct qnx4_sb_info qnx4_sb;
+ struct qnx4_sb_info qnx4_sb;
+ struct reiserfs_sb_info reiserfs_sb;
struct usbdev_sb_info usbdevfs_sb;
void *generic_sbp;
} u;



This is a diff i created to patch the fs.h file with reiserfs hunks that failed.First Save this code as fs.diff in /usr/src,then and apply it with patch -p0 < fs.diff .
If all goes fine the fs.h will have the four missing hunks in place.Hope this helps.


[This message has been edited by PLBlaze (edited 14 December 2000).]

fsvara
12-14-2000, 05:12 PM
Ok, thanks! That's more help than i had expected.
I later tried to first patch the 2.2.17 kernel for reiserfs, and then upgrade-patch it to 2.2.18. That gave me no errors while patching, but the usb stuff made the module compilation fail...
Haven't tried your way, yet, but i swear the linux 2.2.18 kernel will be running fine by saturday!

fsvara
12-16-2000, 08:09 AM
Your patch didn't work. It said something about a
malformed patch at line 4, +#include <linux/reiserfs_sb_i.h>.
So I looked a little closer at your diff, and found that the diff file format isn't that complicated,, most stuff is quite self-explanatory. So I applied the stuff that your patch wanted to do to fs.h by hand, and the compilation worked. I don't know why your patch failed.
And another thing: (about the diff file format) what do the numbers mean? like @@ 543,6 544,7 @@.
I figure it has something to do with the line numbers, as the edited lines always were near these numbers, but why are there two numbers, and what does the number after the comma stand for?

PLBlaze
12-16-2000, 04:12 PM
Ah, the malformed lines damn...this is because of formating when i postd here...a text file should be fine though.Yes you should be fine adding the 4 lines with + in front to your fs.h if you'd like email me and i'll send you the diff.

As for the lines you noticed, this is a feature of diff utility.Let's break it down:

--- linux/include/linux/fs.h Thu Dec 14 14:45:33 2000
+++ linux/include/linux/fs.h Thu Dec 14 14:45:31 2000
@@ -279,6 +279,7 @@
#include <linux/hfs_fs_i.h>
#include <linux/adfs_fs_i.h>
#include <linux/qnx4_fs_i.h>
+#include <linux/reiserfs_fs_i.h>
#include <linux/usbdev_fs_i.h>

First line with --- is the original from kernel 2.2.17,second one +++ is the one with fixes for 2.2.18 kernel.
And now -279,6 means line 279 offset six words +279,7 is addition of +#include <linux/reiserfs_fs_i.h> at line 279 offset 7 words.

Just recently i started to play with diffs so my explenations might be off on some stuff.Hope this helps.