diff options
Diffstat (limited to 'fs/nfs/delegation.c')
| -rw-r--r-- | fs/nfs/delegation.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/fs/nfs/delegation.c b/fs/nfs/delegation.c index b9c3c43cea1d..232a7eead33a 100644 --- a/fs/nfs/delegation.c +++ b/fs/nfs/delegation.c | |||
| @@ -71,20 +71,20 @@ static int nfs_delegation_claim_locks(struct nfs_open_context *ctx, struct nfs4_ | |||
| 71 | if (inode->i_flock == NULL) | 71 | if (inode->i_flock == NULL) |
| 72 | goto out; | 72 | goto out; |
| 73 | 73 | ||
| 74 | /* Protect inode->i_flock using the BKL */ | 74 | /* Protect inode->i_flock using the file locks lock */ |
| 75 | lock_kernel(); | 75 | lock_flocks(); |
| 76 | for (fl = inode->i_flock; fl != NULL; fl = fl->fl_next) { | 76 | for (fl = inode->i_flock; fl != NULL; fl = fl->fl_next) { |
| 77 | if (!(fl->fl_flags & (FL_POSIX|FL_FLOCK))) | 77 | if (!(fl->fl_flags & (FL_POSIX|FL_FLOCK))) |
| 78 | continue; | 78 | continue; |
| 79 | if (nfs_file_open_context(fl->fl_file) != ctx) | 79 | if (nfs_file_open_context(fl->fl_file) != ctx) |
| 80 | continue; | 80 | continue; |
| 81 | unlock_kernel(); | 81 | unlock_flocks(); |
| 82 | status = nfs4_lock_delegation_recall(state, fl); | 82 | status = nfs4_lock_delegation_recall(state, fl); |
| 83 | if (status < 0) | 83 | if (status < 0) |
| 84 | goto out; | 84 | goto out; |
| 85 | lock_kernel(); | 85 | lock_flocks(); |
| 86 | } | 86 | } |
| 87 | unlock_kernel(); | 87 | unlock_flocks(); |
| 88 | out: | 88 | out: |
| 89 | return status; | 89 | return status; |
| 90 | } | 90 | } |
