Loading fs/ocfs2/buffer_head_io.c +5 −5 Original line number Diff line number Diff line Loading @@ -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); Loading @@ -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; Loading Loading @@ -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; Loading Loading @@ -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"); Loading fs/ocfs2/inode.c +3 −3 Original line number Diff line number Diff line Loading @@ -903,10 +903,10 @@ void ocfs2_clear_inode(struct inode *inode) "Clear inode of %"MLFu64", inode is locked\n", oi->ip_blkno); mlog_bug_on_msg(down_trylock(&oi->ip_io_sem), "Clear inode of %"MLFu64", io_sem is locked\n", mlog_bug_on_msg(!mutex_trylock(&oi->ip_io_mutex), "Clear inode of %"MLFu64", io_mutex is locked\n", oi->ip_blkno); up(&oi->ip_io_sem); mutex_unlock(&oi->ip_io_mutex); /* * down_trylock() returns 0, down_write_trylock() returns 1 Loading fs/ocfs2/inode.h +2 −2 Original line number Diff line number Diff line Loading @@ -46,10 +46,10 @@ struct ocfs2_inode_info struct list_head ip_io_markers; int ip_orphaned_slot; struct semaphore ip_io_sem; struct mutex ip_io_mutex; /* Used by the journalling code to attach an inode to a * handle. These are protected by ip_io_sem in order to lock * handle. These are protected by ip_io_mutex in order to lock * out other I/O to the inode until we either commit or * abort. */ struct list_head ip_handle_list; Loading fs/ocfs2/journal.c +2 −2 Original line number Diff line number Diff line Loading @@ -401,7 +401,7 @@ int ocfs2_journal_access(struct ocfs2_journal_handle *handle, * j_trans_barrier for us. */ ocfs2_set_inode_lock_trans(OCFS2_SB(inode->i_sb)->journal, inode); down(&OCFS2_I(inode)->ip_io_sem); mutex_lock(&OCFS2_I(inode)->ip_io_mutex); switch (type) { case OCFS2_JOURNAL_ACCESS_CREATE: case OCFS2_JOURNAL_ACCESS_WRITE: Loading @@ -416,7 +416,7 @@ int ocfs2_journal_access(struct ocfs2_journal_handle *handle, status = -EINVAL; mlog(ML_ERROR, "Uknown access type!\n"); } up(&OCFS2_I(inode)->ip_io_sem); mutex_unlock(&OCFS2_I(inode)->ip_io_mutex); if (status < 0) mlog(ML_ERROR, "Error %d getting %d access to buffer!\n", Loading fs/ocfs2/super.c +1 −1 Original line number Diff line number Diff line Loading @@ -932,7 +932,7 @@ static void ocfs2_inode_init_once(void *data, oi->ip_dir_start_lookup = 0; init_rwsem(&oi->ip_alloc_sem); init_MUTEX(&(oi->ip_io_sem)); mutex_init(&oi->ip_io_mutex); oi->ip_blkno = 0ULL; oi->ip_clusters = 0; Loading Loading
fs/ocfs2/buffer_head_io.c +5 −5 Original line number Diff line number Diff line Loading @@ -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); Loading @@ -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; Loading Loading @@ -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; Loading Loading @@ -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"); Loading
fs/ocfs2/inode.c +3 −3 Original line number Diff line number Diff line Loading @@ -903,10 +903,10 @@ void ocfs2_clear_inode(struct inode *inode) "Clear inode of %"MLFu64", inode is locked\n", oi->ip_blkno); mlog_bug_on_msg(down_trylock(&oi->ip_io_sem), "Clear inode of %"MLFu64", io_sem is locked\n", mlog_bug_on_msg(!mutex_trylock(&oi->ip_io_mutex), "Clear inode of %"MLFu64", io_mutex is locked\n", oi->ip_blkno); up(&oi->ip_io_sem); mutex_unlock(&oi->ip_io_mutex); /* * down_trylock() returns 0, down_write_trylock() returns 1 Loading
fs/ocfs2/inode.h +2 −2 Original line number Diff line number Diff line Loading @@ -46,10 +46,10 @@ struct ocfs2_inode_info struct list_head ip_io_markers; int ip_orphaned_slot; struct semaphore ip_io_sem; struct mutex ip_io_mutex; /* Used by the journalling code to attach an inode to a * handle. These are protected by ip_io_sem in order to lock * handle. These are protected by ip_io_mutex in order to lock * out other I/O to the inode until we either commit or * abort. */ struct list_head ip_handle_list; Loading
fs/ocfs2/journal.c +2 −2 Original line number Diff line number Diff line Loading @@ -401,7 +401,7 @@ int ocfs2_journal_access(struct ocfs2_journal_handle *handle, * j_trans_barrier for us. */ ocfs2_set_inode_lock_trans(OCFS2_SB(inode->i_sb)->journal, inode); down(&OCFS2_I(inode)->ip_io_sem); mutex_lock(&OCFS2_I(inode)->ip_io_mutex); switch (type) { case OCFS2_JOURNAL_ACCESS_CREATE: case OCFS2_JOURNAL_ACCESS_WRITE: Loading @@ -416,7 +416,7 @@ int ocfs2_journal_access(struct ocfs2_journal_handle *handle, status = -EINVAL; mlog(ML_ERROR, "Uknown access type!\n"); } up(&OCFS2_I(inode)->ip_io_sem); mutex_unlock(&OCFS2_I(inode)->ip_io_mutex); if (status < 0) mlog(ML_ERROR, "Error %d getting %d access to buffer!\n", Loading
fs/ocfs2/super.c +1 −1 Original line number Diff line number Diff line Loading @@ -932,7 +932,7 @@ static void ocfs2_inode_init_once(void *data, oi->ip_dir_start_lookup = 0; init_rwsem(&oi->ip_alloc_sem); init_MUTEX(&(oi->ip_io_sem)); mutex_init(&oi->ip_io_mutex); oi->ip_blkno = 0ULL; oi->ip_clusters = 0; Loading