diff options
Diffstat (limited to 'fs/afs/vnode.c')
-rw-r--r-- | fs/afs/vnode.c | 36 |
1 files changed, 12 insertions, 24 deletions
diff --git a/fs/afs/vnode.c b/fs/afs/vnode.c index cf62da5d7825..4ab1ed710286 100644 --- a/fs/afs/vnode.c +++ b/fs/afs/vnode.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* vnode.c: AFS vnode management | 1 | /* AFS vnode management |
2 | * | 2 | * |
3 | * Copyright (C) 2002 Red Hat, Inc. All Rights Reserved. | 3 | * Copyright (C) 2002 Red Hat, Inc. All Rights Reserved. |
4 | * Written by David Howells (dhowells@redhat.com) | 4 | * Written by David Howells (dhowells@redhat.com) |
@@ -43,7 +43,6 @@ struct cachefs_index_def afs_vnode_cache_index_def = { | |||
43 | }; | 43 | }; |
44 | #endif | 44 | #endif |
45 | 45 | ||
46 | /*****************************************************************************/ | ||
47 | /* | 46 | /* |
48 | * handle a callback timing out | 47 | * handle a callback timing out |
49 | * TODO: retain a ref to vnode struct for an outstanding callback timeout | 48 | * TODO: retain a ref to vnode struct for an outstanding callback timeout |
@@ -78,9 +77,8 @@ static void afs_vnode_cb_timed_out(struct afs_timer *timer) | |||
78 | afs_put_server(oldserver); | 77 | afs_put_server(oldserver); |
79 | 78 | ||
80 | _leave(""); | 79 | _leave(""); |
81 | } /* end afs_vnode_cb_timed_out() */ | 80 | } |
82 | 81 | ||
83 | /*****************************************************************************/ | ||
84 | /* | 82 | /* |
85 | * finish off updating the recorded status of a file | 83 | * finish off updating the recorded status of a file |
86 | * - starts callback expiry timer | 84 | * - starts callback expiry timer |
@@ -105,7 +103,7 @@ static void afs_vnode_finalise_status_update(struct afs_vnode *vnode, | |||
105 | 103 | ||
106 | spin_lock(&afs_cb_hash_lock); | 104 | spin_lock(&afs_cb_hash_lock); |
107 | list_move_tail(&vnode->cb_hash_link, | 105 | list_move_tail(&vnode->cb_hash_link, |
108 | &afs_cb_hash(server, &vnode->fid)); | 106 | &afs_cb_hash(server, &vnode->fid)); |
109 | spin_unlock(&afs_cb_hash_lock); | 107 | spin_unlock(&afs_cb_hash_lock); |
110 | 108 | ||
111 | /* swap ref to old callback server with that for new callback | 109 | /* swap ref to old callback server with that for new callback |
@@ -122,13 +120,11 @@ static void afs_vnode_finalise_status_update(struct afs_vnode *vnode, | |||
122 | spin_lock(&server->cb_lock); | 120 | spin_lock(&server->cb_lock); |
123 | list_add_tail(&vnode->cb_link, &server->cb_promises); | 121 | list_add_tail(&vnode->cb_link, &server->cb_promises); |
124 | spin_unlock(&server->cb_lock); | 122 | spin_unlock(&server->cb_lock); |
125 | } | 123 | } else { |
126 | else { | ||
127 | /* same server */ | 124 | /* same server */ |
128 | oldserver = NULL; | 125 | oldserver = NULL; |
129 | } | 126 | } |
130 | } | 127 | } else if (ret == -ENOENT) { |
131 | else if (ret == -ENOENT) { | ||
132 | /* the file was deleted - clear the callback timeout */ | 128 | /* the file was deleted - clear the callback timeout */ |
133 | oldserver = xchg(&vnode->cb_server, NULL); | 129 | oldserver = xchg(&vnode->cb_server, NULL); |
134 | afs_kafstimod_del_timer(&vnode->cb_timeout); | 130 | afs_kafstimod_del_timer(&vnode->cb_timeout); |
@@ -146,10 +142,8 @@ static void afs_vnode_finalise_status_update(struct afs_vnode *vnode, | |||
146 | afs_put_server(oldserver); | 142 | afs_put_server(oldserver); |
147 | 143 | ||
148 | _leave(""); | 144 | _leave(""); |
145 | } | ||
149 | 146 | ||
150 | } /* end afs_vnode_finalise_status_update() */ | ||
151 | |||
152 | /*****************************************************************************/ | ||
153 | /* | 147 | /* |
154 | * fetch file status from the volume | 148 | * fetch file status from the volume |
155 | * - don't issue a fetch if: | 149 | * - don't issue a fetch if: |
@@ -222,7 +216,7 @@ int afs_vnode_fetch_status(struct afs_vnode *vnode) | |||
222 | return vnode->flags & AFS_VNODE_DELETED ? -ENOENT : 0; | 216 | return vnode->flags & AFS_VNODE_DELETED ? -ENOENT : 0; |
223 | } | 217 | } |
224 | 218 | ||
225 | get_anyway: | 219 | get_anyway: |
226 | /* okay... we're going to have to initiate the op */ | 220 | /* okay... we're going to have to initiate the op */ |
227 | vnode->update_cnt++; | 221 | vnode->update_cnt++; |
228 | 222 | ||
@@ -247,9 +241,8 @@ int afs_vnode_fetch_status(struct afs_vnode *vnode) | |||
247 | 241 | ||
248 | _leave(" = %d", ret); | 242 | _leave(" = %d", ret); |
249 | return ret; | 243 | return ret; |
250 | } /* end afs_vnode_fetch_status() */ | 244 | } |
251 | 245 | ||
252 | /*****************************************************************************/ | ||
253 | /* | 246 | /* |
254 | * fetch file data from the volume | 247 | * fetch file data from the volume |
255 | * - TODO implement caching and server failover | 248 | * - TODO implement caching and server failover |
@@ -290,10 +283,8 @@ int afs_vnode_fetch_data(struct afs_vnode *vnode, | |||
290 | 283 | ||
291 | _leave(" = %d", ret); | 284 | _leave(" = %d", ret); |
292 | return ret; | 285 | return ret; |
286 | } | ||
293 | 287 | ||
294 | } /* end afs_vnode_fetch_data() */ | ||
295 | |||
296 | /*****************************************************************************/ | ||
297 | /* | 288 | /* |
298 | * break any outstanding callback on a vnode | 289 | * break any outstanding callback on a vnode |
299 | * - only relevent to server that issued it | 290 | * - only relevent to server that issued it |
@@ -337,9 +328,8 @@ int afs_vnode_give_up_callback(struct afs_vnode *vnode) | |||
337 | 328 | ||
338 | _leave(" = %d", ret); | 329 | _leave(" = %d", ret); |
339 | return ret; | 330 | return ret; |
340 | } /* end afs_vnode_give_up_callback() */ | 331 | } |
341 | 332 | ||
342 | /*****************************************************************************/ | ||
343 | /* | 333 | /* |
344 | * match a vnode record stored in the cache | 334 | * match a vnode record stored in the cache |
345 | */ | 335 | */ |
@@ -371,10 +361,9 @@ static cachefs_match_val_t afs_vnode_cache_match(void *target, | |||
371 | 361 | ||
372 | _leave(" = SUCCESS"); | 362 | _leave(" = SUCCESS"); |
373 | return CACHEFS_MATCH_SUCCESS; | 363 | return CACHEFS_MATCH_SUCCESS; |
374 | } /* end afs_vnode_cache_match() */ | 364 | } |
375 | #endif | 365 | #endif |
376 | 366 | ||
377 | /*****************************************************************************/ | ||
378 | /* | 367 | /* |
379 | * update a vnode record stored in the cache | 368 | * update a vnode record stored in the cache |
380 | */ | 369 | */ |
@@ -389,6 +378,5 @@ static void afs_vnode_cache_update(void *source, void *entry) | |||
389 | cvnode->vnode_id = vnode->fid.vnode; | 378 | cvnode->vnode_id = vnode->fid.vnode; |
390 | cvnode->vnode_unique = vnode->fid.unique; | 379 | cvnode->vnode_unique = vnode->fid.unique; |
391 | cvnode->data_version = vnode->status.version; | 380 | cvnode->data_version = vnode->status.version; |
392 | 381 | } | |
393 | } /* end afs_vnode_cache_update() */ | ||
394 | #endif | 382 | #endif |