diff options
Diffstat (limited to 'fs')
-rw-r--r-- | fs/sysv/dir.c | 5 | ||||
-rw-r--r-- | fs/sysv/inode.c | 11 |
2 files changed, 1 insertions, 15 deletions
diff --git a/fs/sysv/dir.c b/fs/sysv/dir.c index c7798079e644..4e50286a4cc3 100644 --- a/fs/sysv/dir.c +++ b/fs/sysv/dir.c | |||
@@ -15,13 +15,13 @@ | |||
15 | 15 | ||
16 | #include <linux/pagemap.h> | 16 | #include <linux/pagemap.h> |
17 | #include <linux/highmem.h> | 17 | #include <linux/highmem.h> |
18 | #include <linux/smp_lock.h> | ||
19 | #include <linux/swap.h> | 18 | #include <linux/swap.h> |
20 | #include "sysv.h" | 19 | #include "sysv.h" |
21 | 20 | ||
22 | static int sysv_readdir(struct file *, void *, filldir_t); | 21 | static int sysv_readdir(struct file *, void *, filldir_t); |
23 | 22 | ||
24 | const struct file_operations sysv_dir_operations = { | 23 | const struct file_operations sysv_dir_operations = { |
24 | .llseek = generic_file_llseek, | ||
25 | .read = generic_read_dir, | 25 | .read = generic_read_dir, |
26 | .readdir = sysv_readdir, | 26 | .readdir = sysv_readdir, |
27 | .fsync = simple_fsync, | 27 | .fsync = simple_fsync, |
@@ -74,8 +74,6 @@ static int sysv_readdir(struct file * filp, void * dirent, filldir_t filldir) | |||
74 | unsigned long n = pos >> PAGE_CACHE_SHIFT; | 74 | unsigned long n = pos >> PAGE_CACHE_SHIFT; |
75 | unsigned long npages = dir_pages(inode); | 75 | unsigned long npages = dir_pages(inode); |
76 | 76 | ||
77 | lock_kernel(); | ||
78 | |||
79 | pos = (pos + SYSV_DIRSIZE-1) & ~(SYSV_DIRSIZE-1); | 77 | pos = (pos + SYSV_DIRSIZE-1) & ~(SYSV_DIRSIZE-1); |
80 | if (pos >= inode->i_size) | 78 | if (pos >= inode->i_size) |
81 | goto done; | 79 | goto done; |
@@ -113,7 +111,6 @@ static int sysv_readdir(struct file * filp, void * dirent, filldir_t filldir) | |||
113 | 111 | ||
114 | done: | 112 | done: |
115 | filp->f_pos = ((loff_t)n << PAGE_CACHE_SHIFT) | offset; | 113 | filp->f_pos = ((loff_t)n << PAGE_CACHE_SHIFT) | offset; |
116 | unlock_kernel(); | ||
117 | return 0; | 114 | return 0; |
118 | } | 115 | } |
119 | 116 | ||
diff --git a/fs/sysv/inode.c b/fs/sysv/inode.c index 479923456a54..9824743832a7 100644 --- a/fs/sysv/inode.c +++ b/fs/sysv/inode.c | |||
@@ -21,7 +21,6 @@ | |||
21 | * the superblock. | 21 | * the superblock. |
22 | */ | 22 | */ |
23 | 23 | ||
24 | #include <linux/smp_lock.h> | ||
25 | #include <linux/highuid.h> | 24 | #include <linux/highuid.h> |
26 | #include <linux/slab.h> | 25 | #include <linux/slab.h> |
27 | #include <linux/init.h> | 26 | #include <linux/init.h> |
@@ -37,7 +36,6 @@ static int sysv_sync_fs(struct super_block *sb, int wait) | |||
37 | unsigned long time = get_seconds(), old_time; | 36 | unsigned long time = get_seconds(), old_time; |
38 | 37 | ||
39 | lock_super(sb); | 38 | lock_super(sb); |
40 | lock_kernel(); | ||
41 | 39 | ||
42 | /* | 40 | /* |
43 | * If we are going to write out the super block, | 41 | * If we are going to write out the super block, |
@@ -52,7 +50,6 @@ static int sysv_sync_fs(struct super_block *sb, int wait) | |||
52 | mark_buffer_dirty(sbi->s_bh2); | 50 | mark_buffer_dirty(sbi->s_bh2); |
53 | } | 51 | } |
54 | 52 | ||
55 | unlock_kernel(); | ||
56 | unlock_super(sb); | 53 | unlock_super(sb); |
57 | 54 | ||
58 | return 0; | 55 | return 0; |
@@ -82,8 +79,6 @@ static void sysv_put_super(struct super_block *sb) | |||
82 | { | 79 | { |
83 | struct sysv_sb_info *sbi = SYSV_SB(sb); | 80 | struct sysv_sb_info *sbi = SYSV_SB(sb); |
84 | 81 | ||
85 | lock_kernel(); | ||
86 | |||
87 | if (sb->s_dirt) | 82 | if (sb->s_dirt) |
88 | sysv_write_super(sb); | 83 | sysv_write_super(sb); |
89 | 84 | ||
@@ -99,8 +94,6 @@ static void sysv_put_super(struct super_block *sb) | |||
99 | brelse(sbi->s_bh2); | 94 | brelse(sbi->s_bh2); |
100 | 95 | ||
101 | kfree(sbi); | 96 | kfree(sbi); |
102 | |||
103 | unlock_kernel(); | ||
104 | } | 97 | } |
105 | 98 | ||
106 | static int sysv_statfs(struct dentry *dentry, struct kstatfs *buf) | 99 | static int sysv_statfs(struct dentry *dentry, struct kstatfs *buf) |
@@ -275,7 +268,6 @@ int sysv_write_inode(struct inode *inode, int wait) | |||
275 | return -EIO; | 268 | return -EIO; |
276 | } | 269 | } |
277 | 270 | ||
278 | lock_kernel(); | ||
279 | raw_inode->i_mode = cpu_to_fs16(sbi, inode->i_mode); | 271 | raw_inode->i_mode = cpu_to_fs16(sbi, inode->i_mode); |
280 | raw_inode->i_uid = cpu_to_fs16(sbi, fs_high2lowuid(inode->i_uid)); | 272 | raw_inode->i_uid = cpu_to_fs16(sbi, fs_high2lowuid(inode->i_uid)); |
281 | raw_inode->i_gid = cpu_to_fs16(sbi, fs_high2lowgid(inode->i_gid)); | 273 | raw_inode->i_gid = cpu_to_fs16(sbi, fs_high2lowgid(inode->i_gid)); |
@@ -291,7 +283,6 @@ int sysv_write_inode(struct inode *inode, int wait) | |||
291 | for (block = 0; block < 10+1+1+1; block++) | 283 | for (block = 0; block < 10+1+1+1; block++) |
292 | write3byte(sbi, (u8 *)&si->i_data[block], | 284 | write3byte(sbi, (u8 *)&si->i_data[block], |
293 | &raw_inode->i_data[3*block]); | 285 | &raw_inode->i_data[3*block]); |
294 | unlock_kernel(); | ||
295 | mark_buffer_dirty(bh); | 286 | mark_buffer_dirty(bh); |
296 | if (wait) { | 287 | if (wait) { |
297 | sync_dirty_buffer(bh); | 288 | sync_dirty_buffer(bh); |
@@ -315,9 +306,7 @@ static void sysv_delete_inode(struct inode *inode) | |||
315 | truncate_inode_pages(&inode->i_data, 0); | 306 | truncate_inode_pages(&inode->i_data, 0); |
316 | inode->i_size = 0; | 307 | inode->i_size = 0; |
317 | sysv_truncate(inode); | 308 | sysv_truncate(inode); |
318 | lock_kernel(); | ||
319 | sysv_free_inode(inode); | 309 | sysv_free_inode(inode); |
320 | unlock_kernel(); | ||
321 | } | 310 | } |
322 | 311 | ||
323 | static struct kmem_cache *sysv_inode_cachep; | 312 | static struct kmem_cache *sysv_inode_cachep; |