lkml.org 
[lkml]   [2014]   [Sep]   [26]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 3.12 027/142] NFSD: Decrease nfsd_users in nfsd_startup_generic fail
    Date
    From: Kinglong Mee <kinglongmee@gmail.com>

    3.12-stable review patch. If anyone has any objections, please let me know.

    ===============

    commit d9499a95716db0d4bc9b67e88fd162133e7d6b08 upstream.

    A memory allocation failure could cause nfsd_startup_generic to fail, in
    which case nfsd_users wouldn't be incorrectly left elevated.

    After nfsd restarts nfsd_startup_generic will then succeed without doing
    anything--the first consequence is likely nfs4_start_net finding a bad
    laundry_wq and crashing.

    Signed-off-by: Kinglong Mee <kinglongmee@gmail.com>
    Fixes: 4539f14981ce "nfsd: replace boolean nfsd_up flag by users counter"
    Signed-off-by: J. Bruce Fields <bfields@redhat.com>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>
    ---
    fs/nfsd/nfssvc.c | 5 ++++-
    1 file changed, 4 insertions(+), 1 deletion(-)

    diff --git a/fs/nfsd/nfssvc.c b/fs/nfsd/nfssvc.c
    index 760c85a6f534..4942f4370f60 100644
    --- a/fs/nfsd/nfssvc.c
    +++ b/fs/nfsd/nfssvc.c
    @@ -221,7 +221,8 @@ static int nfsd_startup_generic(int nrservs)
    */
    ret = nfsd_racache_init(2*nrservs);
    if (ret)
    - return ret;
    + goto dec_users;
    +
    ret = nfs4_state_start();
    if (ret)
    goto out_racache;
    @@ -229,6 +230,8 @@ static int nfsd_startup_generic(int nrservs)

    out_racache:
    nfsd_racache_shutdown();
    +dec_users:
    + nfsd_users--;
    return ret;
    }

    --
    2.1.0


    \
     
     \ /
      Last update: 2014-09-26 13:01    [W:3.240 / U:0.936 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site