Patch "NFSD: Mark filecache "down" if init fails" has been added to the 6.1-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    NFSD: Mark filecache "down" if init fails

to the 6.1-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     nfsd-mark-filecache-down-if-init-fails.patch
and it can be found in the queue-6.1 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit 51adf547883ced415853735a2123702211956390
Author: Chuck Lever <chuck.lever@xxxxxxxxxx>
Date:   Sat Sep 21 14:25:37 2024 -0400

    NFSD: Mark filecache "down" if init fails
    
    [ Upstream commit dc0d0f885aa422f621bc1c2124133eff566b0bc8 ]
    
    NeilBrown says:
    > The handling of NFSD_FILE_CACHE_UP is strange.  nfsd_file_cache_init()
    > sets it, but doesn't clear it on failure.  So if nfsd_file_cache_init()
    > fails for some reason, nfsd_file_cache_shutdown() would still try to
    > clean up if it was called.
    
    Reported-by: NeilBrown <neilb@xxxxxxx>
    Fixes: c7b824c3d06c ("NFSD: Replace the "init once" mechanism")
    Signed-off-by: Chuck Lever <chuck.lever@xxxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/fs/nfsd/filecache.c b/fs/nfsd/filecache.c
index 9e81f3a9097e0..c9393c732889a 100644
--- a/fs/nfsd/filecache.c
+++ b/fs/nfsd/filecache.c
@@ -718,7 +718,7 @@ nfsd_file_cache_init(void)
 
 	ret = rhltable_init(&nfsd_file_rhltable, &nfsd_file_rhash_params);
 	if (ret)
-		return ret;
+		goto out;
 
 	ret = -ENOMEM;
 	nfsd_filecache_wq = alloc_workqueue("nfsd_filecache", 0, 0);
@@ -770,6 +770,8 @@ nfsd_file_cache_init(void)
 
 	INIT_DELAYED_WORK(&nfsd_filecache_laundrette, nfsd_file_gc_worker);
 out:
+	if (ret)
+		clear_bit(NFSD_FILE_CACHE_UP, &nfsd_file_flags);
 	return ret;
 out_notifier:
 	lease_unregister_notifier(&nfsd_file_lease_notifier);




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux