|
@@ -58,7 +58,7 @@ int ocfs2_write_block(struct ocfs2_super *osb, struct buffer_head *bh,
|
|
|
goto out;
|
|
|
}
|
|
|
|
|
|
- down(&OCFS2_I(inode)->ip_io_sem);
|
|
|
+ mutex_lock(&OCFS2_I(inode)->ip_io_mutex);
|
|
|
|
|
|
lock_buffer(bh);
|
|
|
set_buffer_uptodate(bh);
|
|
@@ -82,7 +82,7 @@ int ocfs2_write_block(struct ocfs2_super *osb, struct buffer_head *bh,
|
|
|
brelse(bh);
|
|
|
}
|
|
|
|
|
|
- up(&OCFS2_I(inode)->ip_io_sem);
|
|
|
+ mutex_unlock(&OCFS2_I(inode)->ip_io_mutex);
|
|
|
out:
|
|
|
mlog_exit(ret);
|
|
|
return ret;
|
|
@@ -125,13 +125,13 @@ int ocfs2_read_blocks(struct ocfs2_super *osb, u64 block, int nr,
|
|
|
flags &= ~OCFS2_BH_CACHED;
|
|
|
|
|
|
if (inode)
|
|
|
- down(&OCFS2_I(inode)->ip_io_sem);
|
|
|
+ mutex_lock(&OCFS2_I(inode)->ip_io_mutex);
|
|
|
for (i = 0 ; i < nr ; i++) {
|
|
|
if (bhs[i] == NULL) {
|
|
|
bhs[i] = sb_getblk(sb, block++);
|
|
|
if (bhs[i] == NULL) {
|
|
|
if (inode)
|
|
|
- up(&OCFS2_I(inode)->ip_io_sem);
|
|
|
+ mutex_unlock(&OCFS2_I(inode)->ip_io_mutex);
|
|
|
status = -EIO;
|
|
|
mlog_errno(status);
|
|
|
goto bail;
|
|
@@ -220,7 +220,7 @@ int ocfs2_read_blocks(struct ocfs2_super *osb, u64 block, int nr,
|
|
|
ocfs2_set_buffer_uptodate(inode, bh);
|
|
|
}
|
|
|
if (inode)
|
|
|
- up(&OCFS2_I(inode)->ip_io_sem);
|
|
|
+ mutex_unlock(&OCFS2_I(inode)->ip_io_mutex);
|
|
|
|
|
|
mlog(ML_BH_IO, "block=(%"MLFu64"), nr=(%d), cached=%s\n", block, nr,
|
|
|
(!(flags & OCFS2_BH_CACHED) || ignore_cache) ? "no" : "yes");
|