diff -r -c --new-file client-2.0.33.s/fs/smbfs/symlink.c client-2.0.33.s.v0.3/fs/smbfs/symlink.c *** client-2.0.33.s/fs/smbfs/symlink.c Fri Apr 21 21:40:46 2000 --- client-2.0.33.s.v0.3/fs/smbfs/symlink.c Wed Apr 26 14:53:14 2000 *************** *** 1,5 **** --- 1,6 ---- /* * symlink.c + * v 0.3, Wed Apr 26 14:53:02 CEST 2000 * * built using parts of smbfs/file.c * Copyright (C) 1995, 1996, 1997 by Paal-Kr. Engstad and Volker Lendecke *************** *** 237,247 **** #ifdef SMBFS_DEBUG_VERBOSE printk(" symname,"); #endif - link[8+length]='\0'; - #ifdef SMBFS_DEBUG_VERBOSE - printk(" nul delim: %s,",link); - #endif - #ifdef SMBFS_DEBUG_VERBOSE printk(" inode population,"); --- 238,243 ---- *************** *** 264,280 **** } } ! DPRINTK("preparing to write %i (%s),",length+9,link); bufsize = SMB_SERVER(inode)->max_xmit - SMB_HEADER_LEN - 5 * 2 - 5; ! if ((err = smb_proc_write_mem(SMB_SERVER(inode), SMB_FINFO(inode), 0, length+9, link)) < 0) { #ifdef SMBFS_DEBUG_VERBOSE printk(" bombed on write (%s) error %i\n",link+8, err); #endif smb_kfree_s(link,SMB_MAX_SYMLINK_SIZE); return -EIO; } ! inode->i_size = length+9; inode->i_dirt = 1; inode->i_mode = S_IFLNK | S_IRWXUGO; --- 260,276 ---- } } ! DPRINTK("preparing to write %i (%s),",length+8,link); bufsize = SMB_SERVER(inode)->max_xmit - SMB_HEADER_LEN - 5 * 2 - 5; ! if ((err = smb_proc_write_mem(SMB_SERVER(inode), SMB_FINFO(inode), 0, length+8, link)) < 0) { #ifdef SMBFS_DEBUG_VERBOSE printk(" bombed on write (%s) error %i\n",link+8, err); #endif smb_kfree_s(link,SMB_MAX_SYMLINK_SIZE); return -EIO; } ! inode->i_size = length+8; inode->i_dirt = 1; inode->i_mode = S_IFLNK | S_IRWXUGO; *************** *** 309,316 **** static int smb_readlink (struct inode * inode, char * buffer, int buflen) { ! /* struct buffer_head * bh = NULL; ! */ char * link; int i, length; char c; struct smb_dirent *de; --- 305,311 ---- static int smb_readlink (struct inode * inode, char * buffer, int buflen) { ! char * link; int i, length; char c; struct smb_dirent *de; *************** *** 338,344 **** printk(" %i blocks to read,",inode->i_blocks); #endif link = (char *)smb_kmalloc(SMB_MAX_SYMLINK_SIZE, GFP_KERNEL); ! length = smb_proc_read (SMB_SERVER(inode), SMB_FINFO(inode), 0, min(SMB_MAX_SYMLINK_SIZE-1, de->f_size), link, 0); if (length < 0) { #ifdef SMBFS_DEBUG_VERBOSE printk(" error %i on read\n",length); --- 333,339 ---- printk(" %i blocks to read,",inode->i_blocks); #endif link = (char *)smb_kmalloc(SMB_MAX_SYMLINK_SIZE, GFP_KERNEL); ! length = smb_proc_read (SMB_SERVER(inode), SMB_FINFO(inode), 0, min(SMB_MAX_SYMLINK_SIZE, de->f_size), link, 0); if (length < 0) { #ifdef SMBFS_DEBUG_VERBOSE printk(" error %i on read\n",length);