[PATCH] smbfs and ncpfs dentry - Untested (fwd)

Jay Schulist (onyx@coredcs.com)
Thu, 17 Jul 1997 19:36:58 -0500 (CDT)


This message is in MIME format. The first part should be readable text,
while the remaining parts are likely unreadable without MIME-aware tools.
Send mail to mime@docserver.cac.washington.edu for more info.

---1765408319-318077841-869176535=:26833
Content-Type: TEXT/PLAIN; CHARSET=US-ASCII
Content-ID: <Pine.LNX.3.96.970717193527.12390E@chaos.coredcs.com>

Hello,
This patch is for linux/fs/smbfs and linux/fs/ncpfs. It fixes the
old inode stuff to the new dentry stuff.

Thanks.

\|/
0(o o)0
----oOO--(_)--OOo-----
Jay Schulist
Jay.Schulist@spacs.k12.wi.us
SPACS Network Developer

UNIX is user friendly. It's just selective about who its friends are.

-------------- CUT ----- CUT -----------------

diff -ruN /kernel/kernels/virgin/linux/fs/ncpfs/file.c /usr/src/linux-2.1.45/fs/ncpfs/file.c
--- /kernel/kernels/virgin/linux/fs/ncpfs/file.c Mon Jun 16 18:35:58 1997
+++ /usr/src/linux-2.1.45/fs/ncpfs/file.c Thu Jul 17 14:55:46 1997
@@ -130,7 +130,7 @@
if (!IS_RDONLY(inode)) {
inode->i_atime = CURRENT_TIME;
}
- inode->i_dirt = 1;
+ mark_inode_dirty(inode);

DPRINTK("ncp_file_read: exit %s\n", NCP_ISTRUCT(inode)->entryName);

@@ -192,7 +192,7 @@
}

inode->i_mtime = inode->i_ctime = CURRENT_TIME;
- inode->i_dirt = 1;
+ mark_inode_dirty(inode);

file->f_pos = pos;

diff -ruN /kernel/kernels/virgin/linux/fs/ncpfs/inode.c /usr/src/linux-2.1.45/fs/ncpfs/inode.c
--- /kernel/kernels/virgin/linux/fs/ncpfs/inode.c Thu Jun 26 14:33:39 1997
+++ /usr/src/linux-2.1.45/fs/ncpfs/inode.c Thu Jul 17 15:09:37 1997
@@ -165,7 +165,7 @@
}
if ((data->ncp_fd >= NR_OPEN)
|| ((ncp_filp = current->files->fd[data->ncp_fd]) == NULL)
- || (!S_ISSOCK(ncp_filp->f_inode->i_mode))) {
+ || (!S_ISSOCK(ncp_filp->f_dentry->d_inode->i_mode))) {
printk("ncp_read_super: invalid ncp socket\n");
sb->s_dev = 0;
return NULL;
@@ -234,8 +234,9 @@

ncp_init_root(server);

- if (!(sb->s_mounted = iget(sb, ncp_info_ino(server,
- &(server->root))))) {
+ sb->s_root = d_alloc_root(iget(sb, ncp_info_ino(server,
+ &(server->root))), NULL);
+ if (!sb->s_root) {
sb->s_dev = 0;
printk("ncp_read_super: get root inode failed\n");
goto disconnect;
diff -ruN /kernel/kernels/virgin/linux/fs/ncpfs/mmap.c /usr/src/linux-2.1.45/fs/ncpfs/mmap.c
--- /kernel/kernels/virgin/linux/fs/ncpfs/mmap.c Wed Jul 16 21:22:51 1997
+++ /usr/src/linux-2.1.45/fs/ncpfs/mmap.c Thu Jul 17 15:14:52 1997
@@ -32,7 +32,7 @@
static unsigned long ncp_file_mmap_nopage(struct vm_area_struct *area,
unsigned long address, int no_share)
{
- struct inode *inode = area->vm_inode;
+ struct inode *inode = area->vm_dentry->d_inode;
unsigned long page;
unsigned int clear;
unsigned long tmp;
@@ -130,7 +130,7 @@
return -EACCES;
if (!IS_RDONLY(inode)) {
inode->i_atime = CURRENT_TIME;
- inode->i_dirt = 1;
+ mark_inode_dirty(inode);
}

vma->vm_dentry = dget(file->f_dentry);
diff -ruN /kernel/kernels/virgin/linux/fs/ncpfs/sock.c /usr/src/linux-2.1.45/fs/ncpfs/sock.c
--- /kernel/kernels/virgin/linux/fs/ncpfs/sock.c Fri Apr 4 10:52:24 1997
+++ /usr/src/linux-2.1.45/fs/ncpfs/sock.c Thu Jul 17 15:16:25 1997
@@ -102,7 +102,7 @@
struct ncp_reply_header reply;

file = server->ncp_filp;
- inode = file->f_inode;
+ inode = file->f_dentry->d_inode;
sock = &inode->u.socket_i;
if (!sock) {
printk("ncp_rpc_call: socki_lookup failed\n");
diff -ruN /kernel/kernels/virgin/linux/fs/smbfs/file.c /usr/src/linux-2.1.45/fs/smbfs/file.c
--- /kernel/kernels/virgin/linux/fs/smbfs/file.c Mon Jun 16 18:35:59 1997
+++ /usr/src/linux-2.1.45/fs/smbfs/file.c Thu Jul 17 14:47:14 1997
@@ -126,7 +126,7 @@

if (!IS_RDONLY(inode))
inode->i_atime = CURRENT_TIME;
- inode->i_dirt = 1;
+ mark_inode_dirty(inode);

DPRINTK("smb_file_read: exit %s\n", SMB_FINFO(inode)->name);

@@ -196,7 +196,7 @@
}

inode->i_mtime = inode->i_ctime = CURRENT_TIME;
- inode->i_dirt = 1;
+ mark_inode_dirty(inode);

file->f_pos = pos;

diff -ruN /kernel/kernels/virgin/linux/fs/smbfs/inode.c /usr/src/linux-2.1.45/fs/smbfs/inode.c
--- /kernel/kernels/virgin/linux/fs/smbfs/inode.c Thu Jun 26 14:33:39 1997
+++ /usr/src/linux-2.1.45/fs/smbfs/inode.c Thu Jul 17 15:01:18 1997
@@ -228,7 +228,7 @@
sb->s_dev = 0;
return NULL;
}
- if (!S_ISSOCK(filp->f_inode->i_mode))
+ if (!S_ISSOCK(filp->f_dentry->d_inode->i_mode))
{
printk("smb_read_super: not a socket!\n");
sb->s_dev = 0;
@@ -305,8 +305,8 @@
}
smb_init_root_dirent(server, &(server->root.finfo));

- if (!(sb->s_mounted = iget(sb, smb_info_ino(&(server->root)))))
- {
+ sb->s_root = d_alloc_root(iget(sb, smb_info_ino(&(server->root))), NULL);
+ if (!sb->s_root) {
sb->s_dev = 0;
printk("smb_read_super: get root inode failed\n");
goto fail;
diff -ruN /kernel/kernels/virgin/linux/fs/smbfs/mmap.c /usr/src/linux-2.1.45/fs/smbfs/mmap.c
--- /kernel/kernels/virgin/linux/fs/smbfs/mmap.c Wed Jul 16 21:22:51 1997
+++ /usr/src/linux-2.1.45/fs/smbfs/mmap.c Thu Jul 17 15:15:18 1997
@@ -27,7 +27,7 @@
smb_file_mmap_nopage(struct vm_area_struct *area,
unsigned long address, int no_share)
{
- struct inode *inode = area->vm_inode;
+ struct inode *inode = area->vm_dentry->d_inode;
unsigned long page;
unsigned int clear;
unsigned long tmp;
@@ -117,7 +117,7 @@
if (!IS_RDONLY(inode))
{
inode->i_atime = CURRENT_TIME;
- inode->i_dirt = 1;
+ mark_inode_dirty(inode);
}

vma->vm_dentry = dget(file->f_dentry);
diff -ruN /kernel/kernels/virgin/linux/fs/smbfs/sock.c /usr/src/linux-2.1.45/fs/smbfs/sock.c
--- /kernel/kernels/virgin/linux/fs/smbfs/sock.c Mon Apr 7 13:35:31 1997
+++ /usr/src/linux-2.1.45/fs/smbfs/sock.c Thu Jul 17 14:31:18 1997
@@ -128,7 +128,7 @@

if ((server == NULL)
|| ((file = server->sock_file) == NULL)
- || ((inode = file->f_inode) == NULL)
+ || ((inode = file->f_dentry->d_inode) == NULL)
|| (!S_ISSOCK(inode->i_mode)))
{
printk("smb_catch_keepalive: did not get valid server!\n");
@@ -175,7 +175,7 @@

if ((server == NULL)
|| ((file = server->sock_file) == NULL)
- || ((inode = file->f_inode) == NULL)
+ || ((inode = file->f_dentry->d_inode) == NULL)
|| (!S_ISSOCK(inode->i_mode)))
{
printk("smb_dont_catch_keepalive: "
@@ -322,7 +322,7 @@
return NULL;
if ((file = server->sock_file) == NULL)
return NULL;
- if ((inode = file->f_inode) == NULL)
+ if ((inode = file->f_dentry->d_inode) == NULL)
return NULL;
return &(inode->u.socket_i);
}

---1765408319-318077841-869176535=:26833--