[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
@@ -453,7 +453,7 @@ int coda_readdir(struct file *coda_file, void *dirent, filldir_t filldir)
|
||||
coda_vfs_stat.readdir++;
|
||||
|
||||
host_inode = host_file->f_dentry->d_inode;
|
||||
down(&host_inode->i_sem);
|
||||
mutex_lock(&host_inode->i_mutex);
|
||||
host_file->f_pos = coda_file->f_pos;
|
||||
|
||||
if (!host_file->f_op->readdir) {
|
||||
@@ -475,7 +475,7 @@ int coda_readdir(struct file *coda_file, void *dirent, filldir_t filldir)
|
||||
}
|
||||
out:
|
||||
coda_file->f_pos = host_file->f_pos;
|
||||
up(&host_inode->i_sem);
|
||||
mutex_unlock(&host_inode->i_mutex);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
@@ -77,14 +77,14 @@ coda_file_write(struct file *coda_file, const char __user *buf, size_t count, lo
|
||||
return -EINVAL;
|
||||
|
||||
host_inode = host_file->f_dentry->d_inode;
|
||||
down(&coda_inode->i_sem);
|
||||
mutex_lock(&coda_inode->i_mutex);
|
||||
|
||||
ret = host_file->f_op->write(host_file, buf, count, ppos);
|
||||
|
||||
coda_inode->i_size = host_inode->i_size;
|
||||
coda_inode->i_blocks = (coda_inode->i_size + 511) >> 9;
|
||||
coda_inode->i_mtime = coda_inode->i_ctime = CURRENT_TIME_SEC;
|
||||
up(&coda_inode->i_sem);
|
||||
mutex_unlock(&coda_inode->i_mutex);
|
||||
|
||||
return ret;
|
||||
}
|
||||
@@ -272,9 +272,9 @@ int coda_fsync(struct file *coda_file, struct dentry *coda_dentry, int datasync)
|
||||
if (host_file->f_op && host_file->f_op->fsync) {
|
||||
host_dentry = host_file->f_dentry;
|
||||
host_inode = host_dentry->d_inode;
|
||||
down(&host_inode->i_sem);
|
||||
mutex_lock(&host_inode->i_mutex);
|
||||
err = host_file->f_op->fsync(host_file, host_dentry, datasync);
|
||||
up(&host_inode->i_sem);
|
||||
mutex_unlock(&host_inode->i_mutex);
|
||||
}
|
||||
|
||||
if ( !err && !datasync ) {
|
||||
|
Reference in New Issue
Block a user