]> granicus.if.org Git - zfs/commit
Linux 4.6 compat: Fall back to d_prune_aliases() if necessary
authorTim Chase <tim@chase2k.com>
Thu, 16 Jun 2016 15:19:32 +0000 (10:19 -0500)
committerBrian Behlendorf <behlendorf1@llnl.gov>
Fri, 17 Jun 2016 20:33:49 +0000 (13:33 -0700)
commit09fb30e5e91d9f2ed622db6b616084ce1d073384
tree03232db64f38a3247365d5285283eb23f067f673
parent46ab35954c7a7e4dc6591593c14f672bceee042d
Linux 4.6 compat: Fall back to d_prune_aliases() if necessary

As of 4.6, the icache and dcache LRUs are memcg aware insofar as the
kernel's per-superblock shrinker is concerned.  The effect is that dcache
or icache entries added by a task in a non-root memcg won't be scanned
by the shrinker in the context of the root (or NULL) memcg.  This defeats
the attempts by zfs_sb_prune() to unpin buffers and can allow metadata to
grow uncontrollably.  This patch reverts to the d_prune_aliaes() method
in case the kernel's per-superblock shrinker is not able to free anything.

Signed-off-by: Tim Chase <tim@chase2k.com>
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Chunwei Chen <tuxoko@gmail.com>
Closes: #4726
module/zfs/zfs_vfsops.c