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

NFS: Error out when register_shrinker fail in register_nfs_fs

Commit 1d3d4437ea "vmscan: per-node deferred work" have made
register_shrinker can return an intergater error.

If register_shrinker() fail, the later unregister_shrinker() will
cause a NULL pointer access.

v2, same as v1.

Signed-off-by: Kinglong Mee <kinglongmee@gmail.com>
Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>

authored by

Kinglong Mee and committed by
Trond Myklebust
5ef8d792 efcbc04e

+5 -2
+5 -2
fs/nfs/super.c
··· 381 381 ret = nfs_register_sysctl(); 382 382 if (ret < 0) 383 383 goto error_2; 384 - register_shrinker(&acl_shrinker); 384 + ret = register_shrinker(&acl_shrinker); 385 + if (ret < 0) 386 + goto error_3; 385 387 return 0; 386 - 388 + error_3: 389 + nfs_unregister_sysctl(); 387 390 error_2: 388 391 unregister_nfs4_fs(); 389 392 error_1: