diff options
Diffstat (limited to 'fs/libfs.c')
-rw-r--r-- | fs/libfs.c | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/fs/libfs.c b/fs/libfs.c index 58101dff2c66..63c020e6589e 100644 --- a/fs/libfs.c +++ b/fs/libfs.c | |||
@@ -74,7 +74,7 @@ int dcache_dir_close(struct inode *inode, struct file *file) | |||
74 | 74 | ||
75 | loff_t dcache_dir_lseek(struct file *file, loff_t offset, int origin) | 75 | loff_t dcache_dir_lseek(struct file *file, loff_t offset, int origin) |
76 | { | 76 | { |
77 | down(&file->f_dentry->d_inode->i_sem); | 77 | mutex_lock(&file->f_dentry->d_inode->i_mutex); |
78 | switch (origin) { | 78 | switch (origin) { |
79 | case 1: | 79 | case 1: |
80 | offset += file->f_pos; | 80 | offset += file->f_pos; |
@@ -82,7 +82,7 @@ loff_t dcache_dir_lseek(struct file *file, loff_t offset, int origin) | |||
82 | if (offset >= 0) | 82 | if (offset >= 0) |
83 | break; | 83 | break; |
84 | default: | 84 | default: |
85 | up(&file->f_dentry->d_inode->i_sem); | 85 | mutex_unlock(&file->f_dentry->d_inode->i_mutex); |
86 | return -EINVAL; | 86 | return -EINVAL; |
87 | } | 87 | } |
88 | if (offset != file->f_pos) { | 88 | if (offset != file->f_pos) { |
@@ -93,20 +93,20 @@ loff_t dcache_dir_lseek(struct file *file, loff_t offset, int origin) | |||
93 | loff_t n = file->f_pos - 2; | 93 | loff_t n = file->f_pos - 2; |
94 | 94 | ||
95 | spin_lock(&dcache_lock); | 95 | spin_lock(&dcache_lock); |
96 | list_del(&cursor->d_child); | 96 | list_del(&cursor->d_u.d_child); |
97 | p = file->f_dentry->d_subdirs.next; | 97 | p = file->f_dentry->d_subdirs.next; |
98 | while (n && p != &file->f_dentry->d_subdirs) { | 98 | while (n && p != &file->f_dentry->d_subdirs) { |
99 | struct dentry *next; | 99 | struct dentry *next; |
100 | next = list_entry(p, struct dentry, d_child); | 100 | next = list_entry(p, struct dentry, d_u.d_child); |
101 | if (!d_unhashed(next) && next->d_inode) | 101 | if (!d_unhashed(next) && next->d_inode) |
102 | n--; | 102 | n--; |
103 | p = p->next; | 103 | p = p->next; |
104 | } | 104 | } |
105 | list_add_tail(&cursor->d_child, p); | 105 | list_add_tail(&cursor->d_u.d_child, p); |
106 | spin_unlock(&dcache_lock); | 106 | spin_unlock(&dcache_lock); |
107 | } | 107 | } |
108 | } | 108 | } |
109 | up(&file->f_dentry->d_inode->i_sem); | 109 | mutex_unlock(&file->f_dentry->d_inode->i_mutex); |
110 | return offset; | 110 | return offset; |
111 | } | 111 | } |
112 | 112 | ||
@@ -126,7 +126,7 @@ int dcache_readdir(struct file * filp, void * dirent, filldir_t filldir) | |||
126 | { | 126 | { |
127 | struct dentry *dentry = filp->f_dentry; | 127 | struct dentry *dentry = filp->f_dentry; |
128 | struct dentry *cursor = filp->private_data; | 128 | struct dentry *cursor = filp->private_data; |
129 | struct list_head *p, *q = &cursor->d_child; | 129 | struct list_head *p, *q = &cursor->d_u.d_child; |
130 | ino_t ino; | 130 | ino_t ino; |
131 | int i = filp->f_pos; | 131 | int i = filp->f_pos; |
132 | 132 | ||
@@ -153,7 +153,7 @@ int dcache_readdir(struct file * filp, void * dirent, filldir_t filldir) | |||
153 | } | 153 | } |
154 | for (p=q->next; p != &dentry->d_subdirs; p=p->next) { | 154 | for (p=q->next; p != &dentry->d_subdirs; p=p->next) { |
155 | struct dentry *next; | 155 | struct dentry *next; |
156 | next = list_entry(p, struct dentry, d_child); | 156 | next = list_entry(p, struct dentry, d_u.d_child); |
157 | if (d_unhashed(next) || !next->d_inode) | 157 | if (d_unhashed(next) || !next->d_inode) |
158 | continue; | 158 | continue; |
159 | 159 | ||
@@ -261,7 +261,7 @@ int simple_empty(struct dentry *dentry) | |||
261 | int ret = 0; | 261 | int ret = 0; |
262 | 262 | ||
263 | spin_lock(&dcache_lock); | 263 | spin_lock(&dcache_lock); |
264 | list_for_each_entry(child, &dentry->d_subdirs, d_child) | 264 | list_for_each_entry(child, &dentry->d_subdirs, d_u.d_child) |
265 | if (simple_positive(child)) | 265 | if (simple_positive(child)) |
266 | goto out; | 266 | goto out; |
267 | ret = 1; | 267 | ret = 1; |
@@ -356,7 +356,7 @@ int simple_commit_write(struct file *file, struct page *page, | |||
356 | 356 | ||
357 | /* | 357 | /* |
358 | * No need to use i_size_read() here, the i_size | 358 | * No need to use i_size_read() here, the i_size |
359 | * cannot change under us because we hold the i_sem. | 359 | * cannot change under us because we hold the i_mutex. |
360 | */ | 360 | */ |
361 | if (pos > inode->i_size) | 361 | if (pos > inode->i_size) |
362 | i_size_write(inode, pos); | 362 | i_size_write(inode, pos); |