X-Git-Url: https://git.karo-electronics.de/?a=blobdiff_plain;f=fs%2Fsysv%2Fdir.c;h=e566b387fcf949c5f202493605f7337ae2a85e3e;hb=b4b613fd83853f8c688b3de20ab1a42331257975;hp=d7074341ee87e4996715bfbca1bbe2210c62d9e8;hpb=3145012c1c34a3504a2234bd2034ca6ea4767bc5;p=mv-sheeva.git diff --git a/fs/sysv/dir.c b/fs/sysv/dir.c index d7074341ee8..e566b387fcf 100644 --- a/fs/sysv/dir.c +++ b/fs/sysv/dir.c @@ -53,25 +53,16 @@ static int dir_commit_chunk(struct page *page, unsigned from, unsigned to) static struct page * dir_get_page(struct inode *dir, unsigned long n) { struct address_space *mapping = dir->i_mapping; - struct page *page = read_cache_page(mapping, n, - (filler_t*)mapping->a_ops->readpage, NULL); - if (!IS_ERR(page)) { - wait_on_page_locked(page); + struct page *page = read_mapping_page(mapping, n, NULL); + if (!IS_ERR(page)) kmap(page); - if (!PageUptodate(page)) - goto fail; - } return page; - -fail: - dir_put_page(page); - return ERR_PTR(-EIO); } static int sysv_readdir(struct file * filp, void * dirent, filldir_t filldir) { unsigned long pos = filp->f_pos; - struct inode *inode = filp->f_dentry->d_inode; + struct inode *inode = filp->f_path.dentry->d_inode; struct super_block *sb = inode->i_sb; unsigned offset = pos & ~PAGE_CACHE_MASK; unsigned long n = pos >> PAGE_CACHE_SHIFT;