smbfs patch in 2.0.31-pre5?

Michael Meskes (meskes@topsystem.de)
Thu, 14 Aug 1997 10:19:27 +0200 (CEST)


Did the following smbfs patch made it into the 2.0.31 kernel yet? It seemed
to have fixed my occassional smbfs problems. This patch is not my own, but
just found on linuxhq.

--- linux-2.0.30/fs/smbfs/sock.c.old Sun Apr 27 15:53:57 1997
+++ linux-2.0.30/fs/smbfs/sock.c Fri Aug 1 11:08:35 1997
@@ -338,6 +338,8 @@
DPRINTK("smb_receive: Increase packet size from %d to %d\n",
server->packet_size, len + 4);
smb_vfree(server->packet);
+ server->packet = NULL;
+
server->packet_size = 0;
server->packet = smb_vmalloc(len + 4);
if (server->packet == NULL)
--- linux-2.0.30/fs/smbfs/proc.c.old Sun Apr 27 15:53:57 1997
+++ linux-2.0.30/fs/smbfs/proc.c Fri Aug 1 10:34:49 1997
@@ -1685,6 +1685,7 @@
if (server->packet != NULL)
{
smb_vfree(server->packet);
+ server->packet = NULL;
server->packet_size = 0;
}
server->packet = smb_vmalloc(max_xmit);
@@ -1920,6 +1921,7 @@

/* Now make a new packet with the correct size. */
smb_vfree(server->packet);
+ server->packet = NULL;

server->packet = smb_vmalloc(server->max_xmit);
if (server->packet == NULL)
--- linux-2.0.30/fs/smbfs/inode.c.old Sun Dec 1 08:58:05 1996
+++ linux-2.0.30/fs/smbfs/inode.c Fri Aug 1 11:32:57 1997
@@ -96,10 +96,23 @@
struct smb_server *server = SMB_SERVER(inode);
struct smb_inode_info *info = SMB_INOP(inode);

+ if (inode->i_count > 1) {
+ printk("smb_put_inode: in use device %s, inode %ld count=%d\n",
+ kdevname(inode->i_dev), inode->i_ino, inode->i_count);
+ return;
+ }
+
if (S_ISDIR(inode->i_mode))
{
smb_invalid_dir_cache(inode->i_ino);
}
+ clear_inode(inode);
+
+ /*
+ * We don't want the inode to be reused as free if we block here,
+ * so temporarily increment i_count.
+ */
+ inode->i_count++;
if (finfo->opened != 0)
{
if (smb_proc_close(server, finfo->fileid, inode->i_mtime))
@@ -109,7 +122,7 @@
}
}
smb_free_inode_info(info);
- clear_inode(inode);
+ inode->i_count--;
}

static void

Michael

-- 
Dr. Michael Meskes, Project-Manager    | topsystem Systemhaus GmbH
meskes@topsystem.de                    | Europark A2, Adenauerstr. 20
meskes@debian.org                      | 52146 Wuerselen
Go SF49ers! Go Rhein Fire!             | Tel: (+49) 2405/4670-44
Use Debian GNU/Linux!                  | Fax: (+49) 2405/4670-10