Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 251b6ecc authored by Mark Fasheh's avatar Mark Fasheh
Browse files

[OCFS2] Make ip_io_sem a mutex



ip_io_sem is now ip_io_mutex.

Signed-off-by: default avatarMark Fasheh <mark.fasheh@oracle.com>
parent aee93ac4
Loading
Loading
Loading
Loading
+5 −5
Original line number Diff line number Diff line
@@ -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");
+3 −3
Original line number Diff line number Diff line
@@ -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
+2 −2
Original line number Diff line number Diff line
@@ -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;
+2 −2
Original line number Diff line number Diff line
@@ -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:
@@ -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",
+1 −1
Original line number Diff line number Diff line
@@ -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