aboutsummaryrefslogtreecommitdiffstats
path: root/fs/nfs/nfs4proc.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs/nfs/nfs4proc.c')
-rw-r--r--fs/nfs/nfs4proc.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c
index ff378126ccd7..9c1da34036aa 100644
--- a/fs/nfs/nfs4proc.c
+++ b/fs/nfs/nfs4proc.c
@@ -212,6 +212,7 @@ static void update_open_stateid(struct nfs4_state *state, nfs4_stateid *stateid,
212 212
213 open_flags &= (FMODE_READ|FMODE_WRITE); 213 open_flags &= (FMODE_READ|FMODE_WRITE);
214 /* Protect against nfs4_find_state() */ 214 /* Protect against nfs4_find_state() */
215 spin_lock(&state->owner->so_lock);
215 spin_lock(&inode->i_lock); 216 spin_lock(&inode->i_lock);
216 state->state |= open_flags; 217 state->state |= open_flags;
217 /* NB! List reordering - see the reclaim code for why. */ 218 /* NB! List reordering - see the reclaim code for why. */
@@ -221,6 +222,7 @@ static void update_open_stateid(struct nfs4_state *state, nfs4_stateid *stateid,
221 state->nreaders++; 222 state->nreaders++;
222 memcpy(&state->stateid, stateid, sizeof(state->stateid)); 223 memcpy(&state->stateid, stateid, sizeof(state->stateid));
223 spin_unlock(&inode->i_lock); 224 spin_unlock(&inode->i_lock);
225 spin_unlock(&state->owner->so_lock);
224} 226}
225 227
226/* 228/*
@@ -2357,7 +2359,7 @@ static inline ssize_t nfs4_get_acl_uncached(struct inode *inode, void *buf, size
2357 return -ENOMEM; 2359 return -ENOMEM;
2358 args.acl_pages[0] = localpage; 2360 args.acl_pages[0] = localpage;
2359 args.acl_pgbase = 0; 2361 args.acl_pgbase = 0;
2360 args.acl_len = PAGE_SIZE; 2362 resp_len = args.acl_len = PAGE_SIZE;
2361 } else { 2363 } else {
2362 resp_buf = buf; 2364 resp_buf = buf;
2363 buf_to_pages(buf, buflen, args.acl_pages, &args.acl_pgbase); 2365 buf_to_pages(buf, buflen, args.acl_pages, &args.acl_pgbase);