diff options
Diffstat (limited to 'fs/coda/file.c')
-rw-r--r-- | fs/coda/file.c | 19 |
1 files changed, 3 insertions, 16 deletions
diff --git a/fs/coda/file.c b/fs/coda/file.c index c4e395781d41..c8b50ba4366a 100644 --- a/fs/coda/file.c +++ b/fs/coda/file.c | |||
@@ -15,7 +15,6 @@ | |||
15 | #include <linux/stat.h> | 15 | #include <linux/stat.h> |
16 | #include <linux/cred.h> | 16 | #include <linux/cred.h> |
17 | #include <linux/errno.h> | 17 | #include <linux/errno.h> |
18 | #include <linux/smp_lock.h> | ||
19 | #include <linux/spinlock.h> | 18 | #include <linux/spinlock.h> |
20 | #include <linux/string.h> | 19 | #include <linux/string.h> |
21 | #include <linux/slab.h> | 20 | #include <linux/slab.h> |
@@ -144,8 +143,6 @@ int coda_open(struct inode *coda_inode, struct file *coda_file) | |||
144 | if (!cfi) | 143 | if (!cfi) |
145 | return -ENOMEM; | 144 | return -ENOMEM; |
146 | 145 | ||
147 | lock_kernel(); | ||
148 | |||
149 | error = venus_open(coda_inode->i_sb, coda_i2f(coda_inode), coda_flags, | 146 | error = venus_open(coda_inode->i_sb, coda_i2f(coda_inode), coda_flags, |
150 | &host_file); | 147 | &host_file); |
151 | if (!host_file) | 148 | if (!host_file) |
@@ -153,7 +150,6 @@ int coda_open(struct inode *coda_inode, struct file *coda_file) | |||
153 | 150 | ||
154 | if (error) { | 151 | if (error) { |
155 | kfree(cfi); | 152 | kfree(cfi); |
156 | unlock_kernel(); | ||
157 | return error; | 153 | return error; |
158 | } | 154 | } |
159 | 155 | ||
@@ -165,8 +161,6 @@ int coda_open(struct inode *coda_inode, struct file *coda_file) | |||
165 | 161 | ||
166 | BUG_ON(coda_file->private_data != NULL); | 162 | BUG_ON(coda_file->private_data != NULL); |
167 | coda_file->private_data = cfi; | 163 | coda_file->private_data = cfi; |
168 | |||
169 | unlock_kernel(); | ||
170 | return 0; | 164 | return 0; |
171 | } | 165 | } |
172 | 166 | ||
@@ -177,9 +171,7 @@ int coda_release(struct inode *coda_inode, struct file *coda_file) | |||
177 | struct coda_file_info *cfi; | 171 | struct coda_file_info *cfi; |
178 | struct coda_inode_info *cii; | 172 | struct coda_inode_info *cii; |
179 | struct inode *host_inode; | 173 | struct inode *host_inode; |
180 | int err = 0; | 174 | int err; |
181 | |||
182 | lock_kernel(); | ||
183 | 175 | ||
184 | cfi = CODA_FTOC(coda_file); | 176 | cfi = CODA_FTOC(coda_file); |
185 | BUG_ON(!cfi || cfi->cfi_magic != CODA_MAGIC); | 177 | BUG_ON(!cfi || cfi->cfi_magic != CODA_MAGIC); |
@@ -203,8 +195,6 @@ int coda_release(struct inode *coda_inode, struct file *coda_file) | |||
203 | kfree(coda_file->private_data); | 195 | kfree(coda_file->private_data); |
204 | coda_file->private_data = NULL; | 196 | coda_file->private_data = NULL; |
205 | 197 | ||
206 | unlock_kernel(); | ||
207 | |||
208 | /* VFS fput ignores the return value from file_operations->release, so | 198 | /* VFS fput ignores the return value from file_operations->release, so |
209 | * there is no use returning an error here */ | 199 | * there is no use returning an error here */ |
210 | return 0; | 200 | return 0; |
@@ -215,7 +205,7 @@ int coda_fsync(struct file *coda_file, int datasync) | |||
215 | struct file *host_file; | 205 | struct file *host_file; |
216 | struct inode *coda_inode = coda_file->f_path.dentry->d_inode; | 206 | struct inode *coda_inode = coda_file->f_path.dentry->d_inode; |
217 | struct coda_file_info *cfi; | 207 | struct coda_file_info *cfi; |
218 | int err = 0; | 208 | int err; |
219 | 209 | ||
220 | if (!(S_ISREG(coda_inode->i_mode) || S_ISDIR(coda_inode->i_mode) || | 210 | if (!(S_ISREG(coda_inode->i_mode) || S_ISDIR(coda_inode->i_mode) || |
221 | S_ISLNK(coda_inode->i_mode))) | 211 | S_ISLNK(coda_inode->i_mode))) |
@@ -226,11 +216,8 @@ int coda_fsync(struct file *coda_file, int datasync) | |||
226 | host_file = cfi->cfi_container; | 216 | host_file = cfi->cfi_container; |
227 | 217 | ||
228 | err = vfs_fsync(host_file, datasync); | 218 | err = vfs_fsync(host_file, datasync); |
229 | if ( !err && !datasync ) { | 219 | if (!err && !datasync) |
230 | lock_kernel(); | ||
231 | err = venus_fsync(coda_inode->i_sb, coda_i2f(coda_inode)); | 220 | err = venus_fsync(coda_inode->i_sb, coda_i2f(coda_inode)); |
232 | unlock_kernel(); | ||
233 | } | ||
234 | 221 | ||
235 | return err; | 222 | return err; |
236 | } | 223 | } |