Skip to contentSkip to conversation

How to make VFAT work right in 2.4.0-prerelease

DISCUSSION Ivan Baldo 3 participants 4 messages Jan 6, 2001 – Jan 7, 2001

lore
Share & tools
lore

Ivan Baldo

author
#0 lore raw

Hello.
HOWTO:
- edit file fs/fat/inode.c, look in the function named
"fat_notify_change" (at about line 901), where it says:"

	/* FAT cannot truncate to a longer file */
	if (attr->ia_valid & ATTR_SIZE) {
		if (attr->ia_size > inode->i_size)
			return -EPERM;
	}
	", just delete all of it (or comment it out). This change wich has been

made in the -prerelease versión, makes Netscape Messenger not to work with email stored on a VFAT partition, ok, I guess that maybe is Netscape's fault though, but just removing that code makes Messenger at least work somewhat.
- apply attached patch made by Eelco Dolstra
<[email protected]>, I am testing and using this patch since 13.nov.2000 (a lot of time) and with various versions of the Linux 2.4.0-testXX series kernels and it works flawlessly! Without it you get allocation errors when using the "truncate()" C function to grow files (and Messenger seems to use it).
- recompile the kernel and be happy!

I don't know why this patch isn't applied yet on the official kernel
and why the kernel people made that change to the inode.c file, maybe they could explain us (please!).

Thanks a lot to everyone and special thanks to Eelco! Goodbye.

P.s.: yes, I am writing this email with Netscape Messenger with emails stored on a VFAT partition and using the 2.4.0-prerelease kernel with those changes: no problems so far.

Signature · 7 lines
Ivan Baldo:
[email protected] - http://go.to/ibaldo - ICQ 10215364
Phone: (598) (2) 613 3223.
Caldas 1781, 11400 Malvin, Montevideo, Uruguay, South America.

(If you have problems with the previous addresses, try this ones:
[email protected], http://members.xoom.com/baldo.1).
#1 lore raw

Re: How to make VFAT work right in 2.4.0-prereleaseu

Quoted 9 lines

- edit file fs/fat/inode.c, look in the function named
"fat_notify_change" (at about line 901), where it says:"

	/* FAT cannot truncate to a longer file */
	if (attr->ia_valid & ATTR_SIZE) {
		if (attr->ia_size > inode->i_size)
			return -EPERM;
	}
	", just delete all of it (or comment it out). This change wich has been

made in the -prerelease versión, makes Netscape Messenger not to work

If you do that you will corrupt your FAT fs. Very bad idea

Quoted 4 lines

- apply attached patch made by Eelco Dolstra
<[email protected]>, I am testing and using this patch since 13.nov.2000 (a lot of time) and with various versions of the Linux 2.4.0-testXX series kernels and it works flawlessly! Without it you get

2.4.0-ac has the truncate to grow stuff. It should just work out of the box. Let me know if not

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected]
Please read the FAQ at http://www.tux.org/lkml/

#2 lore raw

Re: How to make VFAT work right in 2.4.0-prereleaseu

Hi,

Quoted 11 lines · Alan Cox
Quoted 9 lines

- edit file fs/fat/inode.c, look in the function named
"fat_notify_change" (at about line 901), where it says:"

	/* FAT cannot truncate to a longer file */
	if (attr->ia_valid & ATTR_SIZE) {
		if (attr->ia_size > inode->i_size)
			return -EPERM;
	}
	", just delete all of it (or comment it out). This change wich has been

made in the -prerelease versi�n, makes Netscape Messenger not to work

If you do that you will corrupt your FAT fs.

But only on SMP, right? The only other FAT change I see in -ac (apart from my patch) is the spinlock around fat_cache.

Regards,

Eelco.

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected]
Please read the FAQ at http://www.tux.org/lkml/

#3 lore raw

Re: How to make VFAT work right in 2.4.0-prereleaseu

Quoted 8 lines
Quoted 1 line
Quoted 1 line

=09", just delete all of it (or comment it out). This change wich has b=

een

Quoted 3 lines
Quoted 1 line

made in the -prerelease versi=F3n, makes Netscape Messenger not to work

=20
If you do that you will corrupt your FAT fs.

But only on SMP, right? The only other FAT change I see in -ac (apart from my patch) is the spinlock around fat_cache.

SMP and uniprocessor will both corrupt the fatfs sometimes if you ftruncate files larger without the grow the file patch.

Returning 0 not -EPERM also seems to be a valid standards compliant behaviour

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected]
Please read the FAQ at http://www.tux.org/lkml/