X-Git-Url: http://git.vrable.net/?a=blobdiff_plain;f=bluesky%2Finode.c;h=d2844795c8507d200b735e8b83cddfe6729530fb;hb=ef355dcfecf0dad2d95ff5fb3d847f1bf8b9ebe5;hp=f3b804dc4e7f5378b08227b8ad22d8a7a5545f64;hpb=ddaec40a37a5e65e53546b14632b1b0b35613264;p=bluesky.git diff --git a/bluesky/inode.c b/bluesky/inode.c index f3b804d..d284479 100644 --- a/bluesky/inode.c +++ b/bluesky/inode.c @@ -55,6 +55,9 @@ void bluesky_inode_update_ctime(BlueSkyInode *inode, gboolean update_mtime) bluesky_list_unlink(&inode->fs->accessed_list, inode->accessed_list); inode->accessed_list = bluesky_list_prepend(&inode->fs->accessed_list, inode); g_mutex_unlock(inode->fs->lock); + + bluesky_cloudlog_unref(inode->committed_item); + inode->committed_item = NULL; } /* Unfortunately a glib hash table is only guaranteed to be able to store @@ -88,6 +91,7 @@ BlueSkyFS *bluesky_new_fs(gchar *name) fs->next_inum = BLUESKY_ROOT_INUM + 1; fs->store = bluesky_store_new("file"); fs->flushd_lock = g_mutex_new(); + fs->flushd_cond = g_cond_new(); fs->locations = g_hash_table_new(bluesky_cloudlog_hash, bluesky_cloudlog_equal); @@ -105,6 +109,7 @@ BlueSkyFS *bluesky_init_fs(gchar *name, BlueSkyStore *store) if (fs != NULL) { fs->store = store; fs->log = bluesky_log_new("journal"); + fs->log->fs = fs; g_print("Loaded filesystem superblock\n"); g_free(fs->name); fs->name = g_strdup(name); @@ -117,6 +122,7 @@ BlueSkyFS *bluesky_init_fs(gchar *name, BlueSkyStore *store) BlueSkyFS *fs = bluesky_new_fs(name); fs->store = store; fs->log = bluesky_log_new("journal"); + fs->log->fs = fs; BlueSkyInode *root = bluesky_new_inode(BLUESKY_ROOT_INUM, fs, BLUESKY_DIRECTORY);