remainder -= lsize;
cluster = exfat_next_cluster(ef, node, cluster);
}
- if (!ef->ro && !ef->noatime)
+ if (!(node->attrib & EXFAT_ATTRIB_DIR) && !ef->ro && !ef->noatime)
exfat_update_atime(node);
return MIN(size, node->size - offset) - remainder;
}
remainder -= lsize;
cluster = exfat_next_cluster(ef, node, cluster);
}
- exfat_update_mtime(node);
+ if (!(node->attrib & EXFAT_ATTRIB_DIR))
+ /* directory's mtime should be updated by the caller only when it
+ creates or removes something in this directory */
+ exfat_update_mtime(node);
return size - remainder;
}