View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0003363 | CentOS-5 | kernel | public | 2009-01-25 17:11 | 2009-05-12 20:58 |
Reporter | toracat | ||||
Priority | normal | Severity | minor | Reproducibility | always |
Status | closed | Resolution | fixed | ||
Product Version | 5.3 | ||||
Target Version | Fixed in Version | ||||
Summary | 0003363: NTFS in the 5.3 kernel does not compile | ||||
Description | Enabling 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 Information | Filing under the 5.2 category because "5.3" was not available (as of Jan 25, 2009) | ||||
Tags | No tags attached. | ||||
has duplicate | 0003686 | closed | kbsingh@karan.org | fs/ntfs/ntfs.h does not declare zero_user_page |
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); |
Reported upstream: https://bugzilla.redhat.com/show_bug.cgi?id=481495 |
|
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. :-( |
|
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 |
|
With the closure of the upstream bugzilla, this report may now be closed. No further plan to fix the code. | |
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 |
|
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. |
|
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. | |
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 |
|
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. | |
thanks Akemi :) | |
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 |
|
Relationship added | has duplicate 0003686 |