Hi Linus,
when grab_cache_page was added to kernel, someone who did global
kernel search & replace swapped grab_cache_page and find_lock_page
in ncpfs :-( Because of ncpfs requires page allocation to success,
it did not work as it did find instead of allocation... These
changes are limited to linux/fs/ncpfs/dir.c.
Except that, as support for upcoming new version of ncpfs, could
you apply rest of patch (linux/fs/ncpfs/Config.in and
linux/fs/ncpfs/ioctl.c). Change in Config.in is only enabling
(and renaming) configuration item prepared for long time.
Changes in linux/fs/ncpfs/ioctl.c make sure that no-one except
user (and root :-( ) can read your current session info from kernel.
Thanks for applying this.
Best regards,
Petr Vandrovec
[EMAIL PROTECTED]
diff -urdN linux/fs/ncpfs/dir.c linux/fs/ncpfs/dir.c
--- linux/fs/ncpfs/dir.c Fri Dec 3 14:54:40 1999
+++ linux/fs/ncpfs/dir.c Fri Dec 3 18:31:40 1999
@@ -487,7 +487,7 @@
filp->f_pos = 2;
}
- page = find_lock_page(&inode->i_data, 0);
+ page = grab_cache_page(&inode->i_data, 0);
if (!page)
goto read_really;
@@ -516,7 +516,7 @@
for (;;) {
if (ctl.ofs != 0) {
- ctl.page = grab_cache_page(&inode->i_data, ctl.ofs);
+ ctl.page = find_lock_page(&inode->i_data, ctl.ofs);
if (!ctl.page)
goto invalid_cache;
ctl.cache = (union ncp_dir_cache *)
@@ -661,7 +661,7 @@
ctl.cache = NULL;
ctl.idx -= NCP_DIRCACHE_SIZE;
ctl.ofs += 1;
- ctl.page = find_lock_page(&inode->i_data, ctl.ofs);
+ ctl.page = grab_cache_page(&inode->i_data, ctl.ofs);
if (ctl.page)
ctl.cache = (union ncp_dir_cache *)
kmap(ctl.page);
diff -urdN linux/fs/ncpfs/Config.in linux/fs/ncpfs/Config.in
--- linux/fs/ncpfs/Config.in Thu Oct 7 17:17:09 1999
+++ linux/fs/ncpfs/Config.in Fri Dec 3 14:56:40 1999
@@ -10,6 +10,6 @@
bool ' Lowercase DOS filenames' CONFIG_NCPFS_SMALLDOS
fi
bool ' Allow mounting of volume subdirectories' CONFIG_NCPFS_MOUNT_SUBDIR
-# bool ' NDS interserver authentication support' CONFIG_NCPFS_NDS_DOMAINS
+bool ' NDS authentication support' CONFIG_NCPFS_NDS_DOMAINS
bool ' Use Native Language Support' CONFIG_NCPFS_NLS
bool ' Enable symbolic links and execute flags' CONFIG_NCPFS_EXTRAS
diff -urdN linux/fs/ncpfs/ioctl.c linux/fs/ncpfs/ioctl.c
--- linux/fs/ncpfs/ioctl.c Fri Oct 29 17:53:32 1999
+++ linux/fs/ncpfs/ioctl.c Fri Dec 3 14:56:44 1999
@@ -364,8 +364,7 @@
#ifdef CONFIG_NCPFS_NDS_DOMAINS
case NCP_IOC_GETOBJECTNAME:
- if ( (permission(inode, MAY_READ) != 0)
- && (current->uid != server->m.mounted_uid)) {
+ if (current->uid != server->m.mounted_uid) {
return -EACCES;
}
{
@@ -396,8 +395,7 @@
return 0;
}
case NCP_IOC_SETOBJECTNAME:
- if ( (permission(inode, MAY_WRITE) != 0)
- && (current->uid != server->m.mounted_uid)) {
+ if (current->uid != server->m.mounted_uid) {
return -EACCES;
}
{
@@ -441,8 +439,7 @@
return 0;
}
case NCP_IOC_GETPRIVATEDATA:
- if ( (permission(inode, MAY_READ) != 0)
- && (current->uid != server->m.mounted_uid)) {
+ if (current->uid != server->m.mounted_uid) {
return -EACCES;
}
{
@@ -471,8 +468,7 @@
return 0;
}
case NCP_IOC_SETPRIVATEDATA:
- if ( (permission(inode, MAY_WRITE) != 0)
- && (current->uid != server->m.mounted_uid)) {
+ if (current->uid != server->m.mounted_uid) {
return -EACCES;
}
{