qty /= sizeof(union afs_dir_block);
/* check them */
- dbuf = kmap_atomic(page, KM_USER0);
+ dbuf = page_address(page);
for (tmp = 0; tmp < qty; tmp++) {
if (dbuf->blocks[tmp].pagehdr.magic != AFS_DIR_MAGIC) {
printk("kAFS: %s(%lu): bad magic %d/%d is %04hx\n",
goto error;
}
}
- kunmap_atomic(dbuf, KM_USER0);
+ SetPageChecked(page);
return;
error:
- kunmap_atomic(dbuf, KM_USER0);
+ SetPageChecked(page);
SetPageError(page);
} /* end afs_dir_check_page() */
*/
static inline void afs_dir_put_page(struct page *page)
{
+ kunmap(page);
page_cache_release(page);
} /* end afs_dir_put_page() */
page = read_mapping_page(dir->i_mapping, index, NULL);
if (!IS_ERR(page)) {
wait_on_page_locked(page);
+ kmap(page);
if (!PageUptodate(page))
goto fail;
- afs_dir_check_page(dir, page);
+ if (!PageChecked(page))
+ afs_dir_check_page(dir, page);
if (PageError(page))
goto fail;
}
{
_enter("{%lu}", inode->i_ino);
- BUG_ON(sizeof(union afs_dir_block) != 2048);
- BUG_ON(sizeof(union afs_dirent) != 32);
+ BUILD_BUG_ON(sizeof(union afs_dir_block) != 2048);
+ BUILD_BUG_ON(sizeof(union afs_dirent) != 32);
if (AFS_FS_I(inode)->flags & AFS_VNODE_DELETED)
return -ENOENT;
limit = blkoff & ~(PAGE_SIZE - 1);
- dbuf = kmap_atomic(page, KM_USER0);
+ dbuf = page_address(page);
/* deal with the individual blocks stashed on this page */
do {
ret = afs_dir_iterate_block(fpos, dblock, blkoff,
cookie, filldir);
if (ret != 1) {
- kunmap_atomic(dbuf, KM_USER0);
afs_dir_put_page(page);
goto out;
}
} while (*fpos < dir->i_size && blkoff < limit);
- kunmap_atomic(dbuf, KM_USER0);
afs_dir_put_page(page);
ret = 0;
}
unsigned fpos;
int ret;
- _enter("{%Ld,{%lu}}", file->f_pos, file->f_dentry->d_inode->i_ino);
+ _enter("{%Ld,{%lu}}", file->f_pos, file->f_path.dentry->d_inode->i_ino);
fpos = file->f_pos;
- ret = afs_dir_iterate(file->f_dentry->d_inode, &fpos, cookie, filldir);
+ ret = afs_dir_iterate(file->f_path.dentry->d_inode, &fpos, cookie, filldir);
file->f_pos = fpos;
_leave(" = %d", ret);
_enter("{%lu},%p{%s}", dir->i_ino, dentry, dentry->d_name.name);
/* insanity checks first */
- BUG_ON(sizeof(union afs_dir_block) != 2048);
- BUG_ON(sizeof(union afs_dirent) != 32);
+ BUILD_BUG_ON(sizeof(union afs_dir_block) != 2048);
+ BUILD_BUG_ON(sizeof(union afs_dirent) != 32);
if (dentry->d_name.len > 255) {
_leave(" = -ENAMETOOLONG");