View Issue Details

IDProjectCategoryView StatusLast Update
0003363CentOS-5kernelpublic2009-05-12 20:58
Reportertoracat 
PrioritynormalSeverityminorReproducibilityalways
Status closedResolutionfixed 
Product Version5.3 
Target VersionFixed in Version 
Summary0003363: NTFS in the 5.3 kernel does not compile
DescriptionEnabling NTFS in kernel 2.6.18-128 produces the following error:

fs/ntfs/aops.c: In function 'ntfs_readpage':
fs/ntfs/aops.c:418: error: implicit declaration of function 'zero_user_page'
fs/ntfs/aops.c:418: error: 'KM_USER0' undeclared (first use in this function)
fs/ntfs/aops.c:418: error: (Each undeclared identifier is reported only once
fs/ntfs/aops.c:418: error: for each function it appears in.)
make[2]: *** [fs/ntfs/aops.o] Error 1
make[1]: *** [fs/ntfs] Error 2
make: *** [fs] Error 2

This is because of the line in aops.c:

              zero_user_page(page, 0, PAGE_CACHE_SIZE, KM_USER0);

The same line appears in compress.c. Removing the offending line from both .c files makes the compilation to complete (patch uploaded).

Additional InformationFiling under the 5.2 category because "5.3" was not available (as of Jan 25, 2009)
TagsNo tags attached.

Relationships

has duplicate 0003686 closedkbsingh@karan.org fs/ntfs/ntfs.h does not declare zero_user_page 

Activities

2009-01-25 17:11

 

ntfs-delete-zero-user-page-line.patch (996 bytes)
diff -urN a/fs/ntfs/aops.c b/fs/ntfs/aops.c
--- a/fs/ntfs/aops.c	2009-01-25 06:25:50.000000000 -0800
+++ b/fs/ntfs/aops.c	2009-01-25 08:27:51.000000000 -0800
@@ -415,7 +415,7 @@
 	/* Is the page fully outside i_size? (truncate in progress) */
 	if (unlikely(page->index >= (i_size + PAGE_CACHE_SIZE - 1) >>
 			PAGE_CACHE_SHIFT)) {
-		zero_user_page(page, 0, PAGE_CACHE_SIZE, KM_USER0);
+		/* zero_user_page(page, 0, PAGE_CACHE_SIZE, KM_USER0); */
 		ntfs_debug("Read outside i_size - truncated?");
 		goto done;
 	}
diff -urN a/fs/ntfs/compress.c b/fs/ntfs/compress.c
--- a/fs/ntfs/compress.c	2009-01-25 06:25:50.000000000 -0800
+++ b/fs/ntfs/compress.c	2009-01-25 08:28:05.000000000 -0800
@@ -565,7 +565,7 @@
 	if (xpage >= max_page) {
 		kfree(bhs);
 		kfree(pages);
-		zero_user_page(page, 0, PAGE_CACHE_SIZE, KM_USER0);
+		/* zero_user_page(page, 0, PAGE_CACHE_SIZE, KM_USER0); */
 		ntfs_debug("Compressed read outside i_size - truncated?");
 		SetPageUptodate(page);
 		unlock_page(page);
toracat

toracat

2009-01-25 17:32

manager   ~0008620

Reported upstream:

https://bugzilla.redhat.com/show_bug.cgi?id=481495
toracat

toracat

2009-02-06 16:23

manager   ~0008675

The centosplus kernel 5.3 ( kernel-2.6.18-128.el5.centos.ayplus ) was tested by a few QA members. wolfy reported NTFS did not work. I confirmed the problem.

I consulted Alan Bartlett (my kernel buddy and a C expert). He also agrees that removing the defending lines containing zero_user_page is the logical fix.

Given the fact the NTFS module compiled with the "fix" is not functioning properly, I would say the code is broken somewhere else.

The best course of action will be to build the cplus kernel with NTFS disabled. No point including a module that does not work. :-(
toracat

toracat

2009-03-04 08:17

manager   ~0008876

The upstream bugzilla was closed as "won't fix". This means a forever good-bye to the NTFS module included in the CentOS kernel.

Users who need NTFS should all be using ntfs-3g by following the instructions at:

http://wiki.centos.org/TipsAndTricks/NTFS
toracat

toracat

2009-03-04 08:21

manager   ~0008877

With the closure of the upstream bugzilla, this report may now be closed. No further plan to fix the code.
Luxtenebris

Luxtenebris

2009-04-01 14:53

reporter   ~0008985

A fix for this was suggested on the upstream provider bugzilla at https://bugzilla.redhat.com/show_bug.cgi?id=481495 soon after this case was closed.
They say they're not supporting NTFS (in fact they do not enable it in their code), but the patch seems to work for who tested it. I'm waiting for 5.3 centosplus to be released to do my tests.
I think this fix could be included in centosplus kernel just like it includes (at least a) fix for the reiserfs code.
The patch can be foud at https://bugzilla.redhat.com/attachment.cgi?id=334280
toracat

toracat

2009-04-01 15:34

manager   ~0008986

I (Akemi Yagi) am the person who submitted that patch based on Eric's suggestion. The suggested fix was a good attempt by an upstream developer but it was provided "privately" and will not be further looked into by the upstream vendor as you can see in his comment. Although I did a brief test on the patch, before it can be incorporated into the centosplus kernel, more extensive testing is required. I don't think this is worth the effort because we can fairly easily install ntfs-3g which is well-maintained and is regarded superior to the NTFS module performance wise.

Another solution for people who would rather not install ntfs-3g is to provide a kmod package for the kernel NTFS module. However, building this package is a bit problematic at this moment (it builds fine but does not install). Alan Bartlett who is an expert in kernel module building is now looking into this issue. If we come up with a workable solution, I will update the info here.
toracat

toracat

2009-04-19 19:50

manager   ~0009195

As promised, here is an update. As predicted, Alan Bartlett has done it. He's managed to build ntfs.ko that actually installs. I think this one can be offered as an alternative solution for those who would rather not go for ntfs-3g. More details will follow.
toracat

toracat

2009-04-21 16:12

manager   ~0009231

More details now. Alan has made the kmod-ntfs package available from the elrepo repository ( http://elrepo.org ). All kmod packages in this repository are independent of the kernel version, meaning they survive kernel updates and there is no need for rebuilding/reinstallation.

So, if you need the NTFS support today (but would rather not use ntfs-3g), all you have to do is to set up the elrepo repository and issue a command:

yum --enablerepo=elrepo install kmod-ntfs
toracat

toracat

2009-05-12 15:58

manager   ~0009350

I believe this ticket can be closed (resolved) now. Should there be a new development upstream (which I doubt, but who knows), this ticket could be reopened, or a new one can be started.
tru

tru

2009-05-12 20:58

administrator   ~0009351

thanks Akemi :)

Issue History

Date Modified Username Field Change
2009-01-25 17:11 toracat New Issue
2009-01-25 17:11 toracat File Added: ntfs-delete-zero-user-page-line.patch
2009-01-25 17:32 toracat Note Added: 0008620
2009-01-29 00:46 toracat Status new => confirmed
2009-02-06 16:23 toracat Note Added: 0008675
2009-03-04 08:17 toracat Note Added: 0008876
2009-03-04 08:21 toracat Note Added: 0008877
2009-03-04 08:21 toracat Resolution open => won't fix
2009-04-01 14:53 Luxtenebris Note Added: 0008985
2009-04-01 15:34 toracat Note Added: 0008986
2009-04-19 19:50 toracat Note Added: 0009195
2009-04-19 19:53 toracat Resolution won't fix => open
2009-04-19 19:53 toracat Projection none => tweak
2009-04-19 19:53 toracat ETA none => < 1 month
2009-04-19 19:53 toracat Product Version 5.2 => 5.3
2009-04-21 16:12 toracat Note Added: 0009231
2009-05-12 15:58 toracat Note Added: 0009350
2009-05-12 20:58 tru Note Added: 0009351
2009-05-12 20:58 tru Status confirmed => closed
2009-05-12 20:58 tru Resolution open => fixed
2009-06-16 11:25 range Relationship added has duplicate 0003686