diff --git a/lib/fuse.c b/lib/fuse.c
index fda97b3..b2a1904 100644
--- a/lib/fuse.c
+++ b/lib/fuse.c
@@ -693,6 +693,11 @@
     }
     pthread_rwlock_unlock(&f->tree_lock);
     if (!err) {
+        if (f->conf.auto_cache) {
+            pthread_mutex_lock(&f->lock);
+            update_stat(get_node(f, ino), &buf);
+            pthread_mutex_unlock(&f->lock);
+        }
         set_stat(f, ino, &buf);
         fuse_reply_attr(req, &buf, f->conf.attr_timeout);
     } else
@@ -781,6 +786,11 @@
     }
     pthread_rwlock_unlock(&f->tree_lock);
     if (!err) {
+        if (f->conf.auto_cache) {
+            pthread_mutex_lock(&f->lock);
+            update_stat(get_node(f, ino), &buf);
+            pthread_mutex_unlock(&f->lock);
+        }
         set_stat(f, ino, &buf);
         fuse_reply_attr(req, &buf, f->conf.attr_timeout);
     } else
@@ -1127,26 +1137,29 @@
                             struct fuse_file_info *fi)
 {
     struct node *node = get_node(f, ino);
-    struct timespec now;
-    curr_time(&now);
-    if (diff_timespec(&now, &node->stat_updated) > f->conf.attr_timeout) {
-        struct stat stbuf;
-        int err;
+    if (node->cache_valid) {
+        struct timespec now;
 
-        if (f->op.fgetattr)
-            err = f->op.fgetattr(path, &stbuf, fi);
-        else
-            err = f->op.getattr(path, &stbuf);
+        curr_time(&now);
+        if (diff_timespec(&now, &node->stat_updated) > f->conf.attr_timeout) {
+            struct stat stbuf;
+            int err;
 
-        if (!err)
-            update_stat(node, &stbuf);
-        else
-            node->cache_valid = 0;
+            if (f->op.fgetattr)
+                err = f->op.fgetattr(path, &stbuf, fi);
+            else
+                err = f->op.getattr(path, &stbuf);
+
+            if (!err)
+                update_stat(node, &stbuf);
+            else
+                node->cache_valid = 0;
+        }
     }
     if (node->cache_valid)
         fi->keep_cache = 1;
-    else
-        node->cache_valid = 1;
+
+    node->cache_valid = 1;
 }
 
 static void fuse_open(fuse_req_t req, fuse_ino_t ino,
