X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=fs%2Fsysv%2Fdir.c;h=e566b387fcf949c5f202493605f7337ae2a85e3e;hb=6fe6900e1e5b6fa9e5c59aa5061f244fe3f467e2;hp=f2bef962d30983cc1f43d2d965db2faa3fd1af17;hpb=61b9175808670d9abf52156803ae0ed1e3706ac4;p=powerpc.git diff --git a/fs/sysv/dir.c b/fs/sysv/dir.c index f2bef962d3..e566b387fc 100644 --- a/fs/sysv/dir.c +++ b/fs/sysv/dir.c @@ -54,23 +54,15 @@ 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); - if (!IS_ERR(page)) { - wait_on_page_locked(page); + 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;