From: Michal Hocko <mhocko@xxxxxxxx> xfs_alloc_buftarg doesn't handle register_shrinker error path. While it is unlikely to trigger it is not impossible especially with large NUMAs. Let's handle the failure to make the code more robust. Signed-off-by: Michal Hocko <mhocko@xxxxxxxx> --- Hi, this is not tested but it looks quite straightforward. There is one more unchecked register_shrinker in xfs_qm_init_quotainfo but my absolute lack of familiarity with the code didn't allow me to come up with a mechanical fix like this one. fs/xfs/xfs_buf.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/fs/xfs/xfs_buf.c b/fs/xfs/xfs_buf.c index 4db6e8d780f6..dd0e18af990c 100644 --- a/fs/xfs/xfs_buf.c +++ b/fs/xfs/xfs_buf.c @@ -1827,7 +1827,10 @@ xfs_alloc_buftarg( btp->bt_shrinker.scan_objects = xfs_buftarg_shrink_scan; btp->bt_shrinker.seeks = DEFAULT_SEEKS; btp->bt_shrinker.flags = SHRINKER_NUMA_AWARE; - register_shrinker(&btp->bt_shrinker); + if (register_shrinker(&btp->bt_shrinker)) { + percpu_counter_destroy(&btp->bt_io_count); + goto error; + } return btp; error: -- 2.15.0 -- To unsubscribe from this list: send the line "unsubscribe linux-xfs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html