nfs-ganesha/nfs-ganesha — pull request #16 by amitd (2013-02-27 16:59:08+00:00)
Title: Fix multiple issues in cache_inode_lock_trust_attrs()

Fix multiple issues in cache_inode_lock_trust_attrs() and cache_inode_check_trust()
1. In cache_inode_check_trust(), in case need_wr_lock=true, attributes were not actually refreshed
2. In cache_inode_check_trust(), ATTR_RDATTR_ERR was not checked for
3. In cache_inode_lock_trust_attrs() directory content was not invalidated
4. In cache_inode_lock_trust_attrs() current_time was not properly initialized.
5. In cache_inode_lock_trust_attrs() attr_time was checked even when expire_type_attr == CACHE_INODE_EXPIRE_NEVER
6. In cache_inode_lock_trust_attrs() attributes were not refreshed in case expire_type_attr == CACHE_INODE_EXPIRE_IMMEDIATE and less than 1 second passed.
7. time() was called multiple times (even when not needed at all) - could be expensive on some platforms.

In cache_inode_create(), use cache_inode_refresh_attrs() instead of manual work