mirror_zfs/module
Ned Bass f1a05fa114 Fix false ENOENT on snapshot control dentries
Lookups in the snapshot control directory for an existing snapshot
fail with ENOENT if an earlier lookup failed before the snapshot was
created.  This is because the earlier lookup causes a negative dentry
to be cached which is never invalidated.

The bug can be reproduced as follows (the second ls should succeed):

 $ ls /tank/.zfs/snapshot/s
 ls: cannot access /tank/.zfs/snapshot/s: No such file or directory
 $ zfs snap tank@s
 $ ls /tank/.zfs/snapshot/s
 ls: cannot access /tank/.zfs/snapshot/s: No such file or directory

To remedy this, always invalidate cached dentries in the snapshot
control directory.  Since these entries never exist on disk there is
no significant performance penalty for the extra lookups.

Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Closes #1192
2013-01-16 16:28:54 -08:00
..
avl Add script for builtin module building. 2012-07-26 13:45:09 -07:00
nvpair Illumos #2619 and #2747 2013-01-08 10:35:35 -08:00
unicode Add script for builtin module building. 2012-07-26 13:45:09 -07:00
zcommon Illumos #2619 and #2747 2013-01-08 10:35:35 -08:00
zfs Fix false ENOENT on snapshot control dentries 2013-01-16 16:28:54 -08:00
zpios call_usermodehelper() should wait for process 2013-01-09 16:54:52 -08:00
.gitignore Add .gitignore files to exclude build products 2010-01-08 11:35:17 -08:00
Makefile.in Add script for builtin module building. 2012-07-26 13:45:09 -07:00