]> git.proxmox.com Git - mirror_zfs.git/commit
Remove zpl_revalidate
authorPavel Snajdr <snajpa@snajpa.net>
Mon, 11 Nov 2019 17:34:21 +0000 (18:34 +0100)
committerBrian Behlendorf <behlendorf1@llnl.gov>
Mon, 11 Nov 2019 17:34:21 +0000 (09:34 -0800)
commit5a6ac4cffcd0255ca6f730bcf356e12891fd18af
tree7498ba3b34fdca3c211b4b8bb79557eaaf413a40
parentf15d6a54575567c6d69b6f1ffc000d2df5a8f206
Remove zpl_revalidate

This patch removes the need for zpl_revalidate altogether.

There were 3 main reasons why we used d_revalidate:

1. periodic automounted snapshots umount deferral
2. negative dentries created before snapshot rollback
3. stale inodes referenced by dentry cache after snapshot rollback

Periodic snapshots deferral solution introduces zfs_exit_fs function,
which is called as a part of ZFS_EXIT(zfsvfs_t) macro.

Negative dentries and stale inodes are solved by flushing the dcache
for the particular dataset on zfs_resume_fs call.

This patch also removes now unused HAVE_S_D_OP configure test.

Reviewed-by: Aleksa Sarai <cyphar@cyphar.com>
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Pavel Snajdr <snajpa@snajpa.net>
Closes #8774
Closes #9549
config/kernel-dentry-operations.m4
include/os/linux/zfs/sys/zfs_vfsops.h
include/os/linux/zfs/sys/zfs_znode_impl.h
include/os/linux/zfs/sys/zpl.h
module/os/linux/zfs/zfs_vfsops.c
module/os/linux/zfs/zpl_inode.c