diff options
Diffstat (limited to 'fs/nfs/nfs4state.c')
-rw-r--r-- | fs/nfs/nfs4state.c | 9 |
1 files changed, 1 insertions, 8 deletions
diff --git a/fs/nfs/nfs4state.c b/fs/nfs/nfs4state.c index 86c08c165ce7..bb3574361958 100644 --- a/fs/nfs/nfs4state.c +++ b/fs/nfs/nfs4state.c | |||
@@ -481,17 +481,15 @@ void nfs4_put_open_state(struct nfs4_state *state) | |||
481 | } | 481 | } |
482 | 482 | ||
483 | /* | 483 | /* |
484 | * Beware! Caller must be holding no references to clp->cl_sem! | 484 | * Close the current file. |
485 | */ | 485 | */ |
486 | void nfs4_close_state(struct nfs4_state *state, mode_t mode) | 486 | void nfs4_close_state(struct nfs4_state *state, mode_t mode) |
487 | { | 487 | { |
488 | struct inode *inode = state->inode; | 488 | struct inode *inode = state->inode; |
489 | struct nfs4_state_owner *owner = state->owner; | 489 | struct nfs4_state_owner *owner = state->owner; |
490 | struct nfs4_client *clp = owner->so_client; | ||
491 | int newstate; | 490 | int newstate; |
492 | 491 | ||
493 | atomic_inc(&owner->so_count); | 492 | atomic_inc(&owner->so_count); |
494 | down_read(&clp->cl_sem); | ||
495 | /* Protect against nfs4_find_state() */ | 493 | /* Protect against nfs4_find_state() */ |
496 | spin_lock(&inode->i_lock); | 494 | spin_lock(&inode->i_lock); |
497 | if (mode & FMODE_READ) | 495 | if (mode & FMODE_READ) |
@@ -523,7 +521,6 @@ void nfs4_close_state(struct nfs4_state *state, mode_t mode) | |||
523 | out: | 521 | out: |
524 | nfs4_put_open_state(state); | 522 | nfs4_put_open_state(state); |
525 | nfs4_put_state_owner(owner); | 523 | nfs4_put_state_owner(owner); |
526 | up_read(&clp->cl_sem); | ||
527 | } | 524 | } |
528 | 525 | ||
529 | /* | 526 | /* |
@@ -704,8 +701,6 @@ void nfs_free_seqid(struct nfs_seqid *seqid) | |||
704 | } | 701 | } |
705 | 702 | ||
706 | /* | 703 | /* |
707 | * Called with clp->cl_sem held. | ||
708 | * | ||
709 | * Increment the seqid if the OPEN/OPEN_DOWNGRADE/CLOSE succeeded, or | 704 | * Increment the seqid if the OPEN/OPEN_DOWNGRADE/CLOSE succeeded, or |
710 | * failed with a seqid incrementing error - | 705 | * failed with a seqid incrementing error - |
711 | * see comments nfs_fs.h:seqid_mutating_error() | 706 | * see comments nfs_fs.h:seqid_mutating_error() |
@@ -743,8 +738,6 @@ void nfs_increment_open_seqid(int status, struct nfs_seqid *seqid) | |||
743 | } | 738 | } |
744 | 739 | ||
745 | /* | 740 | /* |
746 | * Called with clp->cl_sem held. | ||
747 | * | ||
748 | * Increment the seqid if the LOCK/LOCKU succeeded, or | 741 | * Increment the seqid if the LOCK/LOCKU succeeded, or |
749 | * failed with a seqid incrementing error - | 742 | * failed with a seqid incrementing error - |
750 | * see comments nfs_fs.h:seqid_mutating_error() | 743 | * see comments nfs_fs.h:seqid_mutating_error() |