projects
/
bluesky.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Implement multi-threaded request processing and locking for NFS.
[bluesky.git]
/
bluesky
/
inode.c
diff --git
a/bluesky/inode.c
b/bluesky/inode.c
index
bdf01a1
..
9b6160a
100644
(file)
--- a/
bluesky/inode.c
+++ b/
bluesky/inode.c
@@
-41,6
+41,9
@@
void bluesky_inode_update_ctime(BlueSkyInode *inode, gboolean update_mtime)
if (inode->change_time == 0)
inode->change_time = now;
if (inode->change_time == 0)
inode->change_time = now;
+
+ if (bluesky_options.writethrough_cache)
+ bluesky_file_flush(inode, NULL);
}
/* Unfortunately a glib hash table is only guaranteed to be able to store
}
/* Unfortunately a glib hash table is only guaranteed to be able to store
@@
-145,6
+148,7
@@
BlueSkyInode *bluesky_new_inode(uint64_t inum, BlueSkyFS *fs,
i->type = type;
i->fs = fs;
i->inum = inum;
i->type = type;
i->fs = fs;
i->inum = inum;
+ i->change_count = 1;
switch (type) {
case BLUESKY_REGULAR:
switch (type) {
case BLUESKY_REGULAR:
@@
-168,8
+172,8
@@
BlueSkyInode *bluesky_new_inode(uint64_t inum, BlueSkyFS *fs,
/* Retrieve an inode from the filesystem. Eventually this will be a cache and
* so we might need to go fetch the inode from elsewhere; for now all
/* Retrieve an inode from the filesystem. Eventually this will be a cache and
* so we might need to go fetch the inode from elsewhere; for now all
- * filesystem state is stored here. inode is returned
locked with a reference
- *
hel
d. */
+ * filesystem state is stored here. inode is returned
with a reference held
+ *
but not locke
d. */
BlueSkyInode *bluesky_get_inode(BlueSkyFS *fs, uint64_t inum)
{
BlueSkyInode *inode = NULL;
BlueSkyInode *bluesky_get_inode(BlueSkyFS *fs, uint64_t inum)
{
BlueSkyInode *inode = NULL;