ocfs2: Take the inode out of the metadata read/write paths.
We are really passing the inode into the ocfs2_read/write_blocks() functions to get at the metadata cache. This commit passes the cache directly into the metadata block functions, divorcing them from the inode. Signed-off-by: Joel Becker <joel.becker@oracle.com>
This commit is contained in:
@@ -150,8 +150,8 @@ int ocfs2_refresh_slot_info(struct ocfs2_super *osb)
|
||||
* be !NULL. Thus, ocfs2_read_blocks() will ignore blocknr. If
|
||||
* this is not true, the read of -1 (UINT64_MAX) will fail.
|
||||
*/
|
||||
ret = ocfs2_read_blocks(si->si_inode, -1, si->si_blocks, si->si_bh,
|
||||
OCFS2_BH_IGNORE_CACHE, NULL);
|
||||
ret = ocfs2_read_blocks(INODE_CACHE(si->si_inode), -1, si->si_blocks,
|
||||
si->si_bh, OCFS2_BH_IGNORE_CACHE, NULL);
|
||||
if (ret == 0) {
|
||||
spin_lock(&osb->osb_lock);
|
||||
ocfs2_update_slot_info(si);
|
||||
@@ -213,7 +213,7 @@ static int ocfs2_update_disk_slot(struct ocfs2_super *osb,
|
||||
ocfs2_update_disk_slot_old(si, slot_num, &bh);
|
||||
spin_unlock(&osb->osb_lock);
|
||||
|
||||
status = ocfs2_write_block(osb, bh, si->si_inode);
|
||||
status = ocfs2_write_block(osb, bh, INODE_CACHE(si->si_inode));
|
||||
if (status < 0)
|
||||
mlog_errno(status);
|
||||
|
||||
@@ -404,8 +404,8 @@ static int ocfs2_map_slot_buffers(struct ocfs2_super *osb,
|
||||
(unsigned long long)blkno);
|
||||
|
||||
bh = NULL; /* Acquire a fresh bh */
|
||||
status = ocfs2_read_blocks(si->si_inode, blkno, 1, &bh,
|
||||
OCFS2_BH_IGNORE_CACHE, NULL);
|
||||
status = ocfs2_read_blocks(INODE_CACHE(si->si_inode), blkno,
|
||||
1, &bh, OCFS2_BH_IGNORE_CACHE, NULL);
|
||||
if (status < 0) {
|
||||
mlog_errno(status);
|
||||
goto bail;
|
||||
|
Fai riferimento in un nuovo problema
Block a user