@@ -434,7 +434,7 @@ static int nova_unlink(struct inode *dir, struct dentry *dentry)
434434
435435 update_dir .tail = 0 ;
436436 update_dir .alter_tail = 0 ;
437- retval = nova_remove_dentry (dentry , 0 , & update_dir , epoch_id );
437+ retval = nova_remove_dentry (dentry , 0 , & update_dir , epoch_id , false );
438438 if (retval )
439439 goto out ;
440440
@@ -616,7 +616,7 @@ static int nova_rmdir(struct inode *dir, struct dentry *dentry)
616616
617617 update_dir .tail = 0 ;
618618 update_dir .alter_tail = 0 ;
619- err = nova_remove_dentry (dentry , -1 , & update_dir , epoch_id );
619+ err = nova_remove_dentry (dentry , -1 , & update_dir , epoch_id , false );
620620 if (err )
621621 goto end_rmdir ;
622622
@@ -765,7 +765,7 @@ static int nova_rename(struct inode *old_dir,
765765 if (new_inode ) {
766766 /* First remove the old entry in the new directory */
767767 err = nova_remove_dentry (new_dentry , 0 , & update_dir_new ,
768- epoch_id );
768+ epoch_id , true );
769769 if (err )
770770 goto out ;
771771 }
@@ -787,7 +787,7 @@ static int nova_rename(struct inode *old_dir,
787787 }
788788
789789 err = nova_remove_dentry (old_dentry , dec_link , & update_dir_old ,
790- epoch_id );
790+ epoch_id , true );
791791 if (err )
792792 goto out ;
793793
@@ -823,9 +823,13 @@ static int nova_rename(struct inode *old_dir,
823823 new_inode ,
824824 old_dir != new_dir ? new_dir : NULL ,
825825 father_entry ,
826+ new_inode ? update_dir_new .create_dentry : NULL ,
827+ update_dir_old .create_dentry ,
826828 invalidate_new_inode ,
827829 cpu );
828-
830+ if (new_inode )
831+ nova_reassign_logentry (sb , update_dir_new .create_dentry , DIR_LOG );
832+ nova_reassign_logentry (sb , update_dir_old .create_dentry , DIR_LOG );
829833 nova_update_inode (sb , old_inode , old_pi , & update_old , 0 );
830834 nova_update_inode (sb , old_dir , old_pidir , & update_dir_old , 0 );
831835
0 commit comments