patch-2.4.2 linux/fs/smbfs/file.c
Next file: linux/fs/smbfs/inode.c
Previous file: linux/fs/smbfs/dir.c
Back to the patch index
Back to the overall index
- Lines: 56
- Date:
Fri Feb 16 16:03:24 2001
- Orig file:
v2.4.1/linux/fs/smbfs/file.c
- Orig date:
Fri Dec 29 14:07:57 2000
diff -u --recursive --new-file v2.4.1/linux/fs/smbfs/file.c linux/fs/smbfs/file.c
@@ -13,7 +13,7 @@
#include <linux/fcntl.h>
#include <linux/stat.h>
#include <linux/mm.h>
-#include <linux/malloc.h>
+#include <linux/slab.h>
#include <linux/pagemap.h>
#include <linux/smp_lock.h>
@@ -38,7 +38,7 @@
static int
smb_readpage_sync(struct dentry *dentry, struct page *page)
{
- char *buffer = page_address(page);
+ char *buffer = kmap(page);
unsigned long offset = page->index << PAGE_CACHE_SHIFT;
int rsize = smb_get_rsize(server_from_dentry(dentry));
int count = PAGE_SIZE;
@@ -76,6 +76,7 @@
result = 0;
io_error:
+ kunmap(page);
UnlockPage(page);
return result;
}
@@ -89,8 +90,6 @@
int error;
struct dentry *dentry = file->f_dentry;
- DEBUG1("readpage %p\n", page_address(page));
-
get_page(page);
error = smb_readpage_sync(dentry, page);
put_page(page);
@@ -105,7 +104,7 @@
smb_writepage_sync(struct inode *inode, struct page *page,
unsigned long offset, unsigned int count)
{
- u8 *buffer = page_address(page) + offset;
+ char *buffer = kmap(page) + offset;
int wsize = smb_get_wsize(server_from_inode(inode));
int result, written = 0;
@@ -139,8 +138,10 @@
inode->i_mtime = inode->i_atime = CURRENT_TIME;
if (offset > inode->i_size)
inode->i_size = offset;
- inode->u.smbfs_i.cache_valid |= SMB_F_LOCALWRITE;
+ inode->u.smbfs_i.flags |= SMB_F_LOCALWRITE;
} while (count);
+
+ kunmap(page);
return written ? written : result;
}
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)