if (de->rec_len == 0) {
ext2_error(sb, __func__,
"zero-length directory entry");
- ext2_put_page(page, kaddr);
+ ext2_put_page(page, de);
return -EIO;
}
if (de->inode) {
if (!dir_emit(ctx, de->name, de->name_len,
le32_to_cpu(de->inode),
d_type)) {
- ext2_put_page(page, kaddr);
+ ext2_put_page(page, de);
return 0;
}
}
if (de->rec_len == 0) {
ext2_error(dir->i_sb, __func__,
"zero-length directory entry");
- ext2_put_page(page, page_addr);
+ ext2_put_page(page, de);
goto out;
}
if (ext2_match(namelen, name, de))
goto found;
de = ext2_next_entry(de);
}
- ext2_put_page(page, page_addr);
+ ext2_put_page(page, kaddr);
if (++n >= npages)
n = 0;
return PTR_ERR(de);
*ino = le32_to_cpu(de->inode);
- ext2_put_page(page, page_addr);
+ ext2_put_page(page, de);
return 0;
}
unsigned reclen = EXT2_DIR_REC_LEN(namelen);
unsigned short rec_len, name_len;
struct page *page = NULL;
- void *page_addr = NULL;
ext2_dirent * de;
unsigned long npages = dir_pages(dir);
unsigned long n;
char *kaddr;
char *dir_end;
- page_addr = ext2_get_page(dir, n, 0, &page);
- if (IS_ERR(page_addr))
- return PTR_ERR(page_addr);
+ kaddr = ext2_get_page(dir, n, 0, &page);
+ if (IS_ERR(kaddr))
+ return PTR_ERR(kaddr);
lock_page(page);
- kaddr = page_addr;
dir_end = kaddr + ext2_last_byte(dir, n);
de = (ext2_dirent *)kaddr;
kaddr += PAGE_SIZE - reclen;
de = (ext2_dirent *) ((char *) de + rec_len);
}
unlock_page(page);
- ext2_put_page(page, page_addr);
+ ext2_put_page(page, kaddr);
}
BUG();
return -EINVAL;
err = ext2_handle_dirsync(dir);
/* OFFSET_CACHE */
out_put:
- ext2_put_page(page, page_addr);
+ ext2_put_page(page, de);
return err;
out_unlock:
unlock_page(page);
*/
int ext2_empty_dir (struct inode * inode)
{
- void *page_addr = NULL;
- struct page *page = NULL;
+ struct page *page;
+ char *kaddr;
unsigned long i, npages = dir_pages(inode);
for (i = 0; i < npages; i++) {
- char *kaddr;
- ext2_dirent * de;
- page_addr = ext2_get_page(inode, i, 0, &page);
+ ext2_dirent *de;
- if (IS_ERR(page_addr))
+ kaddr = ext2_get_page(inode, i, 0, &page);
+ if (IS_ERR(kaddr))
return 0;
- kaddr = page_addr;
de = (ext2_dirent *)kaddr;
kaddr += ext2_last_byte(inode, i) - EXT2_DIR_REC_LEN(1);
}
de = ext2_next_entry(de);
}
- ext2_put_page(page, page_addr);
+ ext2_put_page(page, kaddr);
}
return 1;
not_empty:
- ext2_put_page(page, page_addr);
+ ext2_put_page(page, kaddr);
return 0;
}
}
err = ext2_delete_entry (de, page, page_addr);
- ext2_put_page(page, page_addr);
+ ext2_put_page(page, de);
if (err)
goto out;
}
err = ext2_set_link(new_dir, new_de, new_page, page_addr,
old_inode, true);
- ext2_put_page(new_page, page_addr);
+ ext2_put_page(new_page, new_de);
if (err)
goto out_dir;
new_inode->i_ctime = current_time(new_inode);
}
out_dir:
if (dir_de)
- ext2_put_page(dir_page, dir_page_addr);
+ ext2_put_page(dir_page, dir_de);
out_old:
- ext2_put_page(old_page, old_page_addr);
+ ext2_put_page(old_page, old_de);
return err;
}