diff options
Diffstat (limited to 'fs/lockd/svclock.c')
-rw-r--r-- | fs/lockd/svclock.c | 22 |
1 files changed, 11 insertions, 11 deletions
diff --git a/fs/lockd/svclock.c b/fs/lockd/svclock.c index 3d2b8a831be5..814c6064c9e0 100644 --- a/fs/lockd/svclock.c +++ b/fs/lockd/svclock.c | |||
@@ -254,9 +254,9 @@ static void nlmsvc_free_block(struct kref *kref) | |||
254 | dprintk("lockd: freeing block %p...\n", block); | 254 | dprintk("lockd: freeing block %p...\n", block); |
255 | 255 | ||
256 | /* Remove block from file's list of blocks */ | 256 | /* Remove block from file's list of blocks */ |
257 | down(&file->f_sema); | 257 | mutex_lock(&file->f_mutex); |
258 | list_del_init(&block->b_flist); | 258 | list_del_init(&block->b_flist); |
259 | up(&file->f_sema); | 259 | mutex_unlock(&file->f_mutex); |
260 | 260 | ||
261 | nlmsvc_freegrantargs(block->b_call); | 261 | nlmsvc_freegrantargs(block->b_call); |
262 | nlm_release_call(block->b_call); | 262 | nlm_release_call(block->b_call); |
@@ -281,7 +281,7 @@ void nlmsvc_traverse_blocks(struct nlm_host *host, | |||
281 | struct nlm_block *block, *next; | 281 | struct nlm_block *block, *next; |
282 | 282 | ||
283 | restart: | 283 | restart: |
284 | down(&file->f_sema); | 284 | mutex_lock(&file->f_mutex); |
285 | list_for_each_entry_safe(block, next, &file->f_blocks, b_flist) { | 285 | list_for_each_entry_safe(block, next, &file->f_blocks, b_flist) { |
286 | if (!match(block->b_host, host)) | 286 | if (!match(block->b_host, host)) |
287 | continue; | 287 | continue; |
@@ -290,12 +290,12 @@ restart: | |||
290 | if (list_empty(&block->b_list)) | 290 | if (list_empty(&block->b_list)) |
291 | continue; | 291 | continue; |
292 | kref_get(&block->b_count); | 292 | kref_get(&block->b_count); |
293 | up(&file->f_sema); | 293 | mutex_unlock(&file->f_mutex); |
294 | nlmsvc_unlink_block(block); | 294 | nlmsvc_unlink_block(block); |
295 | nlmsvc_release_block(block); | 295 | nlmsvc_release_block(block); |
296 | goto restart; | 296 | goto restart; |
297 | } | 297 | } |
298 | up(&file->f_sema); | 298 | mutex_unlock(&file->f_mutex); |
299 | } | 299 | } |
300 | 300 | ||
301 | /* | 301 | /* |
@@ -354,7 +354,7 @@ nlmsvc_lock(struct svc_rqst *rqstp, struct nlm_file *file, | |||
354 | lock->fl.fl_flags &= ~FL_SLEEP; | 354 | lock->fl.fl_flags &= ~FL_SLEEP; |
355 | again: | 355 | again: |
356 | /* Lock file against concurrent access */ | 356 | /* Lock file against concurrent access */ |
357 | down(&file->f_sema); | 357 | mutex_lock(&file->f_mutex); |
358 | /* Get existing block (in case client is busy-waiting) */ | 358 | /* Get existing block (in case client is busy-waiting) */ |
359 | block = nlmsvc_lookup_block(file, lock); | 359 | block = nlmsvc_lookup_block(file, lock); |
360 | if (block == NULL) { | 360 | if (block == NULL) { |
@@ -392,10 +392,10 @@ again: | |||
392 | 392 | ||
393 | /* If we don't have a block, create and initialize it. Then | 393 | /* If we don't have a block, create and initialize it. Then |
394 | * retry because we may have slept in kmalloc. */ | 394 | * retry because we may have slept in kmalloc. */ |
395 | /* We have to release f_sema as nlmsvc_create_block may try to | 395 | /* We have to release f_mutex as nlmsvc_create_block may try to |
396 | * to claim it while doing host garbage collection */ | 396 | * to claim it while doing host garbage collection */ |
397 | if (newblock == NULL) { | 397 | if (newblock == NULL) { |
398 | up(&file->f_sema); | 398 | mutex_unlock(&file->f_mutex); |
399 | dprintk("lockd: blocking on this lock (allocating).\n"); | 399 | dprintk("lockd: blocking on this lock (allocating).\n"); |
400 | if (!(newblock = nlmsvc_create_block(rqstp, file, lock, cookie))) | 400 | if (!(newblock = nlmsvc_create_block(rqstp, file, lock, cookie))) |
401 | return nlm_lck_denied_nolocks; | 401 | return nlm_lck_denied_nolocks; |
@@ -405,7 +405,7 @@ again: | |||
405 | /* Append to list of blocked */ | 405 | /* Append to list of blocked */ |
406 | nlmsvc_insert_block(newblock, NLM_NEVER); | 406 | nlmsvc_insert_block(newblock, NLM_NEVER); |
407 | out: | 407 | out: |
408 | up(&file->f_sema); | 408 | mutex_unlock(&file->f_mutex); |
409 | nlmsvc_release_block(newblock); | 409 | nlmsvc_release_block(newblock); |
410 | nlmsvc_release_block(block); | 410 | nlmsvc_release_block(block); |
411 | dprintk("lockd: nlmsvc_lock returned %u\n", ret); | 411 | dprintk("lockd: nlmsvc_lock returned %u\n", ret); |
@@ -489,9 +489,9 @@ nlmsvc_cancel_blocked(struct nlm_file *file, struct nlm_lock *lock) | |||
489 | (long long)lock->fl.fl_start, | 489 | (long long)lock->fl.fl_start, |
490 | (long long)lock->fl.fl_end); | 490 | (long long)lock->fl.fl_end); |
491 | 491 | ||
492 | down(&file->f_sema); | 492 | mutex_lock(&file->f_mutex); |
493 | block = nlmsvc_lookup_block(file, lock); | 493 | block = nlmsvc_lookup_block(file, lock); |
494 | up(&file->f_sema); | 494 | mutex_unlock(&file->f_mutex); |
495 | if (block != NULL) { | 495 | if (block != NULL) { |
496 | status = nlmsvc_unlink_block(block); | 496 | status = nlmsvc_unlink_block(block); |
497 | nlmsvc_release_block(block); | 497 | nlmsvc_release_block(block); |