Commit a13828b1 authored by Nathan Scott's avatar Nathan Scott

[XFS] Cleanup references to i_sem.

SGI-PV: 904196
SGI-Modid: xfs-linux-melb:xfs-kern:25480a
Signed-off-by: default avatarNathan Scott <nathans@sgi.com>
parent b12dd342
...@@ -249,9 +249,8 @@ xfs_read( ...@@ -249,9 +249,8 @@ xfs_read(
if (n < size) if (n < size)
size = n; size = n;
if (XFS_FORCED_SHUTDOWN(mp)) { if (XFS_FORCED_SHUTDOWN(mp))
return -EIO; return -EIO;
}
if (unlikely(ioflags & IO_ISDIRECT)) if (unlikely(ioflags & IO_ISDIRECT))
mutex_lock(&inode->i_mutex); mutex_lock(&inode->i_mutex);
...@@ -267,7 +266,7 @@ xfs_read( ...@@ -267,7 +266,7 @@ xfs_read(
dmflags, &locktype); dmflags, &locktype);
if (ret) { if (ret) {
xfs_iunlock(ip, XFS_IOLOCK_SHARED); xfs_iunlock(ip, XFS_IOLOCK_SHARED);
goto unlock_isem; goto unlock_mutex;
} }
} }
...@@ -281,7 +280,7 @@ xfs_read( ...@@ -281,7 +280,7 @@ xfs_read(
xfs_iunlock(ip, XFS_IOLOCK_SHARED); xfs_iunlock(ip, XFS_IOLOCK_SHARED);
unlock_isem: unlock_mutex:
if (unlikely(ioflags & IO_ISDIRECT)) if (unlikely(ioflags & IO_ISDIRECT))
mutex_unlock(&inode->i_mutex); mutex_unlock(&inode->i_mutex);
return ret; return ret;
...@@ -573,7 +572,7 @@ xfs_write( ...@@ -573,7 +572,7 @@ xfs_write(
vrwlock_t locktype; vrwlock_t locktype;
size_t ocount = 0, count; size_t ocount = 0, count;
loff_t pos; loff_t pos;
int need_isem = 1, need_flush = 0; int need_i_mutex = 1, need_flush = 0;
XFS_STATS_INC(xs_write_calls); XFS_STATS_INC(xs_write_calls);
...@@ -622,14 +621,14 @@ xfs_write( ...@@ -622,14 +621,14 @@ xfs_write(
return XFS_ERROR(-EINVAL); return XFS_ERROR(-EINVAL);
if (!VN_CACHED(vp) && pos < i_size_read(inode)) if (!VN_CACHED(vp) && pos < i_size_read(inode))
need_isem = 0; need_i_mutex = 0;
if (VN_CACHED(vp)) if (VN_CACHED(vp))
need_flush = 1; need_flush = 1;
} }
relock: relock:
if (need_isem) { if (need_i_mutex) {
iolock = XFS_IOLOCK_EXCL; iolock = XFS_IOLOCK_EXCL;
locktype = VRWLOCK_WRITE; locktype = VRWLOCK_WRITE;
...@@ -651,7 +650,7 @@ xfs_write( ...@@ -651,7 +650,7 @@ xfs_write(
S_ISBLK(inode->i_mode)); S_ISBLK(inode->i_mode));
if (error) { if (error) {
xfs_iunlock(xip, XFS_ILOCK_EXCL|iolock); xfs_iunlock(xip, XFS_ILOCK_EXCL|iolock);
goto out_unlock_isem; goto out_unlock_mutex;
} }
new_size = pos + count; new_size = pos + count;
...@@ -663,7 +662,7 @@ xfs_write( ...@@ -663,7 +662,7 @@ xfs_write(
loff_t savedsize = pos; loff_t savedsize = pos;
int dmflags = FILP_DELAY_FLAG(file); int dmflags = FILP_DELAY_FLAG(file);
if (need_isem) if (need_i_mutex)
dmflags |= DM_FLAGS_IMUX; dmflags |= DM_FLAGS_IMUX;
xfs_iunlock(xip, XFS_ILOCK_EXCL); xfs_iunlock(xip, XFS_ILOCK_EXCL);
...@@ -672,7 +671,7 @@ xfs_write( ...@@ -672,7 +671,7 @@ xfs_write(
dmflags, &locktype); dmflags, &locktype);
if (error) { if (error) {
xfs_iunlock(xip, iolock); xfs_iunlock(xip, iolock);
goto out_unlock_isem; goto out_unlock_mutex;
} }
xfs_ilock(xip, XFS_ILOCK_EXCL); xfs_ilock(xip, XFS_ILOCK_EXCL);
eventsent = 1; eventsent = 1;
...@@ -710,7 +709,7 @@ xfs_write( ...@@ -710,7 +709,7 @@ xfs_write(
isize, pos + count); isize, pos + count);
if (error) { if (error) {
xfs_iunlock(xip, XFS_ILOCK_EXCL|iolock); xfs_iunlock(xip, XFS_ILOCK_EXCL|iolock);
goto out_unlock_isem; goto out_unlock_mutex;
} }
} }
xfs_iunlock(xip, XFS_ILOCK_EXCL); xfs_iunlock(xip, XFS_ILOCK_EXCL);
...@@ -731,7 +730,7 @@ xfs_write( ...@@ -731,7 +730,7 @@ xfs_write(
error = -remove_suid(file->f_dentry); error = -remove_suid(file->f_dentry);
if (unlikely(error)) { if (unlikely(error)) {
xfs_iunlock(xip, iolock); xfs_iunlock(xip, iolock);
goto out_unlock_isem; goto out_unlock_mutex;
} }
} }
...@@ -747,14 +746,14 @@ xfs_write( ...@@ -747,14 +746,14 @@ xfs_write(
-1, FI_REMAPF_LOCKED); -1, FI_REMAPF_LOCKED);
} }
if (need_isem) { if (need_i_mutex) {
/* demote the lock now the cached pages are gone */ /* demote the lock now the cached pages are gone */
XFS_ILOCK_DEMOTE(mp, io, XFS_IOLOCK_EXCL); XFS_ILOCK_DEMOTE(mp, io, XFS_IOLOCK_EXCL);
mutex_unlock(&inode->i_mutex); mutex_unlock(&inode->i_mutex);
iolock = XFS_IOLOCK_SHARED; iolock = XFS_IOLOCK_SHARED;
locktype = VRWLOCK_WRITE_DIRECT; locktype = VRWLOCK_WRITE_DIRECT;
need_isem = 0; need_i_mutex = 0;
} }
xfs_rw_enter_trace(XFS_DIOWR_ENTER, io, (void *)iovp, segs, xfs_rw_enter_trace(XFS_DIOWR_ENTER, io, (void *)iovp, segs,
...@@ -772,7 +771,7 @@ xfs_write( ...@@ -772,7 +771,7 @@ xfs_write(
pos += ret; pos += ret;
count -= ret; count -= ret;
need_isem = 1; need_i_mutex = 1;
ioflags &= ~IO_ISDIRECT; ioflags &= ~IO_ISDIRECT;
xfs_iunlock(xip, iolock); xfs_iunlock(xip, iolock);
goto relock; goto relock;
...@@ -794,14 +793,14 @@ xfs_write( ...@@ -794,14 +793,14 @@ xfs_write(
!(ioflags & IO_INVIS)) { !(ioflags & IO_INVIS)) {
xfs_rwunlock(bdp, locktype); xfs_rwunlock(bdp, locktype);
if (need_isem) if (need_i_mutex)
mutex_unlock(&inode->i_mutex); mutex_unlock(&inode->i_mutex);
error = XFS_SEND_NAMESP(xip->i_mount, DM_EVENT_NOSPACE, vp, error = XFS_SEND_NAMESP(xip->i_mount, DM_EVENT_NOSPACE, vp,
DM_RIGHT_NULL, vp, DM_RIGHT_NULL, NULL, NULL, DM_RIGHT_NULL, vp, DM_RIGHT_NULL, NULL, NULL,
0, 0, 0); /* Delay flag intentionally unused */ 0, 0, 0); /* Delay flag intentionally unused */
if (error) if (error)
goto out_nounlocks; goto out_nounlocks;
if (need_isem) if (need_i_mutex)
mutex_lock(&inode->i_mutex); mutex_lock(&inode->i_mutex);
xfs_rwlock(bdp, locktype); xfs_rwlock(bdp, locktype);
pos = xip->i_d.di_size; pos = xip->i_d.di_size;
...@@ -905,9 +904,9 @@ xfs_write( ...@@ -905,9 +904,9 @@ xfs_write(
if (error) if (error)
goto out_unlock_internal; goto out_unlock_internal;
} }
xfs_rwunlock(bdp, locktype); xfs_rwunlock(bdp, locktype);
if (need_isem) if (need_i_mutex)
mutex_unlock(&inode->i_mutex); mutex_unlock(&inode->i_mutex);
error = sync_page_range(inode, mapping, pos, ret); error = sync_page_range(inode, mapping, pos, ret);
...@@ -918,8 +917,8 @@ xfs_write( ...@@ -918,8 +917,8 @@ xfs_write(
out_unlock_internal: out_unlock_internal:
xfs_rwunlock(bdp, locktype); xfs_rwunlock(bdp, locktype);
out_unlock_isem: out_unlock_mutex:
if (need_isem) if (need_i_mutex)
mutex_unlock(&inode->i_mutex); mutex_unlock(&inode->i_mutex);
out_nounlocks: out_nounlocks:
return -error; return -error;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment