[PATCH] mutex subsystem, semaphore to mutex: VFS, ->i_sem
This patch converts the inode semaphore to a mutex. I have tested it on XFS and compiled as much as one can consider on an ia64. Anyway your luck with it might be different. Modified-by: Ingo Molnar <mingo@elte.hu> (finished the conversion) Signed-off-by: Jes Sorensen <jes@sgi.com> Signed-off-by: Ingo Molnar <mingo@elte.hu>
This commit is contained in:

committed by
Ingo Molnar

parent
794ee1baee
commit
1b1dcc1b57
@@ -74,7 +74,7 @@ int dcache_dir_close(struct inode *inode, struct file *file)
|
||||
|
||||
loff_t dcache_dir_lseek(struct file *file, loff_t offset, int origin)
|
||||
{
|
||||
down(&file->f_dentry->d_inode->i_sem);
|
||||
mutex_lock(&file->f_dentry->d_inode->i_mutex);
|
||||
switch (origin) {
|
||||
case 1:
|
||||
offset += file->f_pos;
|
||||
@@ -82,7 +82,7 @@ loff_t dcache_dir_lseek(struct file *file, loff_t offset, int origin)
|
||||
if (offset >= 0)
|
||||
break;
|
||||
default:
|
||||
up(&file->f_dentry->d_inode->i_sem);
|
||||
mutex_unlock(&file->f_dentry->d_inode->i_mutex);
|
||||
return -EINVAL;
|
||||
}
|
||||
if (offset != file->f_pos) {
|
||||
@@ -106,7 +106,7 @@ loff_t dcache_dir_lseek(struct file *file, loff_t offset, int origin)
|
||||
spin_unlock(&dcache_lock);
|
||||
}
|
||||
}
|
||||
up(&file->f_dentry->d_inode->i_sem);
|
||||
mutex_unlock(&file->f_dentry->d_inode->i_mutex);
|
||||
return offset;
|
||||
}
|
||||
|
||||
@@ -356,7 +356,7 @@ int simple_commit_write(struct file *file, struct page *page,
|
||||
|
||||
/*
|
||||
* No need to use i_size_read() here, the i_size
|
||||
* cannot change under us because we hold the i_sem.
|
||||
* cannot change under us because we hold the i_mutex.
|
||||
*/
|
||||
if (pos > inode->i_size)
|
||||
i_size_write(inode, pos);
|
||||
|
Reference in New Issue
Block a user