forked from luck/tmp_suning_uos_patched
qnx4: get rid of qnx4_bread/qnx4_getblk
pointless, since the only caller will want the physical block number anyway; might as well call qnx4_block_map() and use sb_bread() Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
This commit is contained in:
parent
19e5109fef
commit
8f82ecae53
|
@ -52,38 +52,6 @@ static int qnx4_remount(struct super_block *sb, int *flags, char *data)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static struct buffer_head *qnx4_getblk(struct inode *inode, int nr,
|
||||
int create)
|
||||
{
|
||||
struct buffer_head *result = NULL;
|
||||
|
||||
if ( nr >= 0 )
|
||||
nr = qnx4_block_map( inode, nr );
|
||||
if (nr) {
|
||||
result = sb_getblk(inode->i_sb, nr);
|
||||
return result;
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
struct buffer_head *qnx4_bread(struct inode *inode, int block, int create)
|
||||
{
|
||||
struct buffer_head *bh;
|
||||
|
||||
bh = qnx4_getblk(inode, block, create);
|
||||
if (!bh || buffer_uptodate(bh)) {
|
||||
return bh;
|
||||
}
|
||||
ll_rw_block(READ, 1, &bh);
|
||||
wait_on_buffer(bh);
|
||||
if (buffer_uptodate(bh)) {
|
||||
return bh;
|
||||
}
|
||||
brelse(bh);
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static int qnx4_get_block( struct inode *inode, sector_t iblock, struct buffer_head *bh, int create )
|
||||
{
|
||||
unsigned long phys;
|
||||
|
|
|
@ -68,7 +68,9 @@ static struct buffer_head *qnx4_find_entry(int len, struct inode *dir,
|
|||
block = offset = blkofs = 0;
|
||||
while (blkofs * QNX4_BLOCK_SIZE + offset < dir->i_size) {
|
||||
if (!bh) {
|
||||
bh = qnx4_bread(dir, blkofs, 0);
|
||||
block = qnx4_block_map(dir, blkofs);
|
||||
if (block)
|
||||
bh = sb_bread(dir->i_sb, block);
|
||||
if (!bh) {
|
||||
blkofs++;
|
||||
continue;
|
||||
|
@ -76,7 +78,6 @@ static struct buffer_head *qnx4_find_entry(int len, struct inode *dir,
|
|||
}
|
||||
*res_dir = (struct qnx4_inode_entry *) (bh->b_data + offset);
|
||||
if (qnx4_match(len, name, bh, &offset)) {
|
||||
block = qnx4_block_map( dir, blkofs );
|
||||
*ino = block * QNX4_INODES_PER_BLOCK +
|
||||
(offset / QNX4_DIR_ENTRY_SIZE) - 1;
|
||||
return bh;
|
||||
|
|
|
@ -27,8 +27,6 @@ extern struct dentry *qnx4_lookup(struct inode *dir, struct dentry *dentry, stru
|
|||
extern unsigned long qnx4_count_free_blocks(struct super_block *sb);
|
||||
extern unsigned long qnx4_block_map(struct inode *inode, long iblock);
|
||||
|
||||
extern struct buffer_head *qnx4_bread(struct inode *, int, int);
|
||||
|
||||
extern const struct inode_operations qnx4_dir_inode_operations;
|
||||
extern const struct file_operations qnx4_dir_operations;
|
||||
extern int qnx4_is_free(struct super_block *sb, long block);
|
||||
|
|
Loading…
Reference in New Issue
Block a user