Skip to contentSkip to conversation

[2.6] UFS2 Read Only Patch

PATCH In review Niraj Kumar 2 participants 4 messages Feb 18, 2004 – Feb 20, 2004

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 [2.6] UFS2 Read Only Patch

Andrew,

Please apply this patch .
They provide the bare minimum read-only support for ufs2 variant (from FreeBSD 5.x ) of the UFS filesystem .

The patch for 2.6.3 is here :
http://ufs-linux.sourceforge.net/ufs2/2.6.3/ufs2-read-only-p1.txt
http://ufs-linux.sourceforge.net/ufs2/2.6.3/ufs2-read-only-p2.txt

Thanks
Niraj

Quoted 19 lines

Hi ,

I am trying to produce some patches to be able to
support UFS2 (of FreeBSD 5.x ) filesystem.

The work-in-progress patches are available from
http://ufs-linux.sourceforge.net/ufs2/p1.txt
http://ufs-linux.sourceforge.net/ufs2/p2.txt

Currently , these provides the bare minimum ufs2
support and that also for Read-Only .

This is just a snapshot so several things simply may not work. But atleast I was able to mount my ufs2 partition (from a FreeBSD 5.2 install ) and read files.

Some testing will be good on them, though.

Niraj

#1 lore raw
Quoted 8 lines · Niraj Kumar

lease apply this patch .
They provide the bare minimum read-only support for ufs2 variant (from FreeBSD 5.x ) of the UFS filesystem .

The patch for 2.6.3 is here :
http://ufs-linux.sourceforge.net/ufs2/2.6.3/ufs2-read-only-p1.txt
http://ufs-linux.sourceforge.net/ufs2/2.6.3/ufs2-read-only-p2.txt

ooh, I see you have a mkfs.ufs there. Does it support UFS1 as well?

Does current UFS support little-endian machines? If so, has this code been tested on a little-endian host? The code _looks_ OK, but one does need to test...

Has the patched filesystem been regression tested against a UFS1 filesystem?

The patches which you have there are a bit of a disaster coding-style wise.

- Use hard tabs everywhere, not eight-spaces.

- No space before terminating semicolons

-

+ if ( (flags & UFS_TYPE_MASK) == UFS_TYPE_UFS2)
+ {
+ uspi->s_u2_size = fs64_to_cpu(sb, usb->fs_u11.fs_u2.fs_size);

should be

	if ((flags & UFS_TYPE_MASK) == UFS_TYPE_UFS2) {

etcetera. See Documentation/CodingStyle.

Thanks.

#2 lore raw

Andrew,
Thanks for the comments.

Quoted 8 lines
Quoted 5 lines

The patch for 2.6.3 is here :
http://ufs-linux.sourceforge.net/ufs2/2.6.3/ufs2-read-only-p1.txt
http://ufs-linux.sourceforge.net/ufs2/2.6.3/ufs2-read-only-p2.txt

ooh, I see you have a mkfs.ufs there. Does it support UFS1 as well?

Yeah , it does support UFS1 as well ....

Quoted 4 lines

Does current UFS support little-endian machines? If so, has this code been tested on a little-endian host? The code _looks_ OK, but one does need to test...

This patch has been somewhat tested on my "Pentium 4" machine (running RHEL 3). Other than that , 1-2 persons on freebsd list has also tried this.

Quoted 2 lines

Has the patched filesystem been regression tested against a UFS1 filesystem?

Only some most basic (mount , read ) functionality has been cheked to be working.

Quoted 16 lines

The patches which you have there are a bit of a disaster coding-style wise.

- Use hard tabs everywhere, not eight-spaces.

- No space before terminating semicolons

(quoted diff) +3 -1
-
 
+        if ( (flags & UFS_TYPE_MASK) == UFS_TYPE_UFS2)
+        {
+	     uspi->s_u2_size  = fs64_to_cpu(sb, usb->fs_u11.fs_u2.fs_size);
 
 should be
Quoted 4 lines
	if ((flags & UFS_TYPE_MASK) == UFS_TYPE_UFS2) {

etcetera. See Documentation/CodingStyle.

Well .... I will prepare a modifed patch and send that again .

Quoted 2 lines

Thanks.

All-in-all , the problem is that this
was not getting enough testing so I thought that unless it is included
in , say mm series, it will not get tested. That's why I send it to you .
But anyway , wait for the modifed version (which will take care of Documentation/CodingStyle) .

Niraj

#3 lore raw
In reply to Andrew Morton

Andrew,

I have updated the patch files.

Let me know if you have any more comments.

Niraj

Quoted 25 lines · Andrew Morton

Niraj Kumar <[email protected]> wrote:

The patches which you have there are a bit of a disaster coding-style wise.

- Use hard tabs everywhere, not eight-spaces.

- No space before terminating semicolons

(quoted diff) +3 -1
-
 
+        if ( (flags & UFS_TYPE_MASK) == UFS_TYPE_UFS2)
+        {
+	     uspi->s_u2_size  = fs64_to_cpu(sb, usb->fs_u11.fs_u2.fs_size);
 
 should be
	if ((flags & UFS_TYPE_MASK) == UFS_TYPE_UFS2) {

etcetera. See Documentation/CodingStyle.

Thanks.