Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge tag 'nfsd-6.12-1' of git://git.kernel.org/pub/scm/linux/kernel/git/cel/linux

Pull nfsd fixes from Chuck Lever:

- Fix NFSD bring-up / shutdown

- Fix a UAF when releasing a stateid

* tag 'nfsd-6.12-1' of git://git.kernel.org/pub/scm/linux/kernel/git/cel/linux:
nfsd: fix possible badness in FREE_STATEID
nfsd: nfsd_destroy_serv() must call svc_destroy() even if nfsd_startup_net() failed
NFSD: Mark filecache "down" if init fails

+7 -4
+3 -1
fs/nfsd/filecache.c
··· 751 751 752 752 ret = rhltable_init(&nfsd_file_rhltable, &nfsd_file_rhash_params); 753 753 if (ret) 754 - return ret; 754 + goto out; 755 755 756 756 ret = -ENOMEM; 757 757 nfsd_file_slab = KMEM_CACHE(nfsd_file, 0); ··· 803 803 804 804 INIT_DELAYED_WORK(&nfsd_filecache_laundrette, nfsd_file_gc_worker); 805 805 out: 806 + if (ret) 807 + clear_bit(NFSD_FILE_CACHE_UP, &nfsd_file_flags); 806 808 return ret; 807 809 out_notifier: 808 810 lease_unregister_notifier(&nfsd_file_lease_notifier);
+1
fs/nfsd/nfs4state.c
··· 7154 7154 switch (s->sc_type) { 7155 7155 case SC_TYPE_DELEG: 7156 7156 if (s->sc_status & SC_STATUS_REVOKED) { 7157 + s->sc_status |= SC_STATUS_CLOSED; 7157 7158 spin_unlock(&s->sc_lock); 7158 7159 dp = delegstateid(s); 7159 7160 list_del_init(&dp->dl_recall_lru);
+3 -3
fs/nfsd/nfssvc.c
··· 434 434 { 435 435 struct nfsd_net *nn = net_generic(net, nfsd_net_id); 436 436 437 + if (!nn->nfsd_net_up) 438 + return; 439 + nfsd_export_flush(net); 437 440 nfs4_state_shutdown_net(net); 438 441 nfsd_reply_cache_shutdown(nn); 439 442 nfsd_file_cache_shutdown_net(net); ··· 552 549 * other initialization has been done except the rpcb information. 553 550 */ 554 551 svc_rpcb_cleanup(serv, net); 555 - if (!nn->nfsd_net_up) 556 - return; 557 552 558 553 nfsd_shutdown_net(net); 559 - nfsd_export_flush(net); 560 554 svc_destroy(&serv); 561 555 } 562 556