diff options
author | Dave Jones <davej@redhat.com> | 2006-06-29 16:01:54 -0400 |
---|---|---|
committer | Dave Jones <davej@redhat.com> | 2006-06-29 16:01:54 -0400 |
commit | 55b4d6a52195a8f277ffddf755ddaff359878f41 (patch) | |
tree | 06a3183a562f8da4688f65023f7a18dcad702956 /fs/afs | |
parent | adf8a287150667feb5747f8beade62acacc17d4e (diff) | |
parent | 1f1332f727c3229eb2166a83fec5d3de6a73dce2 (diff) |
Merge ../linus
Conflicts:
drivers/char/agp/Kconfig
Diffstat (limited to 'fs/afs')
-rw-r--r-- | fs/afs/cell.c | 3 | ||||
-rw-r--r-- | fs/afs/dir.c | 4 | ||||
-rw-r--r-- | fs/afs/file.c | 2 | ||||
-rw-r--r-- | fs/afs/internal.h | 2 | ||||
-rw-r--r-- | fs/afs/kafsasyncd.c | 9 | ||||
-rw-r--r-- | fs/afs/mntpt.c | 13 | ||||
-rw-r--r-- | fs/afs/server.c | 6 | ||||
-rw-r--r-- | fs/afs/super.c | 26 | ||||
-rw-r--r-- | fs/afs/super.h | 2 | ||||
-rw-r--r-- | fs/afs/vlocation.c | 6 | ||||
-rw-r--r-- | fs/afs/vnode.c | 3 |
11 files changed, 31 insertions, 45 deletions
diff --git a/fs/afs/cell.c b/fs/afs/cell.c index 009a9ae88d..bfc1fd22d5 100644 --- a/fs/afs/cell.c +++ b/fs/afs/cell.c | |||
@@ -413,8 +413,7 @@ int afs_server_find_by_peer(const struct rxrpc_peer *peer, | |||
413 | 413 | ||
414 | /* we found it in the graveyard - resurrect it */ | 414 | /* we found it in the graveyard - resurrect it */ |
415 | found_dead_server: | 415 | found_dead_server: |
416 | list_del(&server->link); | 416 | list_move_tail(&server->link, &cell->sv_list); |
417 | list_add_tail(&server->link, &cell->sv_list); | ||
418 | afs_get_server(server); | 417 | afs_get_server(server); |
419 | afs_kafstimod_del_timer(&server->timeout); | 418 | afs_kafstimod_del_timer(&server->timeout); |
420 | spin_unlock(&cell->sv_gylock); | 419 | spin_unlock(&cell->sv_gylock); |
diff --git a/fs/afs/dir.c b/fs/afs/dir.c index a6dff6a4f2..2fc99877cb 100644 --- a/fs/afs/dir.c +++ b/fs/afs/dir.c | |||
@@ -185,9 +185,7 @@ static struct page *afs_dir_get_page(struct inode *dir, unsigned long index) | |||
185 | 185 | ||
186 | _enter("{%lu},%lu", dir->i_ino, index); | 186 | _enter("{%lu},%lu", dir->i_ino, index); |
187 | 187 | ||
188 | page = read_cache_page(dir->i_mapping,index, | 188 | page = read_mapping_page(dir->i_mapping, index, NULL); |
189 | (filler_t *) dir->i_mapping->a_ops->readpage, | ||
190 | NULL); | ||
191 | if (!IS_ERR(page)) { | 189 | if (!IS_ERR(page)) { |
192 | wait_on_page_locked(page); | 190 | wait_on_page_locked(page); |
193 | kmap(page); | 191 | kmap(page); |
diff --git a/fs/afs/file.c b/fs/afs/file.c index 7bb716887e..67d6634101 100644 --- a/fs/afs/file.c +++ b/fs/afs/file.c | |||
@@ -35,7 +35,7 @@ struct inode_operations afs_file_inode_operations = { | |||
35 | .getattr = afs_inode_getattr, | 35 | .getattr = afs_inode_getattr, |
36 | }; | 36 | }; |
37 | 37 | ||
38 | struct address_space_operations afs_fs_aops = { | 38 | const struct address_space_operations afs_fs_aops = { |
39 | .readpage = afs_file_readpage, | 39 | .readpage = afs_file_readpage, |
40 | .sync_page = block_sync_page, | 40 | .sync_page = block_sync_page, |
41 | .set_page_dirty = __set_page_dirty_nobuffers, | 41 | .set_page_dirty = __set_page_dirty_nobuffers, |
diff --git a/fs/afs/internal.h b/fs/afs/internal.h index 72febdf9a3..e88b3b65ae 100644 --- a/fs/afs/internal.h +++ b/fs/afs/internal.h | |||
@@ -69,7 +69,7 @@ extern const struct file_operations afs_dir_file_operations; | |||
69 | /* | 69 | /* |
70 | * file.c | 70 | * file.c |
71 | */ | 71 | */ |
72 | extern struct address_space_operations afs_fs_aops; | 72 | extern const struct address_space_operations afs_fs_aops; |
73 | extern struct inode_operations afs_file_inode_operations; | 73 | extern struct inode_operations afs_file_inode_operations; |
74 | 74 | ||
75 | #ifdef AFS_CACHING_SUPPORT | 75 | #ifdef AFS_CACHING_SUPPORT |
diff --git a/fs/afs/kafsasyncd.c b/fs/afs/kafsasyncd.c index 7ac07d0d47..f09a794f24 100644 --- a/fs/afs/kafsasyncd.c +++ b/fs/afs/kafsasyncd.c | |||
@@ -136,8 +136,7 @@ static int kafsasyncd(void *arg) | |||
136 | if (!list_empty(&kafsasyncd_async_attnq)) { | 136 | if (!list_empty(&kafsasyncd_async_attnq)) { |
137 | op = list_entry(kafsasyncd_async_attnq.next, | 137 | op = list_entry(kafsasyncd_async_attnq.next, |
138 | struct afs_async_op, link); | 138 | struct afs_async_op, link); |
139 | list_del(&op->link); | 139 | list_move_tail(&op->link, |
140 | list_add_tail(&op->link, | ||
141 | &kafsasyncd_async_busyq); | 140 | &kafsasyncd_async_busyq); |
142 | } | 141 | } |
143 | 142 | ||
@@ -204,8 +203,7 @@ void afs_kafsasyncd_begin_op(struct afs_async_op *op) | |||
204 | init_waitqueue_entry(&op->waiter, kafsasyncd_task); | 203 | init_waitqueue_entry(&op->waiter, kafsasyncd_task); |
205 | add_wait_queue(&op->call->waitq, &op->waiter); | 204 | add_wait_queue(&op->call->waitq, &op->waiter); |
206 | 205 | ||
207 | list_del(&op->link); | 206 | list_move_tail(&op->link, &kafsasyncd_async_busyq); |
208 | list_add_tail(&op->link, &kafsasyncd_async_busyq); | ||
209 | 207 | ||
210 | spin_unlock(&kafsasyncd_async_lock); | 208 | spin_unlock(&kafsasyncd_async_lock); |
211 | 209 | ||
@@ -223,8 +221,7 @@ void afs_kafsasyncd_attend_op(struct afs_async_op *op) | |||
223 | 221 | ||
224 | spin_lock(&kafsasyncd_async_lock); | 222 | spin_lock(&kafsasyncd_async_lock); |
225 | 223 | ||
226 | list_del(&op->link); | 224 | list_move_tail(&op->link, &kafsasyncd_async_attnq); |
227 | list_add_tail(&op->link, &kafsasyncd_async_attnq); | ||
228 | 225 | ||
229 | spin_unlock(&kafsasyncd_async_lock); | 226 | spin_unlock(&kafsasyncd_async_lock); |
230 | 227 | ||
diff --git a/fs/afs/mntpt.c b/fs/afs/mntpt.c index 4e6eeb59b8..99785a79d0 100644 --- a/fs/afs/mntpt.c +++ b/fs/afs/mntpt.c | |||
@@ -63,7 +63,6 @@ unsigned long afs_mntpt_expiry_timeout = 20; | |||
63 | int afs_mntpt_check_symlink(struct afs_vnode *vnode) | 63 | int afs_mntpt_check_symlink(struct afs_vnode *vnode) |
64 | { | 64 | { |
65 | struct page *page; | 65 | struct page *page; |
66 | filler_t *filler; | ||
67 | size_t size; | 66 | size_t size; |
68 | char *buf; | 67 | char *buf; |
69 | int ret; | 68 | int ret; |
@@ -71,10 +70,7 @@ int afs_mntpt_check_symlink(struct afs_vnode *vnode) | |||
71 | _enter("{%u,%u}", vnode->fid.vnode, vnode->fid.unique); | 70 | _enter("{%u,%u}", vnode->fid.vnode, vnode->fid.unique); |
72 | 71 | ||
73 | /* read the contents of the symlink into the pagecache */ | 72 | /* read the contents of the symlink into the pagecache */ |
74 | filler = (filler_t *) AFS_VNODE_TO_I(vnode)->i_mapping->a_ops->readpage; | 73 | page = read_mapping_page(AFS_VNODE_TO_I(vnode)->i_mapping, 0, NULL); |
75 | |||
76 | page = read_cache_page(AFS_VNODE_TO_I(vnode)->i_mapping, 0, | ||
77 | filler, NULL); | ||
78 | if (IS_ERR(page)) { | 74 | if (IS_ERR(page)) { |
79 | ret = PTR_ERR(page); | 75 | ret = PTR_ERR(page); |
80 | goto out; | 76 | goto out; |
@@ -160,7 +156,6 @@ static struct vfsmount *afs_mntpt_do_automount(struct dentry *mntpt) | |||
160 | struct page *page = NULL; | 156 | struct page *page = NULL; |
161 | size_t size; | 157 | size_t size; |
162 | char *buf, *devname = NULL, *options = NULL; | 158 | char *buf, *devname = NULL, *options = NULL; |
163 | filler_t *filler; | ||
164 | int ret; | 159 | int ret; |
165 | 160 | ||
166 | kenter("{%s}", mntpt->d_name.name); | 161 | kenter("{%s}", mntpt->d_name.name); |
@@ -182,9 +177,7 @@ static struct vfsmount *afs_mntpt_do_automount(struct dentry *mntpt) | |||
182 | goto error; | 177 | goto error; |
183 | 178 | ||
184 | /* read the contents of the AFS special symlink */ | 179 | /* read the contents of the AFS special symlink */ |
185 | filler = (filler_t *)mntpt->d_inode->i_mapping->a_ops->readpage; | 180 | page = read_mapping_page(mntpt->d_inode->i_mapping, 0, NULL); |
186 | |||
187 | page = read_cache_page(mntpt->d_inode->i_mapping, 0, filler, NULL); | ||
188 | if (IS_ERR(page)) { | 181 | if (IS_ERR(page)) { |
189 | ret = PTR_ERR(page); | 182 | ret = PTR_ERR(page); |
190 | goto error; | 183 | goto error; |
@@ -210,7 +203,7 @@ static struct vfsmount *afs_mntpt_do_automount(struct dentry *mntpt) | |||
210 | 203 | ||
211 | /* try and do the mount */ | 204 | /* try and do the mount */ |
212 | kdebug("--- attempting mount %s -o %s ---", devname, options); | 205 | kdebug("--- attempting mount %s -o %s ---", devname, options); |
213 | mnt = do_kern_mount("afs", 0, devname, options); | 206 | mnt = vfs_kern_mount(&afs_fs_type, 0, devname, options); |
214 | kdebug("--- mount result %p ---", mnt); | 207 | kdebug("--- mount result %p ---", mnt); |
215 | 208 | ||
216 | free_page((unsigned long) devname); | 209 | free_page((unsigned long) devname); |
diff --git a/fs/afs/server.c b/fs/afs/server.c index 62b093aa41..22afaae1a4 100644 --- a/fs/afs/server.c +++ b/fs/afs/server.c | |||
@@ -123,8 +123,7 @@ int afs_server_lookup(struct afs_cell *cell, const struct in_addr *addr, | |||
123 | resurrect_server: | 123 | resurrect_server: |
124 | _debug("resurrecting server"); | 124 | _debug("resurrecting server"); |
125 | 125 | ||
126 | list_del(&zombie->link); | 126 | list_move_tail(&zombie->link, &cell->sv_list); |
127 | list_add_tail(&zombie->link, &cell->sv_list); | ||
128 | afs_get_server(zombie); | 127 | afs_get_server(zombie); |
129 | afs_kafstimod_del_timer(&zombie->timeout); | 128 | afs_kafstimod_del_timer(&zombie->timeout); |
130 | spin_unlock(&cell->sv_gylock); | 129 | spin_unlock(&cell->sv_gylock); |
@@ -168,8 +167,7 @@ void afs_put_server(struct afs_server *server) | |||
168 | } | 167 | } |
169 | 168 | ||
170 | spin_lock(&cell->sv_gylock); | 169 | spin_lock(&cell->sv_gylock); |
171 | list_del(&server->link); | 170 | list_move_tail(&server->link, &cell->sv_graveyard); |
172 | list_add_tail(&server->link, &cell->sv_graveyard); | ||
173 | 171 | ||
174 | /* time out in 10 secs */ | 172 | /* time out in 10 secs */ |
175 | afs_kafstimod_add_timer(&server->timeout, 10 * HZ); | 173 | afs_kafstimod_add_timer(&server->timeout, 10 * HZ); |
diff --git a/fs/afs/super.c b/fs/afs/super.c index 53c56e7231..67d1f5c819 100644 --- a/fs/afs/super.c +++ b/fs/afs/super.c | |||
@@ -38,9 +38,9 @@ struct afs_mount_params { | |||
38 | static void afs_i_init_once(void *foo, kmem_cache_t *cachep, | 38 | static void afs_i_init_once(void *foo, kmem_cache_t *cachep, |
39 | unsigned long flags); | 39 | unsigned long flags); |
40 | 40 | ||
41 | static struct super_block *afs_get_sb(struct file_system_type *fs_type, | 41 | static int afs_get_sb(struct file_system_type *fs_type, |
42 | int flags, const char *dev_name, | 42 | int flags, const char *dev_name, |
43 | void *data); | 43 | void *data, struct vfsmount *mnt); |
44 | 44 | ||
45 | static struct inode *afs_alloc_inode(struct super_block *sb); | 45 | static struct inode *afs_alloc_inode(struct super_block *sb); |
46 | 46 | ||
@@ -48,7 +48,7 @@ static void afs_put_super(struct super_block *sb); | |||
48 | 48 | ||
49 | static void afs_destroy_inode(struct inode *inode); | 49 | static void afs_destroy_inode(struct inode *inode); |
50 | 50 | ||
51 | static struct file_system_type afs_fs_type = { | 51 | struct file_system_type afs_fs_type = { |
52 | .owner = THIS_MODULE, | 52 | .owner = THIS_MODULE, |
53 | .name = "afs", | 53 | .name = "afs", |
54 | .get_sb = afs_get_sb, | 54 | .get_sb = afs_get_sb, |
@@ -294,10 +294,11 @@ static int afs_fill_super(struct super_block *sb, void *data, int silent) | |||
294 | * get an AFS superblock | 294 | * get an AFS superblock |
295 | * - TODO: don't use get_sb_nodev(), but rather call sget() directly | 295 | * - TODO: don't use get_sb_nodev(), but rather call sget() directly |
296 | */ | 296 | */ |
297 | static struct super_block *afs_get_sb(struct file_system_type *fs_type, | 297 | static int afs_get_sb(struct file_system_type *fs_type, |
298 | int flags, | 298 | int flags, |
299 | const char *dev_name, | 299 | const char *dev_name, |
300 | void *options) | 300 | void *options, |
301 | struct vfsmount *mnt) | ||
301 | { | 302 | { |
302 | struct afs_mount_params params; | 303 | struct afs_mount_params params; |
303 | struct super_block *sb; | 304 | struct super_block *sb; |
@@ -311,7 +312,7 @@ static struct super_block *afs_get_sb(struct file_system_type *fs_type, | |||
311 | ret = afscm_start(); | 312 | ret = afscm_start(); |
312 | if (ret < 0) { | 313 | if (ret < 0) { |
313 | _leave(" = %d", ret); | 314 | _leave(" = %d", ret); |
314 | return ERR_PTR(ret); | 315 | return ret; |
315 | } | 316 | } |
316 | 317 | ||
317 | /* parse the options */ | 318 | /* parse the options */ |
@@ -348,18 +349,19 @@ static struct super_block *afs_get_sb(struct file_system_type *fs_type, | |||
348 | goto error; | 349 | goto error; |
349 | } | 350 | } |
350 | sb->s_flags |= MS_ACTIVE; | 351 | sb->s_flags |= MS_ACTIVE; |
352 | simple_set_mnt(mnt, sb); | ||
351 | 353 | ||
352 | afs_put_volume(params.volume); | 354 | afs_put_volume(params.volume); |
353 | afs_put_cell(params.default_cell); | 355 | afs_put_cell(params.default_cell); |
354 | _leave(" = %p", sb); | 356 | _leave(" = 0 [%p]", 0, sb); |
355 | return sb; | 357 | return 0; |
356 | 358 | ||
357 | error: | 359 | error: |
358 | afs_put_volume(params.volume); | 360 | afs_put_volume(params.volume); |
359 | afs_put_cell(params.default_cell); | 361 | afs_put_cell(params.default_cell); |
360 | afscm_stop(); | 362 | afscm_stop(); |
361 | _leave(" = %d", ret); | 363 | _leave(" = %d", ret); |
362 | return ERR_PTR(ret); | 364 | return ret; |
363 | } /* end afs_get_sb() */ | 365 | } /* end afs_get_sb() */ |
364 | 366 | ||
365 | /*****************************************************************************/ | 367 | /*****************************************************************************/ |
diff --git a/fs/afs/super.h b/fs/afs/super.h index ac11362f4e..32de8cc6fa 100644 --- a/fs/afs/super.h +++ b/fs/afs/super.h | |||
@@ -38,6 +38,8 @@ static inline struct afs_super_info *AFS_FS_S(struct super_block *sb) | |||
38 | return sb->s_fs_info; | 38 | return sb->s_fs_info; |
39 | } | 39 | } |
40 | 40 | ||
41 | extern struct file_system_type afs_fs_type; | ||
42 | |||
41 | #endif /* __KERNEL__ */ | 43 | #endif /* __KERNEL__ */ |
42 | 44 | ||
43 | #endif /* _LINUX_AFS_SUPER_H */ | 45 | #endif /* _LINUX_AFS_SUPER_H */ |
diff --git a/fs/afs/vlocation.c b/fs/afs/vlocation.c index eced20618e..331f730a1f 100644 --- a/fs/afs/vlocation.c +++ b/fs/afs/vlocation.c | |||
@@ -326,8 +326,7 @@ int afs_vlocation_lookup(struct afs_cell *cell, | |||
326 | /* found in the graveyard - resurrect */ | 326 | /* found in the graveyard - resurrect */ |
327 | _debug("found in graveyard"); | 327 | _debug("found in graveyard"); |
328 | atomic_inc(&vlocation->usage); | 328 | atomic_inc(&vlocation->usage); |
329 | list_del(&vlocation->link); | 329 | list_move_tail(&vlocation->link, &cell->vl_list); |
330 | list_add_tail(&vlocation->link, &cell->vl_list); | ||
331 | spin_unlock(&cell->vl_gylock); | 330 | spin_unlock(&cell->vl_gylock); |
332 | 331 | ||
333 | afs_kafstimod_del_timer(&vlocation->timeout); | 332 | afs_kafstimod_del_timer(&vlocation->timeout); |
@@ -478,8 +477,7 @@ static void __afs_put_vlocation(struct afs_vlocation *vlocation) | |||
478 | } | 477 | } |
479 | 478 | ||
480 | /* move to graveyard queue */ | 479 | /* move to graveyard queue */ |
481 | list_del(&vlocation->link); | 480 | list_move_tail(&vlocation->link,&cell->vl_graveyard); |
482 | list_add_tail(&vlocation->link,&cell->vl_graveyard); | ||
483 | 481 | ||
484 | /* remove from pending timeout queue (refcounted if actually being | 482 | /* remove from pending timeout queue (refcounted if actually being |
485 | * updated) */ | 483 | * updated) */ |
diff --git a/fs/afs/vnode.c b/fs/afs/vnode.c index 9867fef326..cf62da5d78 100644 --- a/fs/afs/vnode.c +++ b/fs/afs/vnode.c | |||
@@ -104,8 +104,7 @@ static void afs_vnode_finalise_status_update(struct afs_vnode *vnode, | |||
104 | vnode->cb_expiry * HZ); | 104 | vnode->cb_expiry * HZ); |
105 | 105 | ||
106 | spin_lock(&afs_cb_hash_lock); | 106 | spin_lock(&afs_cb_hash_lock); |
107 | list_del(&vnode->cb_hash_link); | 107 | list_move_tail(&vnode->cb_hash_link, |
108 | list_add_tail(&vnode->cb_hash_link, | ||
109 | &afs_cb_hash(server, &vnode->fid)); | 108 | &afs_cb_hash(server, &vnode->fid)); |
110 | spin_unlock(&afs_cb_hash_lock); | 109 | spin_unlock(&afs_cb_hash_lock); |
111 | 110 | ||