diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2015-12-22 18:52:32 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2015-12-22 18:52:32 -0500 |
commit | 0bee6ec80b92d853d6cad3c35fb5f1dd2d88b8f8 (patch) | |
tree | a005ee8206661536d15ed1ebd21edafae5521541 | |
parent | e73a31778a98cfbfd433911491d11a2f68fad073 (diff) | |
parent | be20aa00c67102aaa54599518c086a2338b19f4c (diff) |
Merge tag 'nfsd-4.4-1' of git://linux-nfs.org/~bfields/linux
Pull nfsd fix from Bruce Fields:
"Just one fix for a NFSv4 callback bug introduced in 4.4"
* tag 'nfsd-4.4-1' of git://linux-nfs.org/~bfields/linux:
nfsd: don't hold ls_mutex across a layout recall
-rw-r--r-- | fs/nfsd/nfs4layouts.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/fs/nfsd/nfs4layouts.c b/fs/nfsd/nfs4layouts.c index 9ffef06b30d5..c9d6c715c0fb 100644 --- a/fs/nfsd/nfs4layouts.c +++ b/fs/nfsd/nfs4layouts.c | |||
@@ -616,6 +616,7 @@ nfsd4_cb_layout_prepare(struct nfsd4_callback *cb) | |||
616 | 616 | ||
617 | mutex_lock(&ls->ls_mutex); | 617 | mutex_lock(&ls->ls_mutex); |
618 | nfs4_inc_and_copy_stateid(&ls->ls_recall_sid, &ls->ls_stid); | 618 | nfs4_inc_and_copy_stateid(&ls->ls_recall_sid, &ls->ls_stid); |
619 | mutex_unlock(&ls->ls_mutex); | ||
619 | } | 620 | } |
620 | 621 | ||
621 | static int | 622 | static int |
@@ -659,7 +660,6 @@ nfsd4_cb_layout_release(struct nfsd4_callback *cb) | |||
659 | 660 | ||
660 | trace_layout_recall_release(&ls->ls_stid.sc_stateid); | 661 | trace_layout_recall_release(&ls->ls_stid.sc_stateid); |
661 | 662 | ||
662 | mutex_unlock(&ls->ls_mutex); | ||
663 | nfsd4_return_all_layouts(ls, &reaplist); | 663 | nfsd4_return_all_layouts(ls, &reaplist); |
664 | nfsd4_free_layouts(&reaplist); | 664 | nfsd4_free_layouts(&reaplist); |
665 | nfs4_put_stid(&ls->ls_stid); | 665 | nfs4_put_stid(&ls->ls_stid); |