X-Git-Url: http://git.vrable.net/?a=blobdiff_plain;f=bluesky%2Fdir.c;h=8e22d2d7fb5ac09996f6d4b65b7505fc4494fea3;hb=95d9da086ad7a167d0b95b39e448fd6047a2c9bb;hp=f279eb6838290748fb9b74805e6b4b0fd415bfd0;hpb=bc90f29d0c20f85e77761dbf2c43aec96848af36;p=bluesky.git diff --git a/bluesky/dir.c b/bluesky/dir.c index f279eb6..8e22d2d 100644 --- a/bluesky/dir.c +++ b/bluesky/dir.c @@ -132,7 +132,7 @@ gboolean bluesky_directory_insert(BlueSkyInode *dir, g_hash_table_insert(dir->dirhash_folded, d->name_folded, d); bluesky_inode_update_ctime(dir, 1); - bluesky_inode_flush(dir->fs, dir); + //bluesky_inode_do_sync(dir); // TODO: Needed? return TRUE; } @@ -161,7 +161,6 @@ gboolean bluesky_directory_remove(BlueSkyInode *dir, gchar *name) g_sequence_remove(i); bluesky_inode_update_ctime(dir, 1); - bluesky_inode_flush(dir->fs, dir); return TRUE; } @@ -186,6 +185,8 @@ gboolean bluesky_rename(BlueSkyInode *dir1, gchar *name1, if (d1 == NULL) return FALSE; + uint64_t inum = d1->inum; + /* Check that this rename does not cause a directory to be moved into one * of its descendants, as that would create a loop of directories * disconnected from the root. */ @@ -196,8 +197,14 @@ gboolean bluesky_rename(BlueSkyInode *dir1, gchar *name1, return FALSE; bluesky_directory_remove(dir2, name2); + + // TODO: Drop inode reference } + bluesky_directory_remove(dir1, name1); + bluesky_directory_insert(dir2, name2, inum); + + return TRUE; } /* Dump the contents of a directory to stdout. Debugging only. */