Messages in this thread Patch in this message |  | | | From | Michael Meskes <> | | Subject | smbfs patch in 2.0.31-pre5? | | Date | 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
|  |