patch-2.3.9 linux/fs/sysv/file.c
Next file: linux/fs/sysv/fsync.c
Previous file: linux/fs/sysv/dir.c
Back to the patch index
Back to the overall index
- Lines: 71
- Date:
Sun Jun 27 10:10:41 1999
- Orig file:
v2.3.8/linux/fs/sysv/file.c
- Orig date:
Sat Jun 19 12:15:14 1999
diff -u --recursive --new-file v2.3.8/linux/fs/sysv/file.c linux/fs/sysv/file.c
@@ -33,50 +33,14 @@
#include <linux/fs.h>
#include <linux/sysv_fs.h>
-static int sysv_writepage (struct file * file, struct page * page)
-{
- struct dentry *dentry = file->f_dentry;
- struct inode *inode = dentry->d_inode;
- unsigned long block;
- int *p, nr[PAGE_SIZE/512];
- int i, err, created;
- struct buffer_head *bh;
-
- i = PAGE_SIZE >> inode->i_sb->sv_block_size_bits;
- block = page->offset >> inode->i_sb->sv_block_size_bits;
- p = nr;
- bh = page->buffers;
- do {
- if (bh && bh->b_blocknr)
- *p = bh->b_blocknr;
- else
- *p = sysv_getblk_block (inode, block, 1, &err, &created);
- if (!*p)
- return -EIO;
- i--;
- block++;
- p++;
- if (bh)
- bh = bh->b_this_page;
- } while (i > 0);
-
- /* IO start */
- brw_page(WRITE, page, inode->i_dev, nr, inode->i_sb->sv_block_size, 1);
- return 0;
-}
-
-static long sysv_write_one_page (struct file *file, struct page *page, unsigned long offset, unsigned long bytes, const char * buf)
-{
- return block_write_one_page(file, page, offset, bytes, buf, sysv_getblk_block);
-}
-
/*
* Write to a file (through the page cache).
*/
static ssize_t
sysv_file_write(struct file *file, const char *buf, size_t count, loff_t *ppos)
{
- return generic_file_write(file, buf, count, ppos, sysv_write_one_page);
+ return generic_file_write(file, buf, count,
+ ppos, block_write_partial_page);
}
/*
@@ -113,12 +77,12 @@
NULL, /* rename */
NULL, /* readlink */
NULL, /* follow_link */
- generic_readpage, /* readpage */
- sysv_writepage, /* writepage */
- sysv_bmap, /* bmap */
+ sysv_get_block, /* get_block */
+ block_read_full_page, /* readpage */
+ block_write_full_page, /* writepage */
+ block_flushpage, /* flushpage */
sysv_truncate, /* truncate */
NULL, /* permission */
NULL, /* smap */
- NULL, /* revalidate */
- block_flushpage, /* flushpage */
+ NULL /* revalidate */
};
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)