static int sysv_readdir(struct file *, void *, filldir_t);
-const struct file_operations sysv_dir_operations = {
+struct file_operations sysv_dir_operations = {
.read = generic_read_dir,
.readdir = sysv_readdir,
.fsync = sysv_sync_file,
static struct page * dir_get_page(struct inode *dir, unsigned long n)
{
struct address_space *mapping = dir->i_mapping;
- struct page *page = read_mapping_page(mapping, n, NULL);
+ struct page *page = read_cache_page(mapping, n,
+ (filler_t*)mapping->a_ops->readpage, NULL);
if (!IS_ERR(page)) {
wait_on_page_locked(page);
kmap(page);
lock_page(page);
err = mapping->a_ops->prepare_write(NULL, page, from, to);
- BUG_ON(err);
+ if (err)
+ BUG();
de->inode = 0;
err = dir_commit_chunk(page, from, to);
dir_put_page(page);
lock_page(page);
err = page->mapping->a_ops->prepare_write(NULL, page, from, to);
- BUG_ON(err);
+ if (err)
+ BUG();
de->inode = cpu_to_fs16(SYSV_SB(inode->i_sb), inode->i_ino);
err = dir_commit_chunk(page, from, to);
dir_put_page(page);