X-Git-Url: http://git.vrable.net/?a=blobdiff_plain;f=bluesky%2Fdir.c;h=cd4ee1dd798ff74822ccca911722b446c587b2b6;hb=4bef26446b9100f63ac3c953b7f96f1966673980;hp=f279eb6838290748fb9b74805e6b4b0fd415bfd0;hpb=ffadf57d27b07d5ba8c0de11649ff08e999f53f4;p=bluesky.git diff --git a/bluesky/dir.c b/bluesky/dir.c index f279eb6..cd4ee1d 100644 --- a/bluesky/dir.c +++ b/bluesky/dir.c @@ -186,6 +186,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 +198,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. */